From 3917fce7cfe75934e61b1fbe2f4d468961831cf8 Mon Sep 17 00:00:00 2001 From: Ahmed Yarub Hani Al Nuaimi Date: Tue, 7 Sep 2021 03:44:24 -0300 Subject: [PATCH] Fix linking to shared libraries on Windows --- examples/list_pod/CMakeLists.txt | 7 +++---- kubernetes/CMakeLists.txt | 9 +++++++-- kubernetes/PostTarget.cmake | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/examples/list_pod/CMakeLists.txt b/examples/list_pod/CMakeLists.txt index 1655916..30154b7 100644 --- a/examples/list_pod/CMakeLists.txt +++ b/examples/list_pod/CMakeLists.txt @@ -1,5 +1,4 @@ +find_package(${pkgName} CONFIG REQUIRED COMPONENTS ${pkgName}) + add_executable(list_pod main.c) - -find_package(${pkgName}) - -target_link_libraries(list_pod PRIVATE ${pkgName}) +target_link_libraries(list_pod PRIVATE ${pkgName}::${pkgName}) \ No newline at end of file diff --git a/kubernetes/CMakeLists.txt b/kubernetes/CMakeLists.txt index 23f3106..0d7d342 100644 --- a/kubernetes/CMakeLists.txt +++ b/kubernetes/CMakeLists.txt @@ -6,6 +6,7 @@ cmake_policy(SET CMP0063 NEW) set(CMAKE_C_VISIBILITY_PRESET default) set(CMAKE_CXX_VISIBILITY_PRESET default) set(CMAKE_VISIBILITY_INLINES_HIDDEN OFF) +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) option(BUILD_SHARED_LIBS "Build using shared libraries" ON) @@ -1546,9 +1547,13 @@ include(PreTarget.cmake OPTIONAL) add_library(${pkgName} ${SRCS} ${HDRS}) # Link dependent libraries if(NOT CMAKE_VERSION VERSION_LESS 3.4) - target_link_libraries(${pkgName} OpenSSL::SSL OpenSSL::Crypto) + target_link_libraries(${pkgName} PRIVATE OpenSSL::SSL OpenSSL::Crypto) endif() -target_link_libraries(${pkgName} ${CURL_LIBRARIES} ) +target_link_libraries(${pkgName} PUBLIC ${CURL_LIBRARIES} ) +target_include_directories( + ${pkgName} PUBLIC $ + $ +) include(PostTarget.cmake OPTIONAL) diff --git a/kubernetes/PostTarget.cmake b/kubernetes/PostTarget.cmake index 4e781fe..b305682 100644 --- a/kubernetes/PostTarget.cmake +++ b/kubernetes/PostTarget.cmake @@ -1,2 +1,2 @@ -target_link_libraries(${pkgName} yaml websockets) +target_link_libraries(${pkgName} PRIVATE yaml websockets_shared) set_target_properties(${pkgName} PROPERTIES LINKER_LANGUAGE C) \ No newline at end of file