summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2025-05-24 14:54:30 +0200
committerFelix Morgner <felix.morgner@gmail.com>2025-05-24 14:54:30 +0200
commitf63a86c56987d04bb9e021cad3f1e6faca7f962f (patch)
treed5ad8436ad43334157b62e24185dceea4dc1247d /CMakeLists.txt
parent7a483861b2050a1ad7faacd626a0391e2e8c0a38 (diff)
downloadturns-f63a86c56987d04bb9e021cad3f1e6faca7f962f.tar.xz
turns-f63a86c56987d04bb9e021cad3f1e6faca7f962f.zip
build: flatten project hierarchy
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt31
1 files changed, 28 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 72a2e79..9355672 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,14 +13,40 @@ list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/Modules")
enable_testing()
-# Global Modules
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/out")
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/out")
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/out")
+
+# Modules
include("CheckIPOSupported")
include("EnableCoverage")
include("FetchContent")
+include("GlibCompileResources")
+include("GlibIntrospection")
+include("GlibMkenums")
include("GNUInstallDirs")
-# Global Dependencies
+# Dependencies
+
+find_package("PkgConfig" REQUIRED)
+
+set(TURNS_GLIB_MINIMUM_VERSION "2.84")
+
+pkg_check_modules("glib"
+ IMPORTED_TARGET
+ REQUIRED
+ "glib-2.0>=${TURNS_GLIB_MINIMUM_VERSION}"
+ "gio-2.0>=${TURNS_GLIB_MINIMUM_VERSION}"
+ "gobject-2.0>=${TURNS_GLIB_MINIMUM_VERSION}"
+)
+
+pkg_check_modules("glibmm"
+ IMPORTED_TARGET
+ REQUIRED
+ "giomm-2.68>=${TURNS_GLIB_MINIMUM_VERSION}"
+ "glibmm-2.68>=${TURNS_GLIB_MINIMUM_VERSION}"
+)
add_subdirectory("deps/libadwaitamm" EXCLUDE_FROM_ALL SYSTEM)
@@ -39,7 +65,6 @@ include("Catch")
# Global Settings
-set(TURNS_GLIB_MINIMUM_VERSION "2.84")
check_ipo_supported(RESULT TURNS_CAN_DO_IPO LANGUAGES CXX)
# Sub projects