From 4bbad537aabafc7f81041f2c0ff4d0b0b37a45a0 Mon Sep 17 00:00:00 2001 From: 0xFFFC0000 <0xFFFC0000@proton.me> Date: Thu, 13 Jun 2024 10:26:46 +0000 Subject: [PATCH] cmake: add different parameters to add_monero_library. 1. LINKS flag, will link publicly the libraries provided. 2. PRIVATE_LINKS flag, will link privately the libraries provided. 3. INCLUDES flag, will includes publicly the dirs provided. 4. PRIVATE_INCLUDES flag, will include privately the libraries provided. --- CMakeLists.txt | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 20829bc30..9dc136693 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -644,7 +644,7 @@ function (monero_add_library name) endfunction() function (monero_add_library_with_deps) - cmake_parse_arguments(MONERO_ADD_LIBRARY "" "NAME" "DEPENDS;SOURCES" ${ARGN}) + cmake_parse_arguments(MONERO_ADD_LIBRARY "" "NAME" "DEPENDS;LINKS;PRIVATE_LINKS;INCLUDES;PRIVATE_INCLUDES;SOURCES" ${ARGN}) source_group("${MONERO_ADD_LIBRARY_NAME}" FILES ${MONERO_ADD_LIBRARY_SOURCES}) # Define a ("virtual") object library and an actual library that links those @@ -659,6 +659,22 @@ function (monero_add_library_with_deps) if (MONERO_ADD_LIBRARY_DEPENDS) add_dependencies(${objlib} ${MONERO_ADD_LIBRARY_DEPENDS}) endif() + if (MONERO_ADD_LIBRARY_LINKS) + target_link_libraries(${objlib} PUBLIC ${MONERO_ADD_LIBRARY_LINKS}) + target_link_libraries(${MONERO_ADD_LIBRARY_NAME} PUBLIC ${MONERO_ADD_LIBRARY_LINKS}) + endif() + if (MONERO_ADD_LIBRARY_PRIVATE_LINKS) + target_link_libraries(${objlib} PRIVATE ${MONERO_ADD_LIBRARY_PRIVATE_LINKS}) + target_link_libraries(${MONERO_ADD_LIBRARY_NAME} PRIVATE ${MONERO_ADD_LIBRARY_PRIVATE_LINKS}) + endif() + if (MONERO_ADD_LIBRARY_INCLUDES) + target_include_directories(${objlib} PUBLIC ${MONERO_ADD_LIBRARY_INCLUDES}) + target_include_directories(${MONERO_ADD_LIBRARY_NAME} PUBLIC ${MONERO_ADD_LIBRARY_INCLUDES}) + endif() + if (MONERO_ADD_LIBRARY_PRIVATE_INCLUDES) + target_include_directories(${objlib} PRIVATE ${MONERO_ADD_LIBRARY_PRIVATE_INCLUDES}) + target_include_directories(${MONERO_ADD_LIBRARY_NAME} PRIVATE ${MONERO_ADD_LIBRARY_PRIVATE_INCLUDES}) + endif() set_property(TARGET "${MONERO_ADD_LIBRARY_NAME}" PROPERTY FOLDER "libs") target_compile_definitions(${objlib} PRIVATE $)