This is an automated email from the ASF dual-hosted git repository.
szaszm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
The following commit(s) were added to refs/heads/main by this push:
new 61fc357 MINIFICPP-1446 - SQL extension doesn't compile on Debian
61fc357 is described below
commit 61fc357830f649b7bde6eb123c96f739e86f0ad4
Author: Arpad Boda <[email protected]>
AuthorDate: Tue Jan 19 12:17:27 2021 +0100
MINIFICPP-1446 - SQL extension doesn't compile on Debian
- ossp-uuid: check if patch is already applied instead of just ignoring
errors
- AWS Win build fix
- Compile SQL in Win and Ubuntu-all CI, also compile AWS on Win
This closes #973
Signed-off-by: Marton Szasz <[email protected]>
Co-authored-by: Marton Szasz <[email protected]>
Co-authored-by: Gabor Gyimesi <[email protected]>
---
.github/workflows/ci.yml | 4 ++--
cmake/BundledOSSPUUID.cmake | 7 +++++--
extensions/aws/processors/PutS3Object.h | 2 +-
extensions/aws/utils/AWSInitializer.h | 4 ++++
extensions/expression-language/Expression.cpp | 8 ++++++++
extensions/sql/CMakeLists.txt | 20 ++++++++------------
6 files changed, 28 insertions(+), 17 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 0712203..1e00d42 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -47,7 +47,7 @@ jobs:
- name: Setup PATH
uses: microsoft/[email protected]
- id: build
- run: win_build_vs.bat build /CI
+ run: win_build_vs.bat build /CI /S /A
shell: cmd
windows_VS2019:
name: "windows-vs2019"
@@ -150,7 +150,7 @@ jobs:
sudo apt install -y ccache openjdk-8-jdk maven
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
- id: build
- run: sudo mount tmpfs -t tmpfs /tmp && ./bootstrap.sh -e -t && cd
build && cmake -DUSE_SHARED_LIBS= -DENABLE_LIBRDKAFKA=ON -DENABLE_OPC=ON
-DENABLE_SFTP=ON -DENABLE_MQTT=ON -DENABLE_COAP=ON -DENABLE_PYTHON=ON
-DSTRICT_GSL_CHECKS=AUDIT .. && cmake --build . --parallel 4 && make test
ARGS="--timeout 300 -j8 --output-on-failure"
+ run: sudo mount tmpfs -t tmpfs /tmp && ./bootstrap.sh -e -t && cd
build && cmake -DUSE_SHARED_LIBS= -DENABLE_LIBRDKAFKA=ON -DENABLE_OPC=ON
-DENABLE_SFTP=ON -DENABLE_MQTT=ON -DENABLE_COAP=ON -DENABLE_PYTHON=ON
-DENABLE_SQL=ON -DSTRICT_GSL_CHECKS=AUDIT .. && cmake --build . --parallel 4
&& make test ARGS="--timeout 300 -j8 --output-on-failure"
debian:
name: "debian"
runs-on: ubuntu-18.04
diff --git a/cmake/BundledOSSPUUID.cmake b/cmake/BundledOSSPUUID.cmake
index 95b1bb4..1bf311e 100644
--- a/cmake/BundledOSSPUUID.cmake
+++ b/cmake/BundledOSSPUUID.cmake
@@ -21,8 +21,11 @@ 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" &&
- "${Patch_EXECUTABLE}" -p1 -i
"${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-no-prog.patch")
+ # if already applied, reverse application should succeed
+ set(PC bash -c "set -x && (\"${Patch_EXECUTABLE}\" -p1 -N -i
\"${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-mac-fix.patch\" &&\
+ \"${Patch_EXECUTABLE}\" -p1 -N -i
\"${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-no-prog.patch\") ||\
+ (\"${Patch_EXECUTABLE}\" -p1 -R --dry-run -i
\"${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-mac-fix.patch\" &&\
+ \"${Patch_EXECUTABLE}\" -p1 -R --dry-run -i
\"${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-no-prog.patch\")")
# Define byproducts
set(BYPRODUCTS "lib/libuuid.a"
diff --git a/extensions/aws/processors/PutS3Object.h
b/extensions/aws/processors/PutS3Object.h
index 1d5c62a..1251153 100644
--- a/extensions/aws/processors/PutS3Object.h
+++ b/extensions/aws/processors/PutS3Object.h
@@ -94,7 +94,7 @@ class PutS3Object : public S3Processor {
buffer.reserve(BUFFER_SIZE);
read_size_ = 0;
while (read_size_ < flow_size_) {
- auto next_read_size = std::min(flow_size_ - read_size_, BUFFER_SIZE);
+ auto next_read_size = (std::min)(flow_size_ - read_size_, BUFFER_SIZE);
int read_ret = stream->read(buffer.data(), next_read_size);
if (read_ret < 0) {
return -1;
diff --git a/extensions/aws/utils/AWSInitializer.h
b/extensions/aws/utils/AWSInitializer.h
index ced4ff1..64e07c6 100755
--- a/extensions/aws/utils/AWSInitializer.h
+++ b/extensions/aws/utils/AWSInitializer.h
@@ -30,6 +30,10 @@
#undef GetMessage
#endif
+#if defined(WIN32) && defined(GetObject)
+#undef GetObject
+#endif
+
namespace org {
namespace apache {
namespace nifi {
diff --git a/extensions/expression-language/Expression.cpp
b/extensions/expression-language/Expression.cpp
index 312eb6e..545983f 100644
--- a/extensions/expression-language/Expression.cpp
+++ b/extensions/expression-language/Expression.cpp
@@ -30,7 +30,15 @@
#include <utils/OsUtils.h>
#include <expression/Expression.h>
#include <regex>
+
#ifndef DISABLE_CURL
+#ifdef WIN32
+#pragma comment(lib, "wldap32.lib" )
+#pragma comment(lib, "crypt32.lib" )
+#pragma comment(lib, "Ws2_32.lib")
+
+#define CURL_STATICLIB
+#endif
#include <curl/curl.h>
#endif
diff --git a/extensions/sql/CMakeLists.txt b/extensions/sql/CMakeLists.txt
index 41ad6e7..bc6a6e9 100644
--- a/extensions/sql/CMakeLists.txt
+++ b/extensions/sql/CMakeLists.txt
@@ -36,12 +36,7 @@ else()
# Build iODBC
# Define byproducts
- if(NOT APPLE)
- include(GNUInstallDirs)
- set(IODBC_BYPRODUCT "${CMAKE_INSTALL_LIBDIR}/libiodbc.a")
- else()
- set(IODBC_BYPRODUCT "lib/libiodbc.a")
- endif()
+ set(IODBC_BYPRODUCT "lib/libiodbc.a")
set(IODBC_BYPRODUCT_DIR
"${CMAKE_CURRENT_BINARY_DIR}/thirdparty/iodbc-install/")
@@ -89,11 +84,12 @@ find_package(Patch)
set(PC "${Patch_EXECUTABLE}" -p1 -i
"${CMAKE_CURRENT_SOURCE_DIR}/patch/soci.patch")
# Define byproducts
-if(NOT APPLE AND CMAKE_SIZEOF_VOID_P EQUAL 8)
- include(GNUInstallDirs)
- set(LIBDIR "${CMAKE_INSTALL_LIBDIR}")
-else()
+# This should be based on GNUInstallDirs, but it's done wrong in Soci:
+# https://github.com/SOCI/soci/blob/release/4.0/CMakeLists.txt#L140
+if(APPLE OR CMAKE_SIZEOF_VOID_P EQUAL 4)
set(LIBDIR "lib")
+else()
+ set(LIBDIR "lib64")
endif()
if (WIN32)
@@ -155,12 +151,12 @@ set(SOCI_LIBRARIES "${SOCI_LIBRARIES_LIST}" CACHE STRING
"" FORCE)
file(MAKE_DIRECTORY ${SOCI_INCLUDE_DIR})
add_library(SOCI::libsoci_core STATIC IMPORTED)
-set_target_properties(SOCI::libsoci_core PROPERTIES IMPORTED_LOCATION
"${SOCI_BYPRODUCT_DIR}/lib${LIBSUFFIX}/libsoci_core${BYPRODUCT_SUFFIX}")
+set_target_properties(SOCI::libsoci_core PROPERTIES IMPORTED_LOCATION
"${SOCI_BYPRODUCT_DIR}/${LIBDIR}/libsoci_core${BYPRODUCT_SUFFIX}")
set_target_properties(SOCI::libsoci_core PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${SOCI_INCLUDE_DIR}")
add_dependencies(SOCI::libsoci_core soci-external)
add_library(SOCI::libsoci_odbc STATIC IMPORTED)
-set_target_properties(SOCI::libsoci_odbc PROPERTIES IMPORTED_LOCATION
"${SOCI_BYPRODUCT_DIR}/lib${LIBSUFFIX}/libsoci_odbc${BYPRODUCT_SUFFIX}")
+set_target_properties(SOCI::libsoci_odbc PROPERTIES IMPORTED_LOCATION
"${SOCI_BYPRODUCT_DIR}/${LIBDIR}/libsoci_odbc${BYPRODUCT_SUFFIX}")
set_target_properties(SOCI::libsoci_odbc PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${SOCI_INCLUDE_DIR}")
add_dependencies(SOCI::libsoci_odbc soci-external)
set_property(TARGET SOCI::libsoci_odbc APPEND PROPERTY
INTERFACE_LINK_LIBRARIES SOCI::libsoci_core)