You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ab...@apache.org on 2019/09/23 15:06:17 UTC
[nifi-minifi-cpp] branch master updated: MINIFICPP-1024 - Fix third
party dependencies
This is an automated email from the ASF dual-hosted git repository.
aboda pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
The following commit(s) were added to refs/heads/master by this push:
new 8719bda MINIFICPP-1024 - Fix third party dependencies
8719bda is described below
commit 8719bdad38389e710f8edf844a5478ddfc0fec90
Author: Daniel Bakai <ba...@gmail.com>
AuthorDate: Thu Sep 19 13:02:42 2019 +0200
MINIFICPP-1024 - Fix third party dependencies
Signed-off-by: Arpad Boda <ab...@gapache.org>
This closes #649
---
CMakeLists.txt | 24 +++++++++++++++++++++--
extensions/librdkafka/CMakeLists.txt | 32 +++++++++++++++++++++----------
thirdparty/paho.mqtt.c/src/CMakeLists.txt | 27 +++++---------------------
3 files changed, 49 insertions(+), 34 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9f946f2..ec02734 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -196,7 +196,7 @@ if (NOT OPENSSL_OFF)
include(LibreSSL)
use_libre_ssl("${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/ssl")
-
+
find_package (OpenSSL REQUIRED)
if (OPENSSL_FOUND)
@@ -294,11 +294,18 @@ endif()
else()
endif()
+ list(APPEND CURL_CMAKE_MODULE_PATH_PASSTHROUGH_LIST "${CMAKE_SOURCE_DIR}/cmake/ssl")
+ if(WIN32 OR NOT USE_SYSTEM_ZLIB)
+ list(APPEND CURL_CMAKE_MODULE_PATH_PASSTHROUGH_LIST "${CMAKE_SOURCE_DIR}/cmake/zlib/dummy")
+ endif()
+ string(REPLACE ";" "%" CURL_CMAKE_MODULE_PATH_PASSTHROUGH "${CURL_CMAKE_MODULE_PATH_PASSTHROUGH_LIST}")
+
ExternalProject_Add(
curl-external
GIT_REPOSITORY "https://github.com/curl/curl.git"
GIT_TAG "f3294d9d86e6a7915a967efff2842089b8b0d071" # Version 7.64.0
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/thirdparty/curl-src"
+ LIST_SEPARATOR % # This is needed for passing semicolon-separated lists
CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
"-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/thirdparty/curl-install"
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
@@ -310,6 +317,12 @@ endif()
-DCMAKE_USE_OPENSSL=ON
"-DLIBRESSL_BIN_DIR=${LIBRESSL_BIN_DIR}"
"-DLIBRESSL_SRC_DIR=${LIBRESSL_SRC_DIR}"
+ "-DBYPRODUCT_PREFIX=${BYPRODUCT_PREFIX}"
+ "-DBYPRODUCT_SUFFIX=${BYPRODUCT_SUFFIX}"
+ "-DZLIB_BYPRODUCT_INCLUDE=${ZLIB_BYPRODUCT_INCLUDE}"
+ "-DZLIB_BYPRODUCT=${ZLIB_BYPRODUCT}"
+ "-DZLIB_LIBRARY=${ZLIB_LIBRARY}"
+ "-DZLIB_LIBRARIES=${ZLIB_LIBRARIES}"
-DCURL_DISABLE_CRYPTO_AUTH=ON
-DCMAKE_USE_LIBSSH2=OFF
"-DCMAKE_DEBUG_POSTFIX="
@@ -320,7 +333,7 @@ endif()
-DHAVE_POLL_FINE_EXITCODE=0
-DHAVE_FSETXATTR_5=0
-DHAVE_FSETXATTR_5__TRYRUN_OUTPUT=""
- "-DCMAKE_MODULE_PATH=${CMAKE_SOURCE_DIR}/cmake/ssl"
+ "-DCMAKE_MODULE_PATH=${CURL_CMAKE_MODULE_PATH_PASSTHROUGH}"
"-DCMAKE_C_FLAGS=${CURL_C_FLAGS}"
"-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
"-DCMAKE_CXX_FLAGS=${CURL_CXX_FLAGS}"
@@ -329,6 +342,9 @@ endif()
)
add_dependencies(curl-external libressl-portable)
+ if(WIN32 OR NOT USE_SYSTEM_ZLIB)
+ add_dependencies(curl-external zlib-external)
+ endif()
set(CURL_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/curl/" CACHE STRING "" FORCE)
set(CURL_BIN_DIR "${CMAKE_CURRENT_BINARY_DIR}/thirdparty/curl-install/" CACHE STRING "" FORCE)
@@ -472,6 +488,10 @@ endif(WIN32)
option(ENABLE_MQTT "Enables the mqtt extension." OFF)
if(ENABLE_ALL OR ENABLE_MQTT)
createExtension(MQTT-EXTENSIONS "MQTT EXTENSIONS" "This Enables MQTT functionality including PublishMQTT/ConsumeMQTT" "extensions/mqtt" "${TEST_DIR}/mqtt-tests" "TRUE" "thirdparty/paho.mqtt.c")
+ add_dependencies(paho-mqtt3cs libressl-portable)
+ add_dependencies(paho-mqtt3as libressl-portable)
+ add_dependencies(paho-mqtt3cs-static libressl-portable)
+ add_dependencies(paho-mqtt3as-static libressl-portable)
endif()
if(ENABLE_ALL OR ENABLE_JNI)
diff --git a/extensions/librdkafka/CMakeLists.txt b/extensions/librdkafka/CMakeLists.txt
index 6b8fbb2..769b0e3 100644
--- a/extensions/librdkafka/CMakeLists.txt
+++ b/extensions/librdkafka/CMakeLists.txt
@@ -38,13 +38,17 @@ endif()
endif()
list(APPEND CMAKE_MODULE_PATH_PASSTHROUGH_LIST "${CMAKE_SOURCE_DIR}/cmake/ssl")
-list(APPEND CMAKE_MODULE_PATH_PASSTHROUGH_LIST "${CMAKE_SOURCE_DIR}/cmake/zlib/dummy")
-
+if(WIN32 OR NOT USE_SYSTEM_ZLIB)
+ list(APPEND CMAKE_MODULE_PATH_PASSTHROUGH_LIST "${CMAKE_SOURCE_DIR}/cmake/zlib/dummy")
+endif()
+string(REPLACE ";" "%" CMAKE_MODULE_PATH_PASSTHROUGH "${CMAKE_MODULE_PATH_PASSTHROUGH_LIST}")
+
ExternalProject_Add(
kafka-external
GIT_REPOSITORY "https://github.com/edenhill/librdkafka.git"
GIT_TAG "v1.0.1"
PREFIX "${BASE_DIR}"
+ LIST_SEPARATOR % # This is needed for passing semicolon-separated lists
CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
"-DCMAKE_INSTALL_PREFIX=${BASE_DIR}/install"
"-DWITH_SASL=OFF"
@@ -54,25 +58,33 @@ ExternalProject_Add(
"-DRDKAFKA_BUILD_TESTS=OFF"
"-DENABLE_LZ4_EXT=OFF"
"-DWITH_ZSTD=OFF"
- "-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH_PASSTHROUGH_LIST}"
+ "-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH_PASSTHROUGH}"
"-DCMAKE_C_FLAGS=${CURL_C_FLAGS}"
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DCMAKE_CXX_FLAGS=${CURL_CXX_FLAGS}"
+ "-DLIBRESSL_BIN_DIR=${LIBRESSL_BIN_DIR}"
+ "-DLIBRESSL_SRC_DIR=${LIBRESSL_SRC_DIR}"
+ "-DBYPRODUCT_PREFIX=${BYPRODUCT_PREFIX}"
+ "-DBYPRODUCT_SUFFIX=${BYPRODUCT_SUFFIX}"
+ "-DZLIB_BYPRODUCT_INCLUDE=${ZLIB_BYPRODUCT_INCLUDE}"
+ "-DZLIB_BYPRODUCT=${ZLIB_BYPRODUCT}"
+ "-DZLIB_LIBRARY=${ZLIB_LIBRARY}"
+ "-DZLIB_LIBRARIES=${ZLIB_LIBRARIES}"
+ "-DLIBRDKAFKA_STATICLIB=1"
EXCLUDE_FROM_ALL TRUE
)
add_dependencies(kafka-external libressl-portable)
+if(WIN32 OR NOT USE_SYSTEM_ZLIB)
+ add_dependencies(kafka-external zlib-external)
+endif()
set(KAFKA_INCLUDE "${BASE_DIR}/install/include/librdkafka/")
set(KAFKA_LIBRARY "${BYPRODUCT}")
+add_definitions("-DLIBRDKAFKA_STATICLIB=1")
add_dependencies(minifi-rdkafka-extensions kafka-external)
include_directories(${ZLIB_INCLUDE_DIRS})
include_directories(${KAFKA_INCLUDE})
-if (WIN32)
- target_link_libraries (minifi-rdkafka-extensions -WHOLEARCHIVE:${KAFKA_LIBRARY} ${KAFKA_LIBRARY})
-elseif (APPLE)
- target_link_libraries (minifi-rdkafka-extensions -Wl,-force_load ${KAFKA_LIBRARY})
-else ()
- target_link_libraries (minifi-rdkafka-extensions -Wl,--whole-archive ${KAFKA_LIBRARY} -Wl,--no-whole-archive)
-endif ()
+
+target_link_libraries(minifi-rdkafka-extensions ${KAFKA_LIBRARY} ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES})
SET (RDKAFKA-EXTENSIONS minifi-rdkafka-extensions PARENT_SCOPE)
diff --git a/thirdparty/paho.mqtt.c/src/CMakeLists.txt b/thirdparty/paho.mqtt.c/src/CMakeLists.txt
index c57185b..b412002 100644
--- a/thirdparty/paho.mqtt.c/src/CMakeLists.txt
+++ b/thirdparty/paho.mqtt.c/src/CMakeLists.txt
@@ -101,27 +101,10 @@ INSTALL(FILES MQTTAsync.h MQTTClient.h MQTTClientPersistence.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
IF (PAHO_WITH_SSL)
- SET(OPENSSL_SEARCH_PATH "" CACHE PATH "Directory containing OpenSSL libraries and includes")
-
- IF (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
- SET(OPENSSL_SEARCH_PATH "/usr/local/opt/openssl")
- ENDIF (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
-
- IF (WIN32)
- SET(OPENSSL_SEARCH_PATH "C:/OpenSSL-Win64")
- ENDIF ()
-
- FIND_PATH(OPENSSL_INCLUDE_DIR openssl/ssl.h
- HINTS ${OPENSSL_SEARCH_PATH}/include)
- FIND_LIBRARY(OPENSSL_LIB NAMES ssl libssl ssleay32
- HINTS ${OPENSSL_SEARCH_PATH}/lib ${OPENSSL_SEARCH_PATH}/lib64)
- FIND_LIBRARY(OPENSSLCRYPTO_LIB NAMES crypto libcrypto libeay32
- HINTS ${OPENSSL_SEARCH_PATH}/lib ${OPENSSL_SEARCH_PATH}/lib64)
-
- MESSAGE(STATUS "OpenSSL hints: ${OPENSSL_SEARCH_PATH}")
MESSAGE(STATUS "OpenSSL headers found at ${OPENSSL_INCLUDE_DIR}")
- MESSAGE(STATUS "OpenSSL library found at ${OPENSSL_LIB}")
- MESSAGE(STATUS "OpenSSL Crypto library found at ${OPENSSLCRYPTO_LIB}")
+ MESSAGE(STATUS "OpenSSL libraries found at ${OPENSSL_LIBRARIES}")
+ MESSAGE(STATUS "OpenSSL Crypto library found at ${OPENSSL_CRYPTO_LIBRARY}")
+ MESSAGE(STATUS "OpenSSL SSL library found at ${OPENSSL_SSL_LIBRARY}")
INCLUDE_DIRECTORIES(
${OPENSSL_INCLUDE_DIR}
@@ -135,8 +118,8 @@ IF (PAHO_WITH_SSL)
ADD_LIBRARY(paho-mqtt3cs SHARED $<TARGET_OBJECTS:common_ssl_obj> MQTTClient.c SSLSocket.c)
ADD_LIBRARY(paho-mqtt3as SHARED $<TARGET_OBJECTS:common_ssl_obj> MQTTAsync.c SSLSocket.c)
- TARGET_LINK_LIBRARIES(paho-mqtt3cs ${OPENSSL_LIB} ${OPENSSLCRYPTO_LIB} ${LIBS_SYSTEM})
- TARGET_LINK_LIBRARIES(paho-mqtt3as ${OPENSSL_LIB} ${OPENSSLCRYPTO_LIB} ${LIBS_SYSTEM})
+ TARGET_LINK_LIBRARIES(paho-mqtt3cs ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY} ${LIBS_SYSTEM})
+ TARGET_LINK_LIBRARIES(paho-mqtt3as ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY} ${LIBS_SYSTEM})
SET_TARGET_PROPERTIES(
paho-mqtt3cs paho-mqtt3as PROPERTIES
VERSION ${CLIENT_VERSION}