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 20d50c4 MINIFICPP-942,MINIFICPP-943 - compile flags refactor
20d50c4 is described below
commit 20d50c4a1d2e8f91f96f865e3ccc0a10d8158d68
Author: Daniel Bakai <[email protected]>
AuthorDate: Tue Apr 21 14:06:29 2020 +0200
MINIFICPP-942,MINIFICPP-943 - compile flags refactor
This commit
- ensures that that the proper compile and link flags are passed
to all CMake ExternalProject_Add third parties
- ensures that the proper compile flags are passed to all
./configure && make && make install third parties
- use the recommended Threads::Threads target everywhere for linking
with the platform-specific threading library, when required
- introduces universal PIC and PIE executables instead of sporadic
and inconsistent usage
- adds support for building with AddressSanitizer intstrumentation
with supported compilers
Signed-off-by: Arpad Boda <[email protected]>
This closes #765
---
CMakeLists.txt | 32 +++++++++--
bootstrap.sh | 2 +
bstrp_functions.sh | 6 +-
cmake/BuildTests.cmake | 4 +-
cmake/BundledAwsSdkCpp.cmake | 10 ++--
cmake/BundledCivetWeb.cmake | 3 +-
cmake/BundledJemalloc.cmake | 8 +--
cmake/BundledLibCoAP.cmake | 3 +-
cmake/BundledLibLZMA.cmake | 2 +-
cmake/BundledLibRdKafka.cmake | 2 +-
cmake/BundledLibcURL.cmake | 3 +-
cmake/BundledOSSPUUID.cmake | 5 +-
cmake/BundledOpen62541.cmake | 2 +-
cmake/BundledPahoMqttC.cmake | 3 +-
cmake/BundledSQLite.cmake | 1 +
cmake/BundledYamlCpp.cmake | 3 +-
controller/CMakeLists.txt | 9 +--
extensions/aws/CMakeLists.txt | 5 +-
extensions/civetweb/CMakeLists.txt | 10 +---
extensions/coap/CMakeLists.txt | 8 +--
extensions/http-curl/CMakeLists.txt | 8 +--
extensions/libarchive/CMakeLists.txt | 8 +--
extensions/librdkafka/CMakeLists.txt | 8 +--
extensions/opc/CMakeLists.txt | 9 +--
extensions/pcap/CMakeLists.txt | 8 +--
extensions/rocksdb-repos/CMakeLists.txt | 8 +--
extensions/script/CMakeLists.txt | 8 +--
extensions/sensors/CMakeLists.txt | 10 +---
extensions/sftp/CMakeLists.txt | 9 +--
extensions/sql/CMakeLists.txt | 9 +--
extensions/sqlite/CMakeLists.txt | 8 +--
extensions/standard-processors/CMakeLists.txt | 10 +---
extensions/tensorflow/CMakeLists.txt | 10 +---
extensions/usb-camera/CMakeLists.txt | 8 +--
extensions/windows-event-log/CMakeLists.txt | 8 +--
libminifi/CMakeLists.txt | 8 +--
main/CMakeLists.txt | 7 +--
nanofi/ecu/CMakeLists.txt | 6 +-
nanofi/examples/CMakeLists.txt | 12 ++--
thirdparty/ossp-uuid/ossp-uuid-no-prog.patch | 81 +++++++++++++++++++++++++++
40 files changed, 175 insertions(+), 189 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 284a876..5283124 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,6 +55,8 @@ option(DISABLE_CURL "Disables libCurl Properties." OFF)
option(USE_GOLD_LINKER "Use Gold Linker" OFF)
option(INSTALLER_MERGE_MODULES "Creates installer with merge modules" OFF)
+cmake_dependent_option(ASAN_BUILD "Uses AddressSanitizer to instrument the
code" OFF "NOT WIN32" OFF)
+
# Use ccache if present
find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
@@ -123,6 +125,29 @@ endif()
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
+# thread library - we must find this before we set ASAN flags, otherwise
FindThreads.cmake sometimes thinks we don't
+# need to link with libpthread because libasan already provides some
overridden pthread_* symbols.
+set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
+set(THREADS_PREFER_PTHREAD_FLAG TRUE)
+find_package(Threads REQUIRED)
+message("CMAKE_THREAD_LIBS_INIT is ${CMAKE_THREAD_LIBS_INIT}")
+message("THREADS_HAVE_PTHREAD_ARG is ${THREADS_HAVE_PTHREAD_ARG}")
+
+# We want everything PIC. Even though it isn't needed for the executables
itself (that use libminifi.a), it is needed
+# to create libminifi.so, and it will enable us to use the same set of
compiled libminifi sources for both.
+# It has the added benefit of having PIE executables that supports using
Address space layout randomization,
+# an important security feature.
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
+# Use ASAN if instructed
+if (ASAN_BUILD)
+ set(ASAN_FLAGS "-g -fsanitize=address
-fsanitize-address-use-after-scope -fno-omit-frame-pointer")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ASAN_FLAGS}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ASAN_FLAGS}")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${ASAN_FLAGS}")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}
${ASAN_FLAGS}")
+endif()
+
#### Third party dependencies ####
# Define function for passing dependencies
@@ -143,12 +168,15 @@ set(PASSTHROUGH_CMAKE_ARGS -DANDROID_ABI=${ANDROID_ABI}
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DANDROID_NDK=${ANDROID_NDK}
+
-DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+ -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS}
+ -DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS}
-DCMAKE_FIND_ROOT_PATH=${CMAKE_FIND_ROOT_PATH}
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=${CMAKE_FIND_ROOT_PATH_MODE_PROGRAM}
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=${CMAKE_FIND_ROOT_PATH_MODE_LIBRARY}
@@ -167,13 +195,9 @@ if(NOT WIN32)
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_JNI")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DENABLE_JNI")
-
endif()
endif()
-# thread library
-find_package(Threads REQUIRED)
-
# Simple-Windows-Posix-Semaphore
if (WIN32)
add_subdirectory("thirdparty/Simple-Windows-Posix-Semaphore")
diff --git a/bootstrap.sh b/bootstrap.sh
index b7cd7c4..9c96146 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -322,6 +322,8 @@ TESTS_DISABLED=${FALSE}
## name, default, values
add_multi_option BUILD_PROFILE "RelWithDebInfo" "RelWithDebInfo" "Debug"
"MinSizeRel" "Release"
+add_disabled_option ASAN_ENABLED ${FALSE} "ASAN_BUILD"
+
if [ "$GUIDED_INSTALL" == "${TRUE}" ]; then
EnableAllFeatures
ALL_FEATURES_ENABLED=${TRUE}
diff --git a/bstrp_functions.sh b/bstrp_functions.sh
index d292d85..a13be2e 100755
--- a/bstrp_functions.sh
+++ b/bstrp_functions.sh
@@ -372,6 +372,7 @@ show_supported_features() {
echo "3. Enable JNI Support ..........$(print_feature_status JNI_ENABLED)"
echo "4. Use Shared Dependency Links .$(print_feature_status
USE_SHARED_LIBS)"
echo "5. Build Profile ...............$(print_multi_option_status
BUILD_PROFILE)"
+ echo "6. Create ASAN build ...........$(print_feature_status ASAN_ENABLED)"
echo "P. Continue with these options"
if [ "$GUIDED_INSTALL" = "${TRUE}" ]; then
echo "R. Return to Main Menu"
@@ -384,7 +385,7 @@ show_supported_features() {
read_feature_options(){
local choice
- read -p "Enter choice [ A - W or 1-4 ] " choice
+ read -p "Enter choice [ A - W or 1-6 ] " choice
choice=$(echo ${choice} | tr '[:upper:]' '[:lower:]')
case $choice in
a) ToggleFeature ROCKSDB_ENABLED ;;
@@ -422,13 +423,14 @@ read_feature_options(){
fi
;;
5) ToggleMultiOption BUILD_PROFILE;;
+ 6) ToggleFeature ASAN_ENABLED;;
p) FEATURES_SELECTED="true" ;;
r) if [ "$GUIDED_INSTALL" = "${TRUE}" ]; then
MENU="main"
fi
;;
q) exit 0;;
- *) echo -e "${RED}Please enter an option A-V or 1-4...${NO_COLOR}" &&
sleep 2
+ *) echo -e "${RED}Please enter an option A-W or 1-6...${NO_COLOR}" &&
sleep 2
esac
}
diff --git a/cmake/BuildTests.cmake b/cmake/BuildTests.cmake
index 8779d86..6df7240 100644
--- a/cmake/BuildTests.cmake
+++ b/cmake/BuildTests.cmake
@@ -72,7 +72,7 @@ function(createTests testName)
target_include_directories(${testName} BEFORE PRIVATE
"${Boost_INCLUDE_DIRS}")
endif()
target_link_libraries(${testName} ${CMAKE_DL_LIBS} ${TEST_BASE_LIB})
- target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT} core-minifi
yaml-cpp spdlog)
+ target_link_libraries(${testName} core-minifi yaml-cpp spdlog
Threads::Threads)
if (NOT excludeBase)
target_wholearchive_library(${testName} minifi)
endif()
@@ -127,7 +127,7 @@ FOREACH(testfile ${NANOFI_UNIT_TESTS})
target_include_directories(${testfilename} BEFORE PRIVATE
"${CMAKE_SOURCE_DIR}/extensions/standard-processors/processors/")
target_include_directories(${testfilename} BEFORE PRIVATE
"${CMAKE_SOURCE_DIR}/libminifi/test")
appendIncludes("${testfilename}")
- target_link_libraries(${testfilename} ${CMAKE_THREAD_LIBS_INIT}
${CATCH_MAIN_LIB} ${TEST_BASE_LIB} nanofi)
+ target_link_libraries(${testfilename} ${CATCH_MAIN_LIB} ${TEST_BASE_LIB}
nanofi Threads::Threads)
target_wholearchive_library(${testfilename} minifi-standard-processors)
diff --git a/cmake/BundledAwsSdkCpp.cmake b/cmake/BundledAwsSdkCpp.cmake
index 4690c61..871e638 100644
--- a/cmake/BundledAwsSdkCpp.cmake
+++ b/cmake/BundledAwsSdkCpp.cmake
@@ -135,7 +135,7 @@ function(use_bundled_libaws SOURCE_DIR BINARY_DIR)
set_target_properties(AWS::aws-c-common PROPERTIES IMPORTED_LOCATION
"${BINARY_DIR}/thirdparty/libaws-install/lib/libaws-c-common.${SUFFIX}")
add_dependencies(AWS::aws-c-common aws-c-common-external)
set_property(TARGET AWS::aws-c-common APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${LIBAWS_INCLUDE_DIR})
- set_property(TARGET AWS::aws-c-common APPEND PROPERTY
INTERFACE_LINK_LIBRARIES CURL::libcurl OpenSSL::Crypto OpenSSL::SSL ZLIB::ZLIB)
+ set_property(TARGET AWS::aws-c-common APPEND PROPERTY
INTERFACE_LINK_LIBRARIES CURL::libcurl OpenSSL::Crypto OpenSSL::SSL ZLIB::ZLIB
Threads::Threads)
if (APPLE)
set_property(TARGET AWS::aws-c-common APPEND PROPERTY
INTERFACE_LINK_LIBRARIES "-framework CoreFoundation")
endif()
@@ -144,7 +144,7 @@ function(use_bundled_libaws SOURCE_DIR BINARY_DIR)
set_target_properties(AWS::aws-checksums PROPERTIES IMPORTED_LOCATION
"${BINARY_DIR}/thirdparty/libaws-install/lib/libaws-checksums.${SUFFIX}")
add_dependencies(AWS::aws-checksums aws-checksums-external)
set_property(TARGET AWS::aws-checksums APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${LIBAWS_INCLUDE_DIR})
- set_property(TARGET AWS::aws-checksums APPEND PROPERTY
INTERFACE_LINK_LIBRARIES CURL::libcurl OpenSSL::Crypto OpenSSL::SSL ZLIB::ZLIB)
+ set_property(TARGET AWS::aws-checksums APPEND PROPERTY
INTERFACE_LINK_LIBRARIES CURL::libcurl OpenSSL::Crypto OpenSSL::SSL ZLIB::ZLIB
Threads::Threads)
if (APPLE)
set_property(TARGET AWS::aws-checksums APPEND PROPERTY
INTERFACE_LINK_LIBRARIES "-framework CoreFoundation")
endif()
@@ -153,7 +153,7 @@ function(use_bundled_libaws SOURCE_DIR BINARY_DIR)
set_target_properties(AWS::aws-c-event-stream PROPERTIES IMPORTED_LOCATION
"${BINARY_DIR}/thirdparty/libaws-install/lib/libaws-c-event-stream.${SUFFIX}")
add_dependencies(AWS::aws-c-event-stream aws-c-event-stream-external)
set_property(TARGET AWS::aws-c-event-stream APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${LIBAWS_INCLUDE_DIR})
- set_property(TARGET AWS::aws-c-event-stream APPEND PROPERTY
INTERFACE_LINK_LIBRARIES AWS::aws-c-common AWS::aws-checksums CURL::libcurl
OpenSSL::Crypto OpenSSL::SSL ZLIB::ZLIB)
+ set_property(TARGET AWS::aws-c-event-stream APPEND PROPERTY
INTERFACE_LINK_LIBRARIES AWS::aws-c-common AWS::aws-checksums CURL::libcurl
OpenSSL::Crypto OpenSSL::SSL ZLIB::ZLIB Threads::Threads)
if (APPLE)
set_property(TARGET AWS::aws-c-event-stream APPEND PROPERTY
INTERFACE_LINK_LIBRARIES "-framework CoreFoundation")
endif()
@@ -162,7 +162,7 @@ function(use_bundled_libaws SOURCE_DIR BINARY_DIR)
set_target_properties(AWS::aws-cpp-sdk-core PROPERTIES IMPORTED_LOCATION
"${BINARY_DIR}/thirdparty/libaws-install/lib/libaws-cpp-sdk-core.${SUFFIX}")
add_dependencies(AWS::aws-cpp-sdk-core aws-sdk-cpp-external)
set_property(TARGET AWS::aws-cpp-sdk-core APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${LIBAWS_INCLUDE_DIR})
- set_property(TARGET AWS::aws-cpp-sdk-core APPEND PROPERTY
INTERFACE_LINK_LIBRARIES AWS::aws-c-event-stream AWS::aws-c-common
AWS::aws-checksums CURL::libcurl OpenSSL::Crypto OpenSSL::SSL ZLIB::ZLIB)
+ set_property(TARGET AWS::aws-cpp-sdk-core APPEND PROPERTY
INTERFACE_LINK_LIBRARIES AWS::aws-c-event-stream AWS::aws-c-common
AWS::aws-checksums CURL::libcurl OpenSSL::Crypto OpenSSL::SSL ZLIB::ZLIB
Threads::Threads)
if (APPLE)
set_property(TARGET AWS::aws-cpp-sdk-core APPEND PROPERTY
INTERFACE_LINK_LIBRARIES "-framework CoreFoundation")
endif()
@@ -171,7 +171,7 @@ function(use_bundled_libaws SOURCE_DIR BINARY_DIR)
set_target_properties(AWS::aws-cpp-sdk-s3 PROPERTIES IMPORTED_LOCATION
"${BINARY_DIR}/thirdparty/libaws-install/lib/libaws-cpp-sdk-s3.${SUFFIX}")
add_dependencies(AWS::aws-cpp-sdk-s3 aws-sdk-cpp-external)
set_property(TARGET AWS::aws-cpp-sdk-s3 APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${LIBAWS_INCLUDE_DIR})
- set_property(TARGET AWS::aws-cpp-sdk-s3 APPEND PROPERTY
INTERFACE_LINK_LIBRARIES CURL::libcurl OpenSSL::Crypto OpenSSL::SSL ZLIB::ZLIB)
+ set_property(TARGET AWS::aws-cpp-sdk-s3 APPEND PROPERTY
INTERFACE_LINK_LIBRARIES CURL::libcurl OpenSSL::Crypto OpenSSL::SSL ZLIB::ZLIB
Threads::Threads)
if (APPLE)
set_property(TARGET AWS::aws-cpp-sdk-s3 APPEND PROPERTY
INTERFACE_LINK_LIBRARIES "-framework CoreFoundation")
endif()
diff --git a/cmake/BundledCivetWeb.cmake b/cmake/BundledCivetWeb.cmake
index f5b7e11..7ed493e 100644
--- a/cmake/BundledCivetWeb.cmake
+++ b/cmake/BundledCivetWeb.cmake
@@ -43,7 +43,6 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
# Set build options
set(CIVETWEB_CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
"-DCMAKE_INSTALL_PREFIX=${CIVETWEB_BIN_DIR}"
- -DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=OFF
-DCIVETWEB_ENABLE_CXX=ON
-DBUILD_TESTING=OFF
@@ -91,7 +90,7 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
set_property(TARGET CIVETWEB::c-library APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${CIVETWEB_INCLUDE_DIR})
add_dependencies(CIVETWEB::c-library civetweb-external)
if (NOT OPENSSL_OFF)
- set_property(TARGET CIVETWEB::c-library APPEND PROPERTY
INTERFACE_LINK_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
+ set_property(TARGET CIVETWEB::c-library APPEND PROPERTY
INTERFACE_LINK_LIBRARIES OpenSSL::SSL OpenSSL::Crypto Threads::Threads)
endif()
add_library(CIVETWEB::civetweb-cpp STATIC IMPORTED)
diff --git a/cmake/BundledJemalloc.cmake b/cmake/BundledJemalloc.cmake
index c4bdfc8..acaf8e8 100644
--- a/cmake/BundledJemalloc.cmake
+++ b/cmake/BundledJemalloc.cmake
@@ -24,18 +24,18 @@ function(use_bundled_jemalloc SOURCE_DIR BINARY_DIR)
# Build project
ExternalProject_Add(
jemalloc-external
- GIT_REPOSITORY "https://github.com/jemalloc/jemalloc.git"
- GIT_TAG "5.1.0"
+ URL
https://github.com/jemalloc/jemalloc/releases/download/5.1.0/jemalloc-5.1.0.tar.bz2
+ URL_HASH
"SHA256=5396e61cc6103ac393136c309fae09e44d74743c86f90e266948c50f3dbb7268"
PREFIX "${BINARY_DIR}/thirdparty/jemalloc"
BUILD_IN_SOURCE true
SOURCE_DIR "${BINARY_DIR}/thirdparty/jemalloc-src"
- BUILD_COMMAND make
+ BUILD_COMMAND make build_lib_static
CMAKE_COMMAND ""
UPDATE_COMMAND ""
BUILD_BYPRODUCTS
"${BINARY_DIR}/thirdparty/jemalloc-src/${BYPRODUCT}"
INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Skipping install step."
CONFIGURE_COMMAND ""
- PATCH_COMMAND ./autogen.sh && ./configure
+ PATCH_COMMAND ./autogen.sh && ./configure
"CFLAGS=${CMAKE_C_FLAGS}" "CXXFLAGS=${CMAKE_CXX_FLAGS}"
STEP_TARGETS build
EXCLUDE_FROM_ALL TRUE
)
diff --git a/cmake/BundledLibCoAP.cmake b/cmake/BundledLibCoAP.cmake
index 1f09362..dceb6ee 100644
--- a/cmake/BundledLibCoAP.cmake
+++ b/cmake/BundledLibCoAP.cmake
@@ -62,7 +62,7 @@ function(use_bundled_libcoap SOURCE_DIR BINARY_DIR)
INSTALL_COMMAND make install
BUILD_BYPRODUCTS
"${BINARY_DIR}/thirdparty/libcoap-install/${BYPRODUCT}"
CONFIGURE_COMMAND ""
- PATCH_COMMAND ./autogen.sh && ./configure --disable-examples
--disable-dtls --disable-tests --disable-documentation
--prefix=${BINARY_DIR}/thirdparty/libcoap-install
+ PATCH_COMMAND ./autogen.sh && ./configure
"CFLAGS=${CMAKE_C_FLAGS} -fPIC" "CXXFLAGS=${CMAKE_CXX_FLAGS} -fPIC"
--disable-examples --disable-dtls --disable-tests --disable-documentation
--prefix=${BINARY_DIR}/thirdparty/libcoap-install
STEP_TARGETS build
EXCLUDE_FROM_ALL TRUE
)
@@ -81,4 +81,5 @@ function(use_bundled_libcoap SOURCE_DIR BINARY_DIR)
set_target_properties(COAP::libcoap PROPERTIES IMPORTED_LOCATION
"${COAP_LIBRARY}")
add_dependencies(COAP::libcoap coap-external)
set_property(TARGET COAP::libcoap APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES "${COAP_INCLUDE_DIRS}")
+ set_property(TARGET COAP::libcoap APPEND PROPERTY INTERFACE_LINK_LIBRARIES
Threads::Threads)
endfunction(use_bundled_libcoap)
diff --git a/cmake/BundledLibLZMA.cmake b/cmake/BundledLibLZMA.cmake
index 2f2de44..1002f5a 100644
--- a/cmake/BundledLibLZMA.cmake
+++ b/cmake/BundledLibLZMA.cmake
@@ -57,7 +57,7 @@ function(use_bundled_liblzma SOURCE_DIR BINARY_DIR)
EXCLUDE_FROM_ALL TRUE
)
else()
- set(CONFIGURE_COMMAND ./configure --disable-xz --disable-xzdec
--disable-lzmadec --disable-lzmainfo --disable-lzma-links --disable-scripts
--disable-doc --enable-shared=no "--prefix=${LIBLZMA_BIN_DIR}")
+ set(CONFIGURE_COMMAND ./configure "CFLAGS=${CMAKE_C_FLAGS} -fPIC"
"CXXFLAGS=${CMAKE_CXX_FLAGS} -fPIC" --disable-xz --disable-xzdec
--disable-lzmadec --disable-lzmainfo --disable-lzma-links --disable-scripts
--disable-doc --enable-shared=no "--prefix=${LIBLZMA_BIN_DIR}")
if(PORTABLE)
list(APPEND CONFIGURE_COMMAND "--disable-assembler")
endif()
diff --git a/cmake/BundledLibRdKafka.cmake b/cmake/BundledLibRdKafka.cmake
index 594ff2c..ce14c31 100644
--- a/cmake/BundledLibRdKafka.cmake
+++ b/cmake/BundledLibRdKafka.cmake
@@ -66,7 +66,7 @@ function(use_bundled_librdkafka SOURCE_DIR BINARY_DIR)
add_library(librdkafka STATIC IMPORTED)
set_target_properties(librdkafka PROPERTIES IMPORTED_LOCATION
"${LIBRDKAFKA_LIBRARY}")
add_dependencies(librdkafka kafka-external)
- set_property(TARGET librdkafka APPEND PROPERTY INTERFACE_LINK_LIBRARIES
OpenSSL::SSL OpenSSL::Crypto ZLIB::ZLIB)
+ set_property(TARGET librdkafka APPEND PROPERTY INTERFACE_LINK_LIBRARIES
OpenSSL::SSL OpenSSL::Crypto ZLIB::ZLIB Threads::Threads)
file(MAKE_DIRECTORY ${LIBRDKAFKA_INCLUDE_DIR})
set_property(TARGET librdkafka APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${LIBRDKAFKA_INCLUDE_DIR})
set_property(TARGET librdkafka APPEND PROPERTY
INTERFACE_COMPILE_DEFINITIONS "LIBRDKAFKA_STATICLIB=1")
diff --git a/cmake/BundledLibcURL.cmake b/cmake/BundledLibcURL.cmake
index 1917d98..b4224c2 100644
--- a/cmake/BundledLibcURL.cmake
+++ b/cmake/BundledLibcURL.cmake
@@ -37,7 +37,6 @@ function(use_bundled_curl SOURCE_DIR BINARY_DIR)
# Set build options
set(CURL_CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
"-DCMAKE_INSTALL_PREFIX=${BINARY_DIR}/thirdparty/curl-install"
- -DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DBUILD_CURL_EXE=OFF
-DBUILD_TESTING=OFF
-DBUILD_SHARED_LIBS=OFF
@@ -99,7 +98,7 @@ function(use_bundled_curl SOURCE_DIR BINARY_DIR)
set_target_properties(CURL::libcurl PROPERTIES IMPORTED_LOCATION
"${CURL_LIBRARY}")
add_dependencies(CURL::libcurl curl-external)
set_property(TARGET CURL::libcurl APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${CURL_INCLUDE_DIRS})
- set_property(TARGET CURL::libcurl APPEND PROPERTY INTERFACE_LINK_LIBRARIES
ZLIB::ZLIB)
+ set_property(TARGET CURL::libcurl APPEND PROPERTY INTERFACE_LINK_LIBRARIES
ZLIB::ZLIB Threads::Threads)
if (NOT OPENSSL_OFF)
set_property(TARGET CURL::libcurl APPEND PROPERTY
INTERFACE_LINK_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
endif()
diff --git a/cmake/BundledOSSPUUID.cmake b/cmake/BundledOSSPUUID.cmake
index 61c02dc..95b1bb4 100644
--- a/cmake/BundledOSSPUUID.cmake
+++ b/cmake/BundledOSSPUUID.cmake
@@ -21,7 +21,8 @@ function(use_bundled_osspuuid SOURCE_DIR BINARY_DIR)
message("Using bundled ossp-uuid")
# Define patch step
- set(PC "${Patch_EXECUTABLE}" -p1 -i
"${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-mac-fix.patch")
+ set(PC "${Patch_EXECUTABLE}" -p1 -i
"${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-mac-fix.patch" &&
+ "${Patch_EXECUTABLE}" -p1 -i
"${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-no-prog.patch")
# Define byproducts
set(BYPRODUCTS "lib/libuuid.a"
@@ -34,7 +35,7 @@ function(use_bundled_osspuuid SOURCE_DIR BINARY_DIR)
ENDFOREACH(BYPRODUCT)
# Build project
- set(CONFIGURE_COMMAND ./configure "CFLAGS=-fPIC" "CXXFLAGS=-fPIC"
--with-cxx --without-perl --without-php --without-pgsql
"--prefix=${BINARY_DIR}/thirdparty/ossp-uuid-install")
+ set(CONFIGURE_COMMAND ./configure "CFLAGS=${CMAKE_C_FLAGS} -fPIC"
"CXXFLAGS=${CMAKE_CXX_FLAGS} -fPIC" --enable-shared=no --with-cxx
--without-perl --without-php --without-pgsql
"--prefix=${BINARY_DIR}/thirdparty/ossp-uuid-install")
string(TOLOWER "${CMAKE_BUILD_TYPE}" build_type)
if(NOT build_type MATCHES debug)
list(APPEND CONFIGURE_COMMAND --enable-debug=yes)
diff --git a/cmake/BundledOpen62541.cmake b/cmake/BundledOpen62541.cmake
index 663d831..5ce80ff 100644
--- a/cmake/BundledOpen62541.cmake
+++ b/cmake/BundledOpen62541.cmake
@@ -69,7 +69,7 @@ function(use_bundled_open62541 SOURCE_DIR BINARY_DIR)
add_dependencies(open62541::open62541 open62541-external)
file(MAKE_DIRECTORY ${OPEN62541_INCLUDE_DIR})
set_property(TARGET open62541::open62541 APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${OPEN62541_INCLUDE_DIR})
- set_property(TARGET open62541::open62541 APPEND PROPERTY
INTERFACE_LINK_LIBRARIES mbedTLS::mbedtls)
+ set_property(TARGET open62541::open62541 APPEND PROPERTY
INTERFACE_LINK_LIBRARIES mbedTLS::mbedtls Threads::Threads)
if(WIN32)
set_property(TARGET open62541::open62541 APPEND PROPERTY
INTERFACE_LINK_LIBRARIES Ws2_32.lib Iphlpapi.lib)
endif()
diff --git a/cmake/BundledPahoMqttC.cmake b/cmake/BundledPahoMqttC.cmake
index fd707e8..ed82b15 100644
--- a/cmake/BundledPahoMqttC.cmake
+++ b/cmake/BundledPahoMqttC.cmake
@@ -34,7 +34,6 @@ function(use_bundled_pahomqttc SOURCE_DIR BINARY_DIR)
# Set build options
set(PAHOMQTTC_CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
"-DCMAKE_INSTALL_PREFIX=${BINARY_DIR}/thirdparty/paho.mqtt.c-install"
- -DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DPAHO_BUILD_STATIC=TRUE
-DPAHO_ENABLE_TESTING=FALSE)
if (OPENSSL_OFF)
@@ -76,6 +75,6 @@ function(use_bundled_pahomqttc SOURCE_DIR BINARY_DIR)
file(MAKE_DIRECTORY ${PAHOMQTTC_INCLUDE_DIR})
set_property(TARGET paho.mqtt.c APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${PAHOMQTTC_INCLUDE_DIR})
if (NOT OPENSSL_OFF)
- set_property(TARGET paho.mqtt.c APPEND PROPERTY
INTERFACE_LINK_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
+ set_property(TARGET paho.mqtt.c APPEND PROPERTY
INTERFACE_LINK_LIBRARIES OpenSSL::SSL OpenSSL::Crypto Threads::Threads)
endif()
endfunction(use_bundled_pahomqttc)
diff --git a/cmake/BundledSQLite.cmake b/cmake/BundledSQLite.cmake
index 0a9e1f8..30abfce 100644
--- a/cmake/BundledSQLite.cmake
+++ b/cmake/BundledSQLite.cmake
@@ -45,4 +45,5 @@ function(use_bundled_sqlite SOURCE_DIR BINARY_DIR)
set_target_properties(SQLite::SQLite3 PROPERTIES IMPORTED_LOCATION
"${SQLite3_LIBRARY}")
add_dependencies(SQLite::SQLite3 sqlite-external)
set_property(TARGET SQLite::SQLite3 APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${SQLite3_INCLUDE_DIRS})
+ set_property(TARGET SQLite::SQLite3 APPEND PROPERTY
INTERFACE_LINK_LIBRARIES Threads::Threads)
endfunction(use_bundled_sqlite)
diff --git a/cmake/BundledYamlCpp.cmake b/cmake/BundledYamlCpp.cmake
index f486681..1b7bab0 100644
--- a/cmake/BundledYamlCpp.cmake
+++ b/cmake/BundledYamlCpp.cmake
@@ -29,8 +29,7 @@ function(use_bundled_yamlcpp SOURCE_DIR BINARY_DIR)
# Set build options
set(YAMLCPP_CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
- "-DCMAKE_INSTALL_PREFIX=${BINARY_DIR}/thirdparty/yaml-cpp-install"
- -DCMAKE_POSITION_INDEPENDENT_CODE=ON)
+ "-DCMAKE_INSTALL_PREFIX=${BINARY_DIR}/thirdparty/yaml-cpp-install")
# Build project
ExternalProject_Add(
diff --git a/controller/CMakeLists.txt b/controller/CMakeLists.txt
index f04d2b0..9e2332b 100644
--- a/controller/CMakeLists.txt
+++ b/controller/CMakeLists.txt
@@ -47,16 +47,9 @@ else()
endif()
add_executable(minificontroller MiNiFiController.cpp ../main/MainHelper.cpp)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minificontroller "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minificontroller "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-
target_wholearchive_library(minificontroller minifi)
-target_link_libraries(minificontroller cxxopts)
+target_link_libraries(minificontroller cxxopts Threads::Threads)
get_property(extensions GLOBAL PROPERTY EXTENSION-OPTIONS)
foreach(EXTENSION ${extensions})
diff --git a/extensions/aws/CMakeLists.txt b/extensions/aws/CMakeLists.txt
index 627b6df..c1c0bbd 100644
--- a/extensions/aws/CMakeLists.txt
+++ b/extensions/aws/CMakeLists.txt
@@ -24,10 +24,9 @@ file(GLOB SOURCES "*.cpp" "s3/*.cpp"
"controllerservices/*.cpp")
add_library(minifi-aws STATIC ${SOURCES})
-target_link_libraries(minifi-aws ${LIBMINIFI})
+target_link_libraries(minifi-aws ${LIBMINIFI} Threads::Threads)
-target_link_libraries(minifi-aws AWS::aws-cpp-sdk-core)
-target_link_libraries(minifi-aws AWS::aws-cpp-sdk-s3)
+target_link_libraries(minifi-aws AWS::aws-cpp-sdk-core AWS::aws-cpp-sdk-s3)
SET (AWS-EXTENSION minifi-aws PARENT_SCOPE)
register_extension(minifi-aws)
diff --git a/extensions/civetweb/CMakeLists.txt
b/extensions/civetweb/CMakeLists.txt
index 72f9de5..aaa9968 100644
--- a/extensions/civetweb/CMakeLists.txt
+++ b/extensions/civetweb/CMakeLists.txt
@@ -28,17 +28,9 @@ file(GLOB SOURCES "processors/*.cpp")
add_library(minifi-civet-extensions STATIC ${SOURCES})
set_property(TARGET minifi-civet-extensions PROPERTY POSITION_INDEPENDENT_CODE
ON)
-target_link_libraries(minifi-civet-extensions ${LIBMINIFI})
+target_link_libraries(minifi-civet-extensions ${LIBMINIFI} Threads::Threads)
target_link_libraries(minifi-civet-extensions CIVETWEB::c-library
CIVETWEB::civetweb-cpp)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-civet-extensions "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-civet-extensions "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-
-
SET (civet-EXTENSIONS minifi-civet-extensions PARENT_SCOPE)
register_extension(minifi-civet-extensions)
diff --git a/extensions/coap/CMakeLists.txt b/extensions/coap/CMakeLists.txt
index 450dbfe..a28da86 100644
--- a/extensions/coap/CMakeLists.txt
+++ b/extensions/coap/CMakeLists.txt
@@ -29,13 +29,9 @@ add_library(nanofi-coap-c STATIC ${CSOURCES})
add_library(minifi-coap STATIC ${SOURCES})
set_property(TARGET minifi-coap PROPERTY POSITION_INDEPENDENT_CODE ON)
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-coap "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-
-target_link_libraries(nanofi-coap-c COAP::libcoap)
+target_link_libraries(nanofi-coap-c COAP::libcoap Threads::Threads)
target_link_libraries(minifi-coap ${LIBMINIFI})
-target_link_libraries(minifi-coap nanofi-coap-c COAP::libcoap minifi-http-curl)
+target_link_libraries(minifi-coap nanofi-coap-c Threads::Threads COAP::libcoap
minifi-http-curl)
SET (COAP-EXTENSION minifi-coap PARENT_SCOPE)
register_extension(minifi-coap)
diff --git a/extensions/http-curl/CMakeLists.txt
b/extensions/http-curl/CMakeLists.txt
index 956fc47..fff6eb1 100644
--- a/extensions/http-curl/CMakeLists.txt
+++ b/extensions/http-curl/CMakeLists.txt
@@ -24,14 +24,8 @@ file(GLOB SOURCES "*.cpp" "protocols/*.cpp" "client/*.cpp"
"processors/*.cpp" "
add_library(minifi-http-curl STATIC ${SOURCES})
set_property(TARGET minifi-http-curl PROPERTY POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-http-curl "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-http-curl "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-target_link_libraries(minifi-http-curl ${LIBMINIFI})
+target_link_libraries(minifi-http-curl ${LIBMINIFI} Threads::Threads)
target_link_libraries(minifi-http-curl CURL::libcurl RapidJSON)
target_link_libraries(minifi-http-curl minifi-civet-extensions)
diff --git a/extensions/libarchive/CMakeLists.txt
b/extensions/libarchive/CMakeLists.txt
index 27c5406..cc55acd 100644
--- a/extensions/libarchive/CMakeLists.txt
+++ b/extensions/libarchive/CMakeLists.txt
@@ -23,14 +23,8 @@ file(GLOB SOURCES "*.cpp")
add_library(minifi-archive-extensions STATIC ${SOURCES})
set_property(TARGET minifi-archive-extensions PROPERTY
POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-archive-extensions "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-archive-extensions "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-target_link_libraries(minifi-archive-extensions ${LIBMINIFI})
+target_link_libraries(minifi-archive-extensions ${LIBMINIFI} Threads::Threads)
target_link_libraries(minifi-archive-extensions LibArchive::LibArchive)
SET (ARCHIVE-EXTENSIONS minifi-archive-extensions PARENT_SCOPE)
diff --git a/extensions/librdkafka/CMakeLists.txt
b/extensions/librdkafka/CMakeLists.txt
index a0856ab..8e8709d 100644
--- a/extensions/librdkafka/CMakeLists.txt
+++ b/extensions/librdkafka/CMakeLists.txt
@@ -23,14 +23,8 @@ file(GLOB SOURCES "*.cpp")
add_library(minifi-rdkafka-extensions STATIC ${SOURCES})
set_property(TARGET minifi-rdkafka-extensions PROPERTY
POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-rdkafka-extensions "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-rdkafka-extensions "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-target_link_libraries(minifi-rdkafka-extensions ${LIBMINIFI})
+target_link_libraries(minifi-rdkafka-extensions ${LIBMINIFI} Threads::Threads)
target_link_libraries(minifi-rdkafka-extensions librdkafka)
SET (RDKAFKA-EXTENSIONS minifi-rdkafka-extensions PARENT_SCOPE)
diff --git a/extensions/opc/CMakeLists.txt b/extensions/opc/CMakeLists.txt
index b9968b0..4a51adf 100644
--- a/extensions/opc/CMakeLists.txt
+++ b/extensions/opc/CMakeLists.txt
@@ -28,14 +28,7 @@ file(GLOB SOURCES "src/*.cpp")
add_library(minifi-opc-extensions STATIC ${SOURCES})
set_property(TARGET minifi-opc-extensions PROPERTY POSITION_INDEPENDENT_CODE
ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-opc-extensions "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-opc-extensions "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-
-target_link_libraries(minifi-opc-extensions ${LIBMINIFI})
+target_link_libraries(minifi-opc-extensions ${LIBMINIFI} Threads::Threads)
target_link_libraries(minifi-opc-extensions ${CMAKE_DL_LIBS} spdlog
open62541::open62541)
diff --git a/extensions/pcap/CMakeLists.txt b/extensions/pcap/CMakeLists.txt
index 25d89cb..347fefe 100644
--- a/extensions/pcap/CMakeLists.txt
+++ b/extensions/pcap/CMakeLists.txt
@@ -53,12 +53,6 @@ file(GLOB SOURCES "*.cpp")
add_library(minifi-pcap STATIC ${SOURCES})
set_property(TARGET minifi-pcap PROPERTY POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-pcap "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-pcap "${CMAKE_THREAD_LIBS_INIT}")
-endif()
add_dependencies(minifi-pcap pcappp)
@@ -69,7 +63,7 @@ if (APPLE)
set_target_properties(minifi-pcap PROPERTIES LINK_FLAGS
"-Wl,-F/Library/Frameworks")
endif ()
-target_link_libraries(minifi-pcap ${LIBMINIFI})
+target_link_libraries(minifi-pcap ${LIBMINIFI} Threads::Threads)
SET (PCAP-EXTENSION minifi-pcap PARENT_SCOPE)
register_extension(minifi-pcap)
diff --git a/extensions/rocksdb-repos/CMakeLists.txt
b/extensions/rocksdb-repos/CMakeLists.txt
index 9bf81bb..3c5395e 100644
--- a/extensions/rocksdb-repos/CMakeLists.txt
+++ b/extensions/rocksdb-repos/CMakeLists.txt
@@ -23,14 +23,8 @@ file(GLOB SOURCES "*.cpp")
add_library(minifi-rocksdb-repos STATIC ${SOURCES})
set_property(TARGET minifi-rocksdb-repos PROPERTY POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-rocksdb-repos "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-rocksdb-repos "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-target_link_libraries(minifi-rocksdb-repos ${LIBMINIFI})
+target_link_libraries(minifi-rocksdb-repos ${LIBMINIFI} Threads::Threads)
target_link_libraries(minifi-rocksdb-repos RocksDB::RocksDB)
SET (ROCKSDB-REPOS minifi-rocksdb-repos PARENT_SCOPE)
diff --git a/extensions/script/CMakeLists.txt b/extensions/script/CMakeLists.txt
index 22a4cd8..d89e4e5 100644
--- a/extensions/script/CMakeLists.txt
+++ b/extensions/script/CMakeLists.txt
@@ -45,14 +45,8 @@ file(GLOB SOURCES "ExecuteScript.cpp" "ScriptFlowFile.cpp"
"ScriptProcessContex
add_library(minifi-script-extensions STATIC ${SOURCES})
set_property(TARGET minifi-script-extensions PROPERTY
POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-script-extensions "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-script-extensions "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-target_link_libraries(minifi-script-extensions ${LIBMINIFI})
+target_link_libraries(minifi-script-extensions ${LIBMINIFI} Threads::Threads)
if (NOT DISABLE_PYTHON_SCRIPTING)
find_package(PythonLibs 3.5)
diff --git a/extensions/sensors/CMakeLists.txt
b/extensions/sensors/CMakeLists.txt
index e78ff08..14aa03a 100644
--- a/extensions/sensors/CMakeLists.txt
+++ b/extensions/sensors/CMakeLists.txt
@@ -25,14 +25,8 @@ file(GLOB SOURCES "*.cpp")
add_library(minifi-sensors STATIC ${SOURCES})
set_property(TARGET minifi-sensors PROPERTY POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-sensors "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-sensors "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-
-target_link_libraries(minifi-sensors ${LIBMINIFI})
+
+target_link_libraries(minifi-sensors ${LIBMINIFI} Threads::Threads)
add_dependencies(minifi-sensors RTIMULib)
target_link_libraries(minifi-sensors RTIMULib)
diff --git a/extensions/sftp/CMakeLists.txt b/extensions/sftp/CMakeLists.txt
index 48a7012..6805730 100644
--- a/extensions/sftp/CMakeLists.txt
+++ b/extensions/sftp/CMakeLists.txt
@@ -24,15 +24,8 @@ file(GLOB SOURCES "*.cpp" "client/*.cpp" "processors/*.cpp")
add_library(minifi-sftp STATIC ${SOURCES})
set_property(TARGET minifi-sftp PROPERTY POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-sftp "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-sftp "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-
-target_link_libraries(minifi-sftp ${LIBMINIFI})
+target_link_libraries(minifi-sftp ${LIBMINIFI} Threads::Threads)
target_link_libraries(minifi-sftp CURL::libcurl libssh2 RapidJSON)
SET (SFTP minifi-sftp PARENT_SCOPE)
diff --git a/extensions/sql/CMakeLists.txt b/extensions/sql/CMakeLists.txt
index ead2726..94d6ede 100644
--- a/extensions/sql/CMakeLists.txt
+++ b/extensions/sql/CMakeLists.txt
@@ -30,13 +30,6 @@ file(GLOB SOURCES "*.cpp" "services/*.cpp"
"processors/*.cpp" "data/*.cpp")
add_library(minifi-sql STATIC ${SOURCES})
set_property(TARGET minifi-sql PROPERTY POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-sql "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-sql "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-
# Get whether we should use lib64/ library paths
get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
@@ -174,7 +167,7 @@ set_property(TARGET SOCI::libsoci_odbc APPEND PROPERTY
INTERFACE_LINK_LIBRARIES
target_link_libraries(minifi-sql SOCI::libsoci_odbc SOCI::libsoci_core)
-target_link_libraries(minifi-sql ${LIBMINIFI})
+target_link_libraries(minifi-sql ${LIBMINIFI} Threads::Threads)
SET (SQL-EXTENSION minifi-sql PARENT_SCOPE)
register_extension(minifi-sql)
diff --git a/extensions/sqlite/CMakeLists.txt b/extensions/sqlite/CMakeLists.txt
index b97a38f..53d6370 100644
--- a/extensions/sqlite/CMakeLists.txt
+++ b/extensions/sqlite/CMakeLists.txt
@@ -23,14 +23,8 @@ file(GLOB SOURCES "*.cpp")
add_library(minifi-sqlite-extensions STATIC ${SOURCES})
set_property(TARGET minifi-sqlite-extensions PROPERTY
POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-sqlite-extensions "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-sqlite-extensions "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-target_link_libraries(minifi-sqlite-extensions ${LIBMINIFI})
+target_link_libraries(minifi-sqlite-extensions ${LIBMINIFI} Threads::Threads)
target_link_libraries(minifi-sqlite-extensions SQLite::SQLite3)
diff --git a/extensions/standard-processors/CMakeLists.txt
b/extensions/standard-processors/CMakeLists.txt
index c96d6ca..d49a29f 100644
--- a/extensions/standard-processors/CMakeLists.txt
+++ b/extensions/standard-processors/CMakeLists.txt
@@ -24,14 +24,8 @@ file(GLOB SOURCES "processors/*.cpp" )
add_library(minifi-standard-processors STATIC ${SOURCES})
set_property(TARGET minifi-standard-processors PROPERTY
POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-standard-processors "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-standard-processors "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-
-target_link_libraries(minifi-standard-processors ${LIBMINIFI})
+
+target_link_libraries(minifi-standard-processors ${LIBMINIFI} Threads::Threads)
SET (STANDARD-PROCESSORS minifi-standard-processors PARENT_SCOPE)
register_extension(minifi-standard-processors)
diff --git a/extensions/tensorflow/CMakeLists.txt
b/extensions/tensorflow/CMakeLists.txt
index a308756..3c792ee 100644
--- a/extensions/tensorflow/CMakeLists.txt
+++ b/extensions/tensorflow/CMakeLists.txt
@@ -32,14 +32,8 @@ file(GLOB SOURCES "*.cpp")
add_library(minifi-tensorflow-extensions STATIC ${SOURCES})
set_property(TARGET minifi-tensorflow-extensions PROPERTY
POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-tensorflow-extensions "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-tensorflow-extensions
"${CMAKE_THREAD_LIBS_INIT}")
-endif()
-
-target_link_libraries(minifi-tensorflow-extensions ${LIBMINIFI})
+
+target_link_libraries(minifi-tensorflow-extensions ${LIBMINIFI}
Threads::Threads)
target_link_libraries(minifi-tensorflow-extensions ${TENSORFLOW_LIBRARIES})
SET (TENSORFLOW-EXTENSIONS minifi-tensorflow-extensions PARENT_SCOPE)
diff --git a/extensions/usb-camera/CMakeLists.txt
b/extensions/usb-camera/CMakeLists.txt
index ef7e0b9..f770247 100644
--- a/extensions/usb-camera/CMakeLists.txt
+++ b/extensions/usb-camera/CMakeLists.txt
@@ -51,14 +51,8 @@ file(GLOB SOURCES "*.cpp")
add_library(minifi-usb-camera-extensions STATIC ${SOURCES})
set_property(TARGET minifi-usb-camera-extensions PROPERTY
POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-usb-camera-extensions "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-usb-camera-extensions
"${CMAKE_THREAD_LIBS_INIT}")
-endif()
-target_link_libraries(minifi-usb-camera-extensions ${LIBMINIFI})
+target_link_libraries(minifi-usb-camera-extensions ${LIBMINIFI}
Threads::Threads)
target_link_libraries(minifi-usb-camera-extensions libuvc PNG::PNG)
SET (USB-CAMERA-EXTENSIONS minifi-usb-camera-extensions PARENT_SCOPE)
diff --git a/extensions/windows-event-log/CMakeLists.txt
b/extensions/windows-event-log/CMakeLists.txt
index 5241126..c205245 100644
--- a/extensions/windows-event-log/CMakeLists.txt
+++ b/extensions/windows-event-log/CMakeLists.txt
@@ -23,14 +23,8 @@ file(GLOB SOURCES "*.cpp" "wel/*.cpp")
add_library(minifi-wel STATIC ${SOURCES})
set_property(TARGET minifi-wel PROPERTY POSITION_INDEPENDENT_CODE ON)
-if(THREADS_HAVE_PTHREAD_ARG)
- target_compile_options(PUBLIC minifi-wel "-pthread")
-endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifi-wel "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-target_link_libraries(minifi-wel ${LIBMINIFI})
+target_link_libraries(minifi-wel ${LIBMINIFI} Threads::Threads)
target_link_libraries(minifi-wel PUGI::libpugixml ZLIB::ZLIB Wevtapi.lib)
SET(WEL-EXTENSION minifi-wel PARENT_SCOPE)
diff --git a/libminifi/CMakeLists.txt b/libminifi/CMakeLists.txt
index b99213e..9eaaf58 100644
--- a/libminifi/CMakeLists.txt
+++ b/libminifi/CMakeLists.txt
@@ -111,7 +111,7 @@ if(WIN32)
target_include_directories(core-minifi PRIVATE
"${CMAKE_CURRENT_BINARY_DIR}/include")
endif()
-target_link_libraries(core-minifi ${CMAKE_DL_LIBS} yaml-cpp ZLIB::ZLIB
concurrentqueue RapidJSON spdlog cron)
+target_link_libraries(core-minifi ${CMAKE_DL_LIBS} yaml-cpp ZLIB::ZLIB
concurrentqueue RapidJSON spdlog cron Threads::Threads)
if(NOT WIN32)
target_link_libraries(core-minifi OSSP::libuuid++)
endif()
@@ -134,7 +134,7 @@ SET (LIBMINIFI core-minifi PARENT_SCOPE)
if (ENABLE_PYTHON AND NOT STATIC_BUILD)
#### shared
add_library(core-minifi-shared SHARED ${SOURCES})
- target_link_libraries(core-minifi-shared ${CMAKE_DL_LIBS} yaml-cpp
ZLIB::ZLIB concurrentqueue RapidJSON spdlog cron)
+ target_link_libraries(core-minifi-shared ${CMAKE_DL_LIBS} yaml-cpp
ZLIB::ZLIB concurrentqueue RapidJSON spdlog cron Threads::Threads)
if(NOT WIN32)
target_link_libraries(core-minifi-shared OSSP::libuuid++)
endif()
@@ -149,8 +149,4 @@ if (ENABLE_PYTHON AND NOT STATIC_BUILD)
set_target_properties(minifi-shared PROPERTIES
WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
set_target_properties(minifi-shared PROPERTIES LINK_FLAGS
"${LINK_FLAGS} /WHOLEARCHIVE:core-minifi-shared")
endif()
-
-
- set_property(TARGET core-minifi-shared PROPERTY
POSITION_INDEPENDENT_CODE ON)
- set_property(TARGET minifi-shared PROPERTY POSITION_INDEPENDENT_CODE ON)
endif(ENABLE_PYTHON AND NOT STATIC_BUILD)
diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt
index 2d6a624..0cfd81f 100644
--- a/main/CMakeLists.txt
+++ b/main/CMakeLists.txt
@@ -66,12 +66,7 @@ if (NOT USE_SHARED_LIBS)
set_target_properties(minifiexe PROPERTIES
LINK_SEARCH_START_STATIC 1)
endif(LIBC_STATIC)
endif(NOT USE_SHARED_LIBS)
-#if(THREADS_HAVE_PTHREAD_ARG)
-# target_compile_options(PUBLIC minifiexe "-pthread")
-#endif()
-if(CMAKE_THREAD_LIBS_INIT)
- target_link_libraries(minifiexe "${CMAKE_THREAD_LIBS_INIT}")
-endif()
+target_link_libraries(minifiexe Threads::Threads)
target_wholearchive_library(minifiexe core-minifi)
target_wholearchive_library(minifiexe minifi)
diff --git a/nanofi/ecu/CMakeLists.txt b/nanofi/ecu/CMakeLists.txt
index 9c9e314..9b55cbd 100644
--- a/nanofi/ecu/CMakeLists.txt
+++ b/nanofi/ecu/CMakeLists.txt
@@ -22,14 +22,14 @@ cmake_minimum_required(VERSION 2.6)
if (NOT WIN32)
add_executable(log_aggregator log_aggregator.c)
-target_link_libraries(log_aggregator nanofi ${CMAKE_THREAD_LIBS_INIT})
+target_link_libraries(log_aggregator nanofi Threads::Threads)
target_wholearchive_library(log_aggregator minifi-http-curl)
add_executable(tailfile_chunk tailfile_chunk.c)
-target_link_libraries(tailfile_chunk nanofi ${CMAKE_THREAD_LIBS_INIT})
+target_link_libraries(tailfile_chunk nanofi Threads::Threads)
target_wholearchive_library(tailfile_chunk minifi-http-curl)
add_executable(tailfile_delimited tailfile_delimited.c)
-target_link_libraries(tailfile_delimited nanofi ${CMAKE_THREAD_LIBS_INIT})
+target_link_libraries(tailfile_delimited nanofi Threads::Threads)
target_wholearchive_library(tailfile_delimited minifi-http-curl)
endif()
diff --git a/nanofi/examples/CMakeLists.txt b/nanofi/examples/CMakeLists.txt
index fa1be9f..f35381a 100644
--- a/nanofi/examples/CMakeLists.txt
+++ b/nanofi/examples/CMakeLists.txt
@@ -53,27 +53,27 @@ add_executable(generate_flow generate_flow.c)
add_executable(terminate_handler terminate_handler.c)
target_wholearchive_library(generate_flow minifi-http-curl)
-target_link_libraries(generate_flow nanofi ${CMAKE_THREAD_LIBS_INIT})
+target_link_libraries(generate_flow nanofi Threads::Threads)
-target_link_libraries(terminate_handler nanofi ${CMAKE_THREAD_LIBS_INIT} )
+target_link_libraries(terminate_handler nanofi Threads::Threads)
#add_executable(hash_file hash_file.c)
-#arget_link_libraries(hash_file nanofi ${CMAKE_THREAD_LIBS_INIT} )
+#arget_link_libraries(hash_file nanofi Threads::Threads )
add_executable(transmit_flow transmit_flow.c)
target_wholearchive_library(transmit_flow minifi-http-curl)
-target_link_libraries(transmit_flow nanofi ${CMAKE_THREAD_LIBS_INIT})
+target_link_libraries(transmit_flow nanofi Threads::Threads)
add_executable(transmit_payload transmit_payload.c)
target_wholearchive_library(transmit_payload minifi-http-curl)
-target_link_libraries(transmit_payload nanofi ${CMAKE_THREAD_LIBS_INIT})
+target_link_libraries(transmit_payload nanofi Threads::Threads)
add_executable(monitor_directory monitor_directory.c)
target_wholearchive_library(monitor_directory minifi-http-curl)
-target_link_libraries(monitor_directory nanofi ${CMAKE_THREAD_LIBS_INIT})
+target_link_libraries(monitor_directory nanofi Threads::Threads)
endif()
diff --git a/thirdparty/ossp-uuid/ossp-uuid-no-prog.patch
b/thirdparty/ossp-uuid/ossp-uuid-no-prog.patch
new file mode 100644
index 0000000..467d89f
--- /dev/null
+++ b/thirdparty/ossp-uuid/ossp-uuid-no-prog.patch
@@ -0,0 +1,81 @@
+diff -rupN orig/Makefile.in patched/Makefile.in
+--- orig/Makefile.in 2008-03-08 19:31:40.000000000 +0100
++++ patched/Makefile.in 2020-04-21 15:57:42.000000000 +0200
+@@ -71,9 +71,6 @@ DCE_OBJS = uuid_dce.lo $(LIB_OBJS)
+ CXX_NAME = libuuid++.la
+ CXX_OBJS = uuid++.lo $(LIB_OBJS)
+
+-PRG_NAME = uuid
+-PRG_OBJS = uuid_cli.o
+-
+ MAN_NAME = uuid.3 uuid++.3 uuid.1
+
+ PERL_NAME = $(S)/perl/blib/lib/OSSP/uuid.pm
+@@ -85,7 +82,7 @@ PHP_OBJS = $(S)/php/uuid.c
+ PGSQL_NAME = $(S)/pgsql/libuuid.so
+ PGSQL_OBJS = $(S)/pgsql/uuid.c
+
+-TARGETS = $(LIB_NAME) @DCE_NAME@ @CXX_NAME@ $(PRG_NAME) @PERL_NAME@
@PHP_NAME@ @PGSQL_NAME@
++TARGETS = $(LIB_NAME) @DCE_NAME@ @CXX_NAME@ @PERL_NAME@ @PHP_NAME@
@PGSQL_NAME@
+
+ WITH_DCE = @WITH_DCE@
+ WITH_CXX = @WITH_CXX@
+@@ -123,9 +120,6 @@ $(CXX_NAME): $(CXX_OBJS)
+ @$(LIBTOOL) --mode=link $(CXX) -o $(CXX_NAME) $(CXX_OBJS) -rpath
$(libdir) \
+ -version-info `$(SHTOOL) version -l c -d libtool $(S)/uuid_vers.h`
+
+-$(PRG_NAME): $(PRG_OBJS) $(LIB_NAME)
+- @$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $(PRG_NAME) $(PRG_OBJS)
$(LIB_NAME) $(LIBS)
+-
+ $(PERL_NAME): $(PERL_OBJS) $(LIB_NAME)
+ @cd $(S)/perl && $(PERL) Makefile.PL PREFIX=$(prefix)
COMPAT=$(WITH_PERL_COMPAT) && $(MAKE) $(MFLAGS) all
+ @touch $(PERL_NAME)
+@@ -187,27 +181,6 @@ uuid.1: uuid_cli.pod
+ $(RM) /tmp/uuid.pod
+
+ check: all
+- @echo "==== UUID version 1 (time and node based): 4 single iterations";
\
+- $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v1 -n 4 -1
+- @echo "==== UUID version 1 (time and node based): 4 subsequent
iterations"; \
+- $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v1 -n 4
+- @echo "==== UUID version 3 (name based, MD5): 2 times repeated"; \
+- $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v3 -n 2 ns:URL
http://www.ossp.org/
+- @echo "==== UUID version 5 (name based, SHA-1): 2 times repeated"; \
+- $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v5 -n 2 ns:URL
http://www.ossp.org/
+- @echo "==== UUID version 4 (random data based): 4 single iterations"; \
+- $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v4 -n 4 -1
+- @echo "==== UUID version 4 (random data based): 4 subsequent
iterations"; \
+- $(LIBTOOL) --mode=execute ./$(PRG_NAME) -v4 -n 4
+- @echo "==== UUID version 1 generation and decoding"; \
+- $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute
./$(PRG_NAME) -v1`; \
+- $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute
./$(PRG_NAME) -v1 -m`
+- @echo "==== UUID version 3 generation and decoding"; \
+- $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute
./$(PRG_NAME) -v3 ns:URL http://www.ossp.org/`
+- @echo "==== UUID version 5 generation and decoding"; \
+- $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute
./$(PRG_NAME) -v5 ns:URL http://www.ossp.org/`
+- @echo "==== UUID version 3 generation and decoding"; \
+- $(LIBTOOL) --mode=execute ./$(PRG_NAME) -d `$(LIBTOOL) --mode=execute
./$(PRG_NAME) -v4`
+ -@if [ ".$(WITH_PERL)" = .yes ]; then \
+ echo "==== Perl bindings to C API"; \
+ (cd $(S)/perl && $(MAKE) $(MFLAGS) test); \
+@@ -253,7 +226,6 @@ install:
+ -@if [ ".$(WITH_CXX)" = .yes ]; then \
+ $(LIBTOOL) --mode=install $(SHTOOL) install -c -m 644 $(CXX_NAME)
$(DESTDIR)$(libdir)/; \
+ fi
+- @$(LIBTOOL) --mode=install $(SHTOOL) install -c -s -m 755 uuid
$(DESTDIR)$(bindir)/
+ $(SHTOOL) install -c -m 644 $(S)/uuid.1 $(DESTDIR)$(mandir)/man1/
+ -@if [ ".$(WITH_PERL)" = .yes ]; then \
+ (cd $(S)/perl && $(MAKE) $(MFLAGS) install DESTDIR=$(DESTDIR)); \
+@@ -313,7 +285,6 @@ clean:
+ echo "$(RM) $(CXX_NAME) $(CXX_OBJS)"; \
+ $(RM) $(CXX_NAME) $(CXX_OBJS); \
+ fi
+- -$(RM) $(PRG_NAME) $(PRG_OBJS)
+ -$(RM) -r .libs >/dev/null 2>&1 || $(TRUE)
+ -$(RM) *.o *.lo
+ -@if [ ".$(WITH_PERL)" = .yes ]; then \
+@@ -354,4 +325,3 @@ realclean: distclean
+ -@if [ ".$(WITH_PGSQL)" = .yes ]; then \
+ (cd $(S)/pgsql && $(MAKE) $(MFLAGS) realclean
PG_CONFIG=$(PG_CONFIG) || true); \
+ fi
+-