summaryrefslogtreecommitdiff
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
parent7a483861b2050a1ad7faacd626a0391e2e8c0a38 (diff)
downloadturns-f63a86c56987d04bb9e021cad3f1e6faca7f962f.tar.xz
turns-f63a86c56987d04bb9e021cad3f1e6faca7f962f.zip
build: flatten project hierarchy
-rw-r--r--CMakeLists.txt31
-rw-r--r--gui/CMakeLists.txt31
-rw-r--r--lib/CMakeLists.txt33
3 files changed, 32 insertions, 63 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
diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt
index 389332d..dc7690b 100644
--- a/gui/CMakeLists.txt
+++ b/gui/CMakeLists.txt
@@ -1,39 +1,12 @@
# SPDX-FileCopyrightText: 2025 Felix Morgner <felix.morgner@gmail.com>
# SPDX-License-Identifier: LGPL-2.1-only
-cmake_minimum_required(VERSION "4.0.0")
-
-project("turns-gui"
- LANGUAGES C CXX
- DESCRIPTION "Turns, the simple turn order tracker"
- VERSION "1.0.0"
-)
-
-include("FetchContent")
-include("GlibCompileResources")
-
-find_package("PkgConfig" REQUIRED)
-
-# Dependencies
-
-pkg_check_modules("gio"
- IMPORTED_TARGET
- REQUIRED
- "gio-2.0>=${TURNS_GLIB_MINIMUM_VERSION}"
-)
-
-pkg_check_modules("glibmm"
- IMPORTED_TARGET
- REQUIRED
- "glibmm-2.68>=${TURNS_GLIB_MINIMUM_VERSION}"
-)
-
# Resources
add_library("resources" STATIC)
target_link_libraries("resources" PUBLIC
- "PkgConfig::gio"
+ "PkgConfig::glib"
)
target_add_glib_resources("resources"
@@ -74,6 +47,8 @@ target_include_directories("gui" PUBLIC
target_link_libraries("gui" PUBLIC
"adwaitamm::adwaitamm"
+ "PkgConfig::glib"
+ "PkgConfig::glibmm"
"turns::mm"
"$<$<CXX_COMPILER_ID:GNU,Clang>:-Wl,--whole-archive>"
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index d27a874..a4186d1 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -1,38 +1,7 @@
# SPDX-FileCopyrightText: 2025 Felix Morgner <felix.morgner@gmail.com>
# SPDX-License-Identifier: LGPL-2.1-only
-cmake_minimum_required(VERSION "4.0.0")
-
-project("libturns"
- LANGUAGES C CXX
- DESCRIPTION "The core library for 'Turns, the simple turn order tracker'"
- VERSION "1.0.0"
-)
-
-include("FetchContent")
-include("GlibMkenums")
-include("GlibIntrospection")
-
-find_package("PkgConfig" REQUIRED)
-
-#Dependencies
-
-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}"
-)
-
-# Library
+# C Library
set(HEADERS
"include/turns-init.h"