diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b5a3408..ecdeda8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -57,16 +57,12 @@ set_target_properties(zoe PROPERTIES target_include_directories(zoe PUBLIC $ - PUBLIC $ + PUBLIC $ ) # CURL -find_package(CURL REQUIRED) -if(ZOE_BUILD_SHARED_LIBS) - target_link_libraries(zoe PRIVATE ${CURL_LIBRARIES}) -else() - target_link_libraries(zoe PUBLIC ${CURL_LIBRARIES}) -endif() +find_package(CURL CONFIG REQUIRED) +target_link_libraries(zoe PRIVATE CURL::libcurl) target_include_directories(zoe PRIVATE ${CURL_INCLUDE_DIRS}) @@ -74,25 +70,16 @@ target_include_directories(zoe PRIVATE ${CURL_INCLUDE_DIRS}) find_package(OpenSSL) if(OpenSSL_FOUND) target_compile_definitions(zoe PRIVATE WITH_OPENSSL) - - if(ZOE_BUILD_SHARED_LIBS) - target_link_libraries(zoe PRIVATE OpenSSL::SSL OpenSSL::Crypto) - else() - target_link_libraries(zoe PUBLIC OpenSSL::SSL OpenSSL::Crypto) - endif() + target_link_libraries(zoe PRIVATE OpenSSL::SSL) endif() -if (WIN32 OR _WIN32) - if(ZOE_BUILD_SHARED_LIBS) - target_link_libraries(zoe PRIVATE Ws2_32.lib Crypt32.lib) - else() - target_link_libraries(zoe PUBLIC Ws2_32.lib Crypt32.lib) - endif() +if (WIN32) + target_link_libraries(zoe PRIVATE ws2_32 crypt32) endif() install(TARGETS zoe - EXPORT zoeConfig + EXPORT zoeTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} @@ -101,15 +88,25 @@ install(TARGETS zoe install(DIRECTORY ../include/zoe DESTINATION include) -install(EXPORT zoeConfig +install(EXPORT zoeTargets NAMESPACE zoe:: DESTINATION share/zoe ) include(CMakePackageConfigHelpers) +configure_package_config_file(zoeConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/zoeConfig.cmake + INSTALL_DESTINATION share/zoe + NO_SET_AND_CHECK_MACRO + NO_CHECK_REQUIRED_COMPONENTS_MACRO +) write_basic_package_version_file( zoeConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zoeConfigVersion.cmake DESTINATION share/zoe) +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/zoeConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/zoeConfigVersion.cmake + DESTINATION share/zoe +) diff --git a/src/zoeConfig.cmake.in b/src/zoeConfig.cmake.in new file mode 100644 index 0000000..28f29fe --- /dev/null +++ b/src/zoeConfig.cmake.in @@ -0,0 +1,11 @@ +@PACKAGE_INIT@ + +if(NOT "@ZOE_BUILD_SHARED_LIBS@") + include(CMakeFindDependencyMacro) + find_dependency(CURL) + if("@OpenSSL_FOUND@") + find_dependency(OpenSSL) + endif() +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/zoeTargets.cmake")