--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -120,27 +120,25 @@ set(OPTIONAL_LIBRARIES_STATIC) ######################################################################## # LIBZMQ dependency ######################################################################## -find_package(libzmq REQUIRED) -IF (LIBZMQ_FOUND) - include_directories(${LIBZMQ_INCLUDE_DIRS}) - list(APPEND MORE_LIBRARIES ${LIBZMQ_LIBRARIES}) +IF (1) + find_package(ZeroMQ REQUIRED CONFIG) + list(APPEND MORE_LIBRARIES $,libzmq,libzmq-static>) IF (PC_LIBZMQ_FOUND) set(pkg_config_names_private "${pkg_config_names_private} libzmq") list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_LIBZMQ_STATIC_LDFLAGS}) ELSE (PC_LIBZMQ_FOUND) set(pkg_config_libs_private "${pkg_config_libs_private} -lzmq") ENDIF (PC_LIBZMQ_FOUND) -ELSE (LIBZMQ_FOUND) +ELSE () message( FATAL_ERROR "libzmq not found." ) -ENDIF (LIBZMQ_FOUND) +ENDIF () ######################################################################## # UUID dependency ######################################################################## -find_package(uuid) -IF (UUID_FOUND) - include_directories(${UUID_INCLUDE_DIRS}) - list(APPEND MORE_LIBRARIES ${UUID_LIBRARIES}) +IF (CZMQ_WITH_UUID) + find_package(libuuid REQUIRED CONFIG) + list(APPEND MORE_LIBRARIES libuuid::libuuid) IF (PC_UUID_FOUND) set(pkg_config_names_private "${pkg_config_names_private} uuid") list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_UUID_STATIC_LDFLAGS}) @@ -148,16 +146,14 @@ IF (UUID_FOUND) set(pkg_config_libs_private "${pkg_config_libs_private} -luuid") ENDIF (PC_UUID_FOUND) add_definitions(-DHAVE_UUID) - list(APPEND OPTIONAL_LIBRARIES ${UUID_LIBRARIES}) -ENDIF (UUID_FOUND) +ENDIF () ######################################################################## # SYSTEMD dependency ######################################################################## -find_package(systemd) -IF (SYSTEMD_FOUND) - include_directories(${SYSTEMD_INCLUDE_DIRS}) - list(APPEND MORE_LIBRARIES ${SYSTEMD_LIBRARIES}) +IF (CZMQ_WITH_SYSTEMD) + find_package(libsystemd REQUIRED CONFIG) + list(APPEND MORE_LIBRARIES libsystemd::libsystemd) IF (PC_SYSTEMD_FOUND) set(pkg_config_names_private "${pkg_config_names_private} libsystemd >= 200.0.0") list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_SYSTEMD_STATIC_LDFLAGS}) @@ -165,16 +161,14 @@ IF (SYSTEMD_FOUND) set(pkg_config_libs_private "${pkg_config_libs_private} -lsystemd") ENDIF (PC_SYSTEMD_FOUND) add_definitions(-DHAVE_LIBSYSTEMD) - list(APPEND OPTIONAL_LIBRARIES ${SYSTEMD_LIBRARIES}) -ENDIF (SYSTEMD_FOUND) +ENDIF () ######################################################################## # LZ4 dependency ######################################################################## -find_package(lz4) -IF (LZ4_FOUND) - include_directories(${LZ4_INCLUDE_DIRS}) - list(APPEND MORE_LIBRARIES ${LZ4_LIBRARIES}) +IF (CZMQ_WITH_LZ4) + find_package(lz4 REQUIRED CONFIG) + list(APPEND MORE_LIBRARIES $,LZ4::lz4_shared,LZ4::lz4_static>) IF (PC_LZ4_FOUND) set(pkg_config_names_private "${pkg_config_names_private} liblz4") list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_LZ4_STATIC_LDFLAGS}) @@ -182,16 +176,14 @@ IF (LZ4_FOUND) set(pkg_config_libs_private "${pkg_config_libs_private} -llz4") ENDIF (PC_LZ4_FOUND) add_definitions(-DHAVE_LIBLZ4) - list(APPEND OPTIONAL_LIBRARIES ${LZ4_LIBRARIES}) -ENDIF (LZ4_FOUND) +ENDIF () ######################################################################## # LIBCURL dependency ######################################################################## -find_package(libcurl) -IF (LIBCURL_FOUND) - include_directories(${LIBCURL_INCLUDE_DIRS}) - list(APPEND MORE_LIBRARIES ${LIBCURL_LIBRARIES}) +IF (CZMQ_WITH_LIBCURL) + find_package(CURL REQUIRED) + list(APPEND MORE_LIBRARIES CURL::libcurl) IF (PC_LIBCURL_FOUND) set(pkg_config_names_private "${pkg_config_names_private} libcurl >= 7.28.0") list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_LIBCURL_STATIC_LDFLAGS}) @@ -199,16 +191,14 @@ IF (LIBCURL_FOUND) set(pkg_config_libs_private "${pkg_config_libs_private} -lcurl") ENDIF (PC_LIBCURL_FOUND) add_definitions(-DHAVE_LIBCURL) - list(APPEND OPTIONAL_LIBRARIES ${LIBCURL_LIBRARIES}) -ENDIF (LIBCURL_FOUND) +ENDIF () ######################################################################## # LIBMICROHTTPD dependency ######################################################################## -find_package(libmicrohttpd) -IF (LIBMICROHTTPD_FOUND) - include_directories(${LIBMICROHTTPD_INCLUDE_DIRS}) - list(APPEND MORE_LIBRARIES ${LIBMICROHTTPD_LIBRARIES}) +IF (CZMQ_WITH_LIBMICROHTTPD) + find_package(libmicrohttpd REQUIRED CONFIG) + list(APPEND MORE_LIBRARIES libmicrohttpd::libmicrohttpd) IF (PC_LIBMICROHTTPD_FOUND) set(pkg_config_names_private "${pkg_config_names_private} libmicrohttpd") list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_LIBMICROHTTPD_STATIC_LDFLAGS}) @@ -216,8 +206,7 @@ IF (LIBMICROHTTPD_FOUND) set(pkg_config_libs_private "${pkg_config_libs_private} -lmicrohttpd") ENDIF (PC_LIBMICROHTTPD_FOUND) add_definitions(-DHAVE_LIBMICROHTTPD) - list(APPEND OPTIONAL_LIBRARIES ${LIBMICROHTTPD_LIBRARIES}) -ENDIF (LIBMICROHTTPD_FOUND) +ENDIF () ######################################################################## # version @@ -368,7 +357,10 @@ IF (NOT MSVC) # avoid building everything twice for shared + static # only on *nix, as Windows needs different preprocessor defines in static builds add_library (czmq_objects OBJECT ${czmq_sources}) + target_link_libraries(czmq_objects PUBLIC ${MORE_LIBRARIES}) + if(CZMQ_BUILD_SHARED) set_property(TARGET czmq_objects PROPERTY POSITION_INDEPENDENT_CODE ON) + endif() ENDIF (NOT MSVC) # shared @@ -380,6 +372,7 @@ if (CZMQ_BUILD_SHARED) ENDIF (MSVC) set_target_properties (czmq PROPERTIES + LINKER_LANGUAGE CXX PUBLIC_HEADER "${public_headers}" DEFINE_SYMBOL "CZMQ_EXPORTS" SOVERSION "4" @@ -501,6 +494,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/czmqConfig.cmake ######################################################################## # executables ######################################################################## +if(0) add_executable( zmakecert "${SOURCE_DIR}/src/zmakecert.c" @@ -720,6 +714,7 @@ add_custom_command( ) include(ClangFormat OPTIONAL) +endif() ######################################################################## # summary