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("Cambalache") include("CheckIPOSupported") include("EnableCoverage") include("GlibCompileResources") 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 ${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") set(GLIB_MINIMUM_VERSION "2.80") set(GTK4_MINIMUM_VERSION "4.14") set(LIBADWAITA_MINIMUM_VERSION "1.5") # Build options option(TURNS_USE_INSTALLED_TRANSLATIONS "Use the installed translation 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 FIND_PACKAGE_ARGS ) FetchContent_MakeAvailable("Catch2") find_package("Catch2" REQUIRED) pkg_check_modules("adwaita" IMPORTED_TARGET REQUIRED "libadwaita-1>=${LIBADWAITA_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}") include("Catch") # Targets add_subdirectory("app") add_subdirectory("core") add_subdirectory("lang") add_subdirectory("style") add_subdirectory("test_support") add_subdirectory("ui") # License install(FILES "LICENSE.txt" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/licenses/turns" RENAME "LICENSE" )