From f597be870eec6d04de6bed0effa7dd23bcb72bf8 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 11 Jul 2024 13:17:03 +0200 Subject: initial commit --- CMakeLists.txt | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 CMakeLists.txt (limited to 'CMakeLists.txt') 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 -- cgit v1.2.3