From 000fde485f9473501a6e9b80f37348cd062a03c9 Mon Sep 17 00:00:00 2001 From: elpatron Date: Thu, 28 Aug 2025 20:37:34 +0200 Subject: [PATCH] Fix CMakeLists.txt for Linux compatibility while preserving Windows vcpkg support --- CMakeLists.txt | 47 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 71aef7a..121c161 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,8 +17,16 @@ elseif(UNIX) endif() # Handle dependencies -find_package(cryptopp CONFIG REQUIRED) -find_package(nlohmann_json CONFIG REQUIRED) +if(WIN32) + # Windows: Use vcpkg packages + find_package(cryptopp CONFIG REQUIRED) + find_package(nlohmann_json CONFIG REQUIRED) +else() + # Linux: Use system packages + find_package(PkgConfig REQUIRED) + pkg_check_modules(CRYPTOPP REQUIRED libcryptopp) + pkg_check_modules(NLOHMANN_JSON REQUIRED nlohmann_json) +endif() # Add library sources set(SOURCES @@ -45,17 +53,34 @@ target_include_directories(privatebinapi PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ) -# Explicitly include vcpkg directories -target_include_directories(privatebinapi PRIVATE - ${CMAKE_CURRENT_BINARY_DIR}/vcpkg_installed/x64-windows/include -) +# Platform-specific include directories +if(WIN32) + # Windows: Include vcpkg directories + target_include_directories(privatebinapi PRIVATE + ${CMAKE_CURRENT_BINARY_DIR}/vcpkg_installed/x64-windows/include + ) +endif() # Link dependencies -target_link_libraries(privatebinapi PRIVATE - cryptopp::cryptopp - nlohmann_json::nlohmann_json - ${PLATFORM_LIBS} -) +if(WIN32) + # Windows: Use vcpkg targets + target_link_libraries(privatebinapi PRIVATE + cryptopp::cryptopp + nlohmann_json::nlohmann_json + ${PLATFORM_LIBS} + ) +else() + # Linux: Use system libraries + target_link_libraries(privatebinapi PRIVATE + ${CRYPTOPP_LIBRARIES} + ${NLOHMANN_JSON_LIBRARIES} + ${PLATFORM_LIBS} + ) + target_include_directories(privatebinapi PRIVATE + ${CRYPTOPP_INCLUDE_DIRS} + ${NLOHMANN_JSON_INCLUDE_DIRS} + ) +endif() # Install targets install(TARGETS privatebinapi