# Library set(HEADERS "src/turns-disposition.h" "src/turns-init.h" "src/turns-participant.h" "src/turns.h" ) set(SOURCES "src/turns-init.cpp" "src/turns-participant.cpp" ) add_library("lib" ${SOURCES} ) add_library("turns::lib" ALIAS "lib") target_sources("lib" PUBLIC FILE_SET HEADERS BASE_DIRS "src" FILES ${HEADERS} ) target_compile_options("lib" PUBLIC "$<$:-Wall>" "$<$:-Wextra>" "$<$:-Werror>" "$<$:-pedantic-errors>" ) target_include_directories("lib" PUBLIC "src" ) target_link_libraries("lib" PUBLIC "PkgConfig::gobject" ) target_compile_definitions("lib" PUBLIC "$<$>:TURNS_SETTINGS_SCHEMA_DIR=\"${CMAKE_CURRENT_BINARY_DIR}\">" ) set_target_properties("lib" PROPERTIES OUTPUT_NAME "turns" ) target_add_glib_enums("lib" HEADER_TEMPLATE "src/turns-enums.h.in" SOURCE_TEMPLATE "src/turns-enums.c.in" OUTPUT_NAME "turns-enums" HEADERS ${HEADERS} ) enable_coverage("lib") install(TARGETS "lib" FILE_SET HEADERS DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/turns" ) # C++ Wrapper set(CXX_HEADERS "src/turnsmm/enums.hpp" "src/turnsmm/init.hpp" "src/turnsmm/participant.hpp" "src/turnsmm.hpp" "src/turnsmm/private/participant_p.hpp" ) set(CXX_SOURCES "src/turnsmm/enums.cpp" "src/turnsmm/init.cpp" "src/turnsmm/participant.cpp" ) add_library("libmm" ${CXX_SOURCES} ) add_library("turns::mm" ALIAS "libmm") target_sources("libmm" PUBLIC FILE_SET HEADERS BASE_DIRS "src" FILES ${CXX_HEADERS} ) target_compile_options("libmm" PUBLIC "$<$:-Wall>" "$<$:-Wextra>" "$<$:-Werror>" "$<$:-pedantic-errors>" ) target_include_directories("libmm" PUBLIC "src" ) target_link_libraries("libmm" PUBLIC "PkgConfig::glibmm" "turns::lib" ) set_target_properties("libmm" PROPERTIES OUTPUT_NAME "turnsmm" ) enable_coverage("libmm") install(TARGETS "libmm" FILE_SET HEADERS DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/turnsmm" ) # Tests add_executable("lib-tests" "tests/runtime_init.cpp" "tests/turns-participant.cpp" ) target_link_libraries("lib-tests" PRIVATE "Catch2::Catch2WithMain" "turns::lib" ) target_link_options("lib-tests" PRIVATE "$<$,$>:--coverage>" ) catch_discover_tests("lib-tests") # C++ Wrapper Tests add_executable("libmm-tests" "tests/turnsmm/runtime_init.cpp" "tests/turnsmm/participant.cpp" ) target_link_libraries("libmm-tests" PRIVATE "Catch2::Catch2WithMain" "turns::mm" ) target_link_options("libmm-tests" PRIVATE "$<$,$>:--coverage>" ) catch_discover_tests("libmm-tests") # file(GLOB_RECURSE TEST_FILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/tests" CONFIGURE_DEPENDS "*.trns") # target_add_glib_resources("core-tests" # PREFIX "/ch/arknet/Turns/core-tests/" # WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests" # CSS_FILES ${TEST_FILES} # )