# SPDX-FileCopyrightText: 2025 Felix Morgner # 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" ) target_add_glib_resources("resources" NAME "ui" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/ui" PREFIX "/ch/arknet/Turns" XML_FILES "participant_editor.ui" "participant_row.ui" "preferences.ui" "tracker.ui" "turn_order_view.ui" CSS_FILES "style.css" "style-dark.css" ) target_add_glib_resources("resources" NAME "metainfo" PREFIX "/ch/arknet/Turns" XML_FILES "metainfo.xml" ) # Application add_executable("gui" "src/main.cpp") add_executable("turns::gui" ALIAS "gui") target_compile_features("gui" PUBLIC "c_std_23" "cxx_std_23" ) target_include_directories("gui" PUBLIC "$" ) target_link_libraries("gui" PUBLIC "adwaitamm::adwaitamm" "turns::mm" "$<$:-Wl,--whole-archive>" "resources" "$<$:-Wl,--no-whole-archive>" ) set_target_properties("gui" PROPERTIES OUTPUT_NAME "turns" INTERPROCEDURAL_OPTIMIZATION "${TURNS_CAN_DO_IPO}" C_EXTENSIONS OFF CXX_EXTENSIONS OFF ) configure_file("desktop.in" "ch.arknet.Turns.desktop") configure_file("metainfo.xml" "ch.arknet.Turns.metainfo.xml") configure_file("mime.xml" "ch.arknet.Turns.xml") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ch.arknet.Turns.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications" ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ch.arknet.Turns.metainfo.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo" ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ch.arknet.Turns.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/mime/packages" ) install(TARGETS "gui")