@@ -47,6 +47,11 @@ cmake_dependent_option(
4747 "RS_BITDHT_STUNNER"
4848 OFF )
4949
50+ option (
51+ RS_RNPLIB
52+ "Enable use RNP lib for PGP"
53+ ON )
54+
5055option (
5156 RS_JSON_API
5257 "Use restbed to expose libretroshare as JSON API via HTTP"
@@ -291,25 +296,48 @@ target_link_libraries(${PROJECT_NAME} PRIVATE OpenSSL::SSL OpenSSL::Crypto)
291296
292297################################################################################
293298
294- set (OPENPGPSDK_DEVEL_DIR "${CMAKE_CURRENT_SOURCE_DIR} /../openpgpsdk/" )
295- if (EXISTS "${OPENPGPSDK_DEVEL_DIR} /CMakeLists.txt" )
296- message (
297- STATUS
298- "openpgpsdk source found at ${OPENPGPSDK_DEVEL_DIR} using it" )
299- add_subdirectory ("${OPENPGPSDK_DEVEL_DIR} " "${CMAKE_BINARY_DIR} /openpgpsdk" )
300- else ()
301- FetchContent_Declare (
302- openpgpsdk
303- GIT_REPOSITORY "https://github.com/RetroShare/OpenPGP-SDK.git"
304- GIT_TAG "origin/master"
305- GIT_SHALLOW TRUE
306- GIT_PROGRESS TRUE
307- TIMEOUT 10
299+ if (RS_RNPLIB)
300+ # Add RNP build directories to linker search path
301+ target_link_directories (${PROJECT_NAME} PRIVATE
302+ ${CMAKE_CURRENT_BINARY_DIR} /../supportlibs/librnp/Build/src/lib
303+ ${CMAKE_CURRENT_BINARY_DIR} /../supportlibs/librnp/Build/src/libsexpp
304+ )
305+
306+ # Link libraries by name, including RNP libs and dependencies first
307+ target_link_libraries (${PROJECT_NAME} PRIVATE
308+ rnp # Link by name
309+ sexpp
308310 )
309- FetchContent_MakeAvailable (openpgpsdk)
310- endif ()
311311
312- target_link_libraries (${PROJECT_NAME} PRIVATE openpgpsdk )
312+ target_include_directories (${PROJECT_NAME} PUBLIC
313+ "${CMAKE_CURRENT_SOURCE_DIR} /../supportlibs/librnp/include"
314+ "${CMAKE_CURRENT_BINARY_DIR} /../supportlibs/librnp/Build/src/lib"
315+ )
316+ else ()
317+
318+ set (OPENPGPSDK_DEVEL_DIR "${CMAKE_CURRENT_SOURCE_DIR} /../openpgpsdk/" )
319+ if (EXISTS "${OPENPGPSDK_DEVEL_DIR} /CMakeLists.txt" )
320+ message (
321+ STATUS
322+ "openpgpsdk source found at ${OPENPGPSDK_DEVEL_DIR} using it" )
323+ add_subdirectory ("${OPENPGPSDK_DEVEL_DIR} " "${CMAKE_BINARY_DIR} /openpgpsdk" )
324+ else ()
325+ FetchContent_Declare (
326+ openpgpsdk
327+ GIT_REPOSITORY "https://github.com/RetroShare/OpenPGP-SDK.git"
328+ GIT_TAG "origin/master"
329+ GIT_SHALLOW TRUE
330+ GIT_PROGRESS TRUE
331+ TIMEOUT 10
332+ )
333+ FetchContent_MakeAvailable (openpgpsdk)
334+ endif ()
335+
336+ target_link_libraries (${PROJECT_NAME} PRIVATE openpgpsdk )
337+
338+ target_compile_definitions (${PROJECT_NAME} PUBLIC USE_OPENPGPSDK )
339+
340+ endif (RS_RNPLIB )
313341
314342################################################################################
315343
@@ -337,7 +365,7 @@ if(RS_BITDHT)
337365
338366 target_compile_definitions (${PROJECT_NAME} PUBLIC RS_USE_BITDHT )
339367 target_link_libraries (${PROJECT_NAME} PRIVATE bitdht )
340-
368+
341369 if (RS_BITDHT_STUNNER)
342370 target_compile_definitions (${PROJECT_NAME} PUBLIC RS_USE_DHT_STUNNER )
343371
@@ -397,7 +425,7 @@ if(RS_JSON_API)
397425 set (
398426 JSONAPI_GENERATOR_SOURCE_DIR
399427 "${CMAKE_CURRENT_SOURCE_DIR} /src/jsonapi/" )
400-
428+
401429 set (
402430 JSONAPI_GENERATOR_EXECUTABLE
403431 "${JSONAPI_GENERATOR_SOURCE_DIR} /jsonapi-generator.py" )
@@ -457,6 +485,7 @@ if(RS_JSON_API)
457485
458486 target_include_directories (
459487 ${PROJECT_NAME} PRIVATE "${RESTBED_DEVEL_DIR} /source/" )
488+ target_link_directories (${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_BINARY_DIR} /../supportlibs/restbed" )
460489 target_link_libraries (${PROJECT_NAME} PRIVATE restbed )
461490 else ()
462491 message ( WARNING
@@ -598,7 +627,7 @@ endif(NOT RS_WARN_DEPRECATED)
598627
599628if (RS_WARN_LESS)
600629 target_compile_definitions (${PROJECT_NAME} PRIVATE RS_NO_WARN_CPP )
601-
630+
602631 target_compile_options (
603632 ${PROJECT_NAME} PRIVATE
604633 -Wno-cpp -Wno-inconsistent-missing-override )
0 commit comments