From ffcfda9d020f7881cbb308a7640d0ed6c51b2a74 Mon Sep 17 00:00:00 2001 From: jolavillette Date: Mon, 18 May 2026 16:01:30 +0200 Subject: [PATCH] build(cmake): minimal fixes for transitive restbed headers, i2pcommon, and versioning --- CMakeLists.txt | 29 +++++++++++++++++++++++++---- src/CMakeLists.txt | 7 +++---- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7700cf524..88f9a382c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -484,9 +484,9 @@ if(RS_JSON_API) # dependencies see https://stackoverflow.com/a/64900982 target_include_directories( - ${PROJECT_NAME} PRIVATE "${RESTBED_DEVEL_DIR}/source/" ) + ${PROJECT_NAME} PUBLIC "${RESTBED_DEVEL_DIR}/source/" ) target_link_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/../supportlibs/restbed") - target_link_libraries(${PROJECT_NAME} PRIVATE restbed) + target_link_libraries(${PROJECT_NAME} PRIVATE restbed-static) else() message( WARNING "FetchContent restbed, will be installed if you run make install") @@ -503,7 +503,7 @@ if(RS_JSON_API) FetchContent_MakeAvailable(restbed) target_include_directories( - ${PROJECT_NAME} PRIVATE ${restbed_SOURCE_DIR}/source/ ) + ${PROJECT_NAME} PUBLIC ${restbed_SOURCE_DIR}/source/ ) target_link_libraries(${PROJECT_NAME} PRIVATE restbed-static) endif() @@ -690,9 +690,14 @@ else() set(V_GIT_DESCRIBE_OUTPUT "") set(V_GIT_DESCRIBE_REGEXP "^v([0-9]+).([0-9]+).([0-9]+)(.*)\n$") + set(V_GIT_DIR "${CMAKE_CURRENT_SOURCE_DIR}") + if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../.git") + set(V_GIT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..") + endif() + execute_process( COMMAND ${GIT_EXECUTABLE} describe --tags --long --match v*.*.* - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + WORKING_DIRECTORY "${V_GIT_DIR}" OUTPUT_VARIABLE V_GIT_DESCRIBE_OUTPUT ) if(V_GIT_DESCRIBE_OUTPUT MATCHES "${V_GIT_DESCRIBE_REGEXP}") @@ -721,6 +726,22 @@ if(V_VERSION_SET) PUBLIC RS_EXTRA_VERSION="${RS_EXTRA_VERSION}" ) endif(V_VERSION_SET) +# Define the libretroshare specific version hash (submodule hash) +set(V_LIB_GIT_HASH "") +execute_process( + COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=7 --always --dirty + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + OUTPUT_VARIABLE V_LIB_GIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE ) + +if(V_LIB_GIT_HASH STREQUAL "") + set(V_LIB_GIT_HASH "[version not available]") +endif() + +target_compile_definitions( + ${PROJECT_NAME} + PUBLIC RS_LIB_VERSION_HASH="${V_LIB_GIT_HASH}" ) + ################################################################################ # TODO: Use generator expressions instead of CMAKE_BUILD_TYPE see diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ef55447a0..4ad8b4300 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -617,13 +617,12 @@ list( util/rsnet.cc util/rsnet_ss.cc util/rsstacktrace.cc - util/rsthreads.cc ) - -# util/i2pcommon.cpp -# util/i2pcommon.h + util/rsthreads.cc + util/i2pcommon.cpp ) list( APPEND RS_IMPLEMENTATION_HEADERS + util/i2pcommon.h util/argstream.h util/contentvalue.h util/cxx11retrocompat.h