From 48c294105f5123dc876fbad199ec1e0166d82a18 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Tue, 23 Dec 2025 11:59:45 +0100 Subject: build: Refactor CMake modules This moves the CMake build logic out of the source tree and splits it up into a more modular form. The tests now have a CMakeLists.txt file in their respective source directory. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- cmake/lib/irm.cmake | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 cmake/lib/irm.cmake (limited to 'cmake/lib/irm.cmake') diff --git a/cmake/lib/irm.cmake b/cmake/lib/irm.cmake new file mode 100644 index 00000000..5e336b31 --- /dev/null +++ b/cmake/lib/irm.cmake @@ -0,0 +1,34 @@ +set(SOURCE_FILES_IRM + irm.c +) + +# Convert relative paths to absolute +set(SOURCE_FILES_IRM_ABS) +foreach(src ${SOURCE_FILES_IRM}) + list(APPEND SOURCE_FILES_IRM_ABS "${LIB_SOURCE_DIR}/${src}") +endforeach() + +add_library(ouroboros-irm SHARED ${SOURCE_FILES_IRM_ABS}) + +set_target_properties(ouroboros-irm PROPERTIES + VERSION ${PACKAGE_VERSION} + SOVERSION ${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}) + +if (CMAKE_BUILD_TYPE MATCHES "Debug*") + add_compile_flags(ouroboros-irm -DCONFIG_OUROBOROS_DEBUG) +endif () + +target_include_directories(ouroboros-irm PUBLIC + ${LIB_SOURCE_DIR} + ${LIB_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/include + ${CMAKE_BINARY_DIR}/include + ${CMAKE_BINARY_DIR} + ${PROTOBUF_C_INCLUDE_DIRS} + ${SYS_RND_HDR} + ${LIBGCRYPT_INCLUDE_DIR} + ${OPENSSL_INCLUDE_DIR}) + +target_link_libraries(ouroboros-irm ouroboros-common) + +install(TARGETS ouroboros-irm LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) -- cgit v1.2.3