summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt77
1 files changed, 8 insertions, 69 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d2d1fd0..a82c7fe 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,83 +6,22 @@ project("turns"
VERSION "1.0.0"
)
-enable_testing()
-
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/Modules")
+# Global Modules
+
include("CheckIPOSupported")
include("EnableCoverage")
-include("GlibCompileResources")
-include("GlibCompileSchemas")
-include("GlibMkenums")
include("GNUInstallDirs")
-find_package("Gettext" REQUIRED)
-find_package("Intl" REQUIRED)
-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_MINSIZEREL ${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")
+# Global Settings
-set(GLIB_MINIMUM_VERSION "2.84")
-set(GTK4_MINIMUM_VERSION "4.18")
+set(TURNS_GLIB_MINIMUM_VERSION "2.84")
+check_ipo_supported(RESULT TURNS_CAN_DO_IPO LANGUAGES CXX)
-# Build options
+# Sub projects
-option(TURNS_USE_INSTALLED_TRANSLATIONS "Use the installed translation files" ON)
-option(TURNS_USE_INSTALLED_SCHEMA_FILES "Use the installed schema files" ON)
-
-# 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
- SYSTEM
- FIND_PACKAGE_ARGS
-)
-
-FetchContent_Declare(
- "nlohmann_json"
- URL "https://github.com/nlohmann/json/archive/refs/tags/v3.11.3.tar.gz"
- URL_HASH "SHA256=0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406"
- EXCLUDE_FROM_ALL
- SYSTEM
- FIND_PACKAGE_ARGS
-)
-
-FetchContent_MakeAvailable("Catch2" "nlohmann_json")
-
-pkg_check_modules("gio" IMPORTED_TARGET REQUIRED "gio-2.0>=${GLIB_MINIMUM_VERSION}")
-pkg_check_modules("giomm" IMPORTED_TARGET REQUIRED "giomm-2.68>=${GLIB_MINIMUM_VERSION}")
-pkg_check_modules("glibmm" IMPORTED_TARGET REQUIRED "glibmm-2.68>=${GLIB_MINIMUM_VERSION}")
-pkg_check_modules("gtkmm" IMPORTED_TARGET REQUIRED "gtkmm-4.0>=${GTK4_MINIMUM_VERSION}")
-pkg_check_modules("gobject" IMPORTED_TARGET REQUIRED "gobject-2.0>=${GLIB_MINIMUM_VERSION}")
-
-add_subdirectory("deps/libadwaitamm" EXCLUDE_FROM_ALL SYSTEM)
-
-include("Catch")
-
-# Targets
-
-add_subdirectory("lib")
-
-# add_subdirectory("app")
-# add_subdirectory("core")
-# add_subdirectory("lang")
-# add_subdirectory("style")
-# add_subdirectory("ui")
+add_subdirectory("lib" SYSTEM)
# License
@@ -90,4 +29,4 @@ install(FILES
"LICENSE.txt"
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/licenses/turns"
RENAME "LICENSE"
-) \ No newline at end of file
+)