summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-11 13:17:03 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-11 16:03:04 +0200
commitf597be870eec6d04de6bed0effa7dd23bcb72bf8 (patch)
tree569ceeeef1bbf143b0d3a32ccf9a2fc716ff13e1 /CMakeLists.txt
downloadturns-f597be870eec6d04de6bed0effa7dd23bcb72bf8.tar.xz
turns-f597be870eec6d04de6bed0effa7dd23bcb72bf8.zip
initial commit
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt62
1 files changed, 62 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..c1dc323
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,62 @@
+cmake_minimum_required(VERSION "3.29.0")
+
+project("turns"
+ LANGUAGES C CXX
+ DESCRIPTION "A simple turn-order tracker"
+ VERSION "1.0.0"
+)
+
+enable_testing()
+
+list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/Modules")
+
+include("CheckIPOSupported")
+include("GlibCompileResources")
+include("GNUInstallDirs")
+
+find_package("PkgConfig" REQUIRED)
+
+check_ipo_supported(RESULT CAN_DO_IPO LANGUAGES CXX)
+
+set(CMAKE_CXX_STANDARD "23")
+set(CMAKE_CXX_EXTENSIONS OFF)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ${CAN_DO_IPO})
+
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/lib")
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/lib")
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
+
+# Dependencies
+
+include("FetchContent")
+
+FetchContent_Declare(
+ "Catch2"
+ URL "https://github.com/catchorg/Catch2/archive/refs/tags/v3.6.0.tar.gz"
+ URL_HASH "SHA256=485932259a75c7c6b72d4b874242c489ea5155d17efa345eb8cc72159f49f356"
+ EXCLUDE_FROM_ALL
+ FIND_PACKAGE_ARGS
+)
+
+FetchContent_MakeAvailable("Catch2")
+
+find_package("Catch2" REQUIRED)
+
+pkg_check_modules("gtkmm" IMPORTED_TARGET REQUIRED "gtkmm-4.0>=4.14")
+pkg_check_modules("adwaita" IMPORTED_TARGET REQUIRED "libadwaita-1>=1.5.0")
+
+include("Catch")
+
+# Targets
+
+add_subdirectory("app")
+add_subdirectory("res")
+
+# License
+
+install(FILES
+ "LICENSE.txt"
+ DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/licenses/turns"
+ RENAME "LICENSE"
+) \ No newline at end of file