# SPDX-FileCopyrightText: 2025 Felix Morgner # SPDX-License-Identifier: LGPL-2.1-only cmake_minimum_required(VERSION "3.31.0") project("turns" LANGUAGES C CXX DESCRIPTION "A simple turn order tracker and support library" VERSION "1.0.0" ) list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/Modules") enable_testing() 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("Glib") include("GNUInstallDirs") # 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) 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_MakeAvailable("Catch2") include("Catch") # Global Settings check_ipo_supported(RESULT TURNS_CAN_DO_IPO LANGUAGES CXX) # Sub projects add_subdirectory("gui") add_subdirectory("lib" SYSTEM) # License install(DIRECTORY "LICENSES/" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/licenses/turns" )