summaryrefslogtreecommitdiff
path: root/lib/CMakeLists.txt
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2025-05-12 16:21:53 +0200
committerFelix Morgner <felix.morgner@gmail.com>2025-05-12 16:21:53 +0200
commita2c73b6ba3c9ea307b0b0eb94c9e769a1f31dc00 (patch)
tree4235e54f0557c76b1226367b8cd5e5f561d7662a /lib/CMakeLists.txt
parent45ef4948db670224c7cc727507f84924bd826002 (diff)
downloadturns-a2c73b6ba3c9ea307b0b0eb94c9e769a1f31dc00.tar.xz
turns-a2c73b6ba3c9ea307b0b0eb94c9e769a1f31dc00.zip
lib: move C library to new directory
Diffstat (limited to 'lib/CMakeLists.txt')
-rw-r--r--lib/CMakeLists.txt88
1 files changed, 88 insertions, 0 deletions
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
new file mode 100644
index 0000000..8e507ec
--- /dev/null
+++ b/lib/CMakeLists.txt
@@ -0,0 +1,88 @@
+# Library
+
+set(HEADERS
+ "src/turns-disposition.h"
+ "src/turns-init.h"
+ "src/turns-participant.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
+ "$<$<CXX_COMPILER_ID:GNU,Clang>:-Wall>"
+ "$<$<CXX_COMPILER_ID:GNU,Clang>:-Wextra>"
+ "$<$<CXX_COMPILER_ID:GNU,Clang>:-Werror>"
+ "$<$<CXX_COMPILER_ID:GNU,Clang>:-pedantic-errors>"
+)
+
+target_include_directories("lib" PUBLIC
+ "src"
+)
+
+target_link_libraries("lib" PUBLIC
+ "PkgConfig::gobject"
+)
+
+target_compile_definitions("lib" PUBLIC
+ "$<$<NOT:$<BOOL:TURNS_USE_INSTALLED_SCHEMA_FILES>>: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
+)
+
+# 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
+ "$<$<AND:$<CXX_COMPILER_ID:GNU,Clang>,$<CONFIG:Debug>>:--coverage>"
+)
+
+# 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}
+# )
+
+catch_discover_tests("lib-tests") \ No newline at end of file