summaryrefslogtreecommitdiff
path: root/lib/CMakeLists.txt
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2025-05-12 17:53:49 +0200
committerFelix Morgner <felix.morgner@gmail.com>2025-05-12 17:53:49 +0200
commitfb015121f064f2be12d1e28cdc7c54e074ed0411 (patch)
tree8e4577e5166af0ab01931243a25cc2f02b909e22 /lib/CMakeLists.txt
parenta1e345d62f143c3ef22e73eb51ac55fef27cf2da (diff)
downloadturns-fb015121f064f2be12d1e28cdc7c54e074ed0411.tar.xz
turns-fb015121f064f2be12d1e28cdc7c54e074ed0411.zip
lib: begin basic C++ wrapper
Diffstat (limited to 'lib/CMakeLists.txt')
-rw-r--r--lib/CMakeLists.txt53
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 783700e..0fd7aa0 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -61,6 +61,59 @@ install(TARGETS "lib"
FILE_SET HEADERS DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/turns"
)
+# C++ Wrapper
+
+set(CXX_HEADERS
+ "src/turnsmm/participant.hpp"
+ "src/turnsmm.hpp"
+
+ "src/turnsmm/private/participant_p.hpp"
+)
+
+set(CXX_SOURCES
+ "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
+ "$<$<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("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"