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 be873d380 MINIFICPP-2631 Fix various Windows build issues
be873d380 is described below
commit be873d38003f34d85e90d092b2904f7d8970c30b
Author: Gabor Gyimesi <[email protected]>
AuthorDate: Thu Sep 18 08:53:08 2025 +0200
MINIFICPP-2631 Fix various Windows build issues
- Fix OpenCV install lib path on Windows
- Fix setting zstd library variable to correct path
- Fix conf directory install using MSI installer
Closes #2030
Signed-off-by: Marton Szasz <[email protected]>
---
CMakeLists.txt | 1 +
cmake/BundledOpenCV.cmake | 6 +++--
cmake/Zstd.cmake | 9 ++++++--
conf/CMakeLists.txt | 6 +++--
thirdparty/opencv/windows-install-path.patch | 34 ++++++++++++++++++++++++++++
5 files changed, 50 insertions(+), 6 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e20b7b5a4..e1c37bb4e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -673,6 +673,7 @@ if (WIN32)
set(CPACK_GENERATOR "WIX")
set(CPACK_WIX_UPGRADE_GUID "FE29F801-3486-4E9E-AFF9-838C1A5C8D59")
set(CPACK_WIX_PRODUCT_ICON
"${CMAKE_CURRENT_SOURCE_DIR}/packaging/msi/minifi-logo-ico.ico")
+ set(CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY 1)
elseif(APPLE)
set(CPACK_GENERATOR "TGZ")
else()
diff --git a/cmake/BundledOpenCV.cmake b/cmake/BundledOpenCV.cmake
index 4015453fc..855b77913 100644
--- a/cmake/BundledOpenCV.cmake
+++ b/cmake/BundledOpenCV.cmake
@@ -26,7 +26,7 @@ function(use_bundled_opencv SOURCE_DIR BINARY_DIR)
# Define byproducts
if (WIN32)
- set(SUFFIX "410.lib")
+ set(SUFFIX "4120.lib")
set(THIRDPARTY_SUFFIX ".lib")
set(PREFIX "")
set(THIRDPARTY_DIR "")
@@ -105,8 +105,10 @@ function(use_bundled_opencv SOURCE_DIR BINARY_DIR)
append_third_party_passthrough_args(OPENCV_CMAKE_ARGS
"${OPENCV_CMAKE_ARGS}")
set(PATCH_FILE_1 "${SOURCE_DIR}/thirdparty/opencv/c++23_fixes.patch")
+ set(PATCH_FILE_2
"${SOURCE_DIR}/thirdparty/opencv/windows-install-path.patch")
set(PC ${Bash_EXECUTABLE} -c "set -x &&\
- (\"${Patch_EXECUTABLE}\" -p1 -R -s -f --dry-run -i
\"${PATCH_FILE_1}\" || \"${Patch_EXECUTABLE}\" -p1 -N -i \"${PATCH_FILE_1}\")")
+ (\"${Patch_EXECUTABLE}\" -p1 -R -s -f --dry-run -i
\"${PATCH_FILE_1}\" || \"${Patch_EXECUTABLE}\" -p1 -N -i \"${PATCH_FILE_1}\")
&&\
+ (\"${Patch_EXECUTABLE}\" -p1 -R -s -f --dry-run -i
\"${PATCH_FILE_2}\" || \"${Patch_EXECUTABLE}\" -p1 -N -i \"${PATCH_FILE_2}\") ")
# Build project
diff --git a/cmake/Zstd.cmake b/cmake/Zstd.cmake
index 1ba57c8ae..a951b62d4 100644
--- a/cmake/Zstd.cmake
+++ b/cmake/Zstd.cmake
@@ -45,8 +45,13 @@ endif()
set(ZSTD_FOUND "YES" CACHE STRING "" FORCE)
set(ZSTD_INCLUDE_DIRS "${zstd_SOURCE_DIR}/lib" CACHE STRING "" FORCE)
if (WIN32)
- set(ZSTD_LIBRARIES
"${zstd_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE}/zstd_static.lib" CACHE STRING ""
FORCE)
- set(ZSTD_LIBRARY
"${zstd_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE}/zstd_static.lib" CACHE STRING ""
FORCE)
+ if (CMAKE_GENERATOR STREQUAL "Ninja")
+ set(ZSTD_LIBRARIES "${zstd_BINARY_DIR}/lib/zstd_static.lib" CACHE
STRING "" FORCE)
+ set(ZSTD_LIBRARY "${zstd_BINARY_DIR}/lib/zstd_static.lib" CACHE STRING
"" FORCE)
+ else()
+ set(ZSTD_LIBRARIES
"${zstd_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE}/zstd_static.lib" CACHE STRING ""
FORCE)
+ set(ZSTD_LIBRARY
"${zstd_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE}/zstd_static.lib" CACHE STRING ""
FORCE)
+ endif()
else()
set(ZSTD_LIBRARIES "${zstd_BINARY_DIR}/lib/libzstd.a" CACHE STRING ""
FORCE)
set(ZSTD_LIBRARY "${zstd_BINARY_DIR}/lib/libzstd.a" CACHE STRING "" FORCE)
diff --git a/conf/CMakeLists.txt b/conf/CMakeLists.txt
index 6f2db62d8..309b5453b 100644
--- a/conf/CMakeLists.txt
+++ b/conf/CMakeLists.txt
@@ -17,8 +17,6 @@
# under the License.
#
-# Exclude conf for windows since we'll be doing the work in the WiX template
-
if (MINIFI_PACKAGING_TYPE STREQUAL "RPM")
set(MINIFI_PATH_FLOW_CONFIG
"/${CMAKE_INSTALL_SYSCONFDIR}/${PROJECT_NAME}/config.yml")
set(MINIFI_PATH_EXTENSIONS
"/usr/${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/extensions/*")
@@ -67,6 +65,10 @@ configure_file(
@ONLY
)
+# Exclude conf for windows since we'll be doing the work in the WiX template
+if (WIN32)
+ return()
+endif()
if (MINIFI_PACKAGING_TYPE STREQUAL "RPM")
install(FILES
diff --git a/thirdparty/opencv/windows-install-path.patch
b/thirdparty/opencv/windows-install-path.patch
new file mode 100644
index 000000000..fb2ce2540
--- /dev/null
+++ b/thirdparty/opencv/windows-install-path.patch
@@ -0,0 +1,34 @@
+diff --git a/cmake/OpenCVInstallLayout.cmake b/cmake/OpenCVInstallLayout.cmake
+index 25aede72c5..2a9df02b33 100644
+--- a/cmake/OpenCVInstallLayout.cmake
++++ b/cmake/OpenCVInstallLayout.cmake
+@@ -21,18 +21,8 @@ if(ANDROID)
+ ocv_update(OPENCV_JNI_BIN_INSTALL_PATH "${OPENCV_JNI_INSTALL_PATH}")
+
+ elseif(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
+-
+- if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH)
+- ocv_update(OPENCV_INSTALL_BINARIES_PREFIX
"${OpenCV_ARCH}/${OpenCV_RUNTIME}/")
+- else()
+- message(STATUS "Can't detect runtime and/or arch")
+- ocv_update(OPENCV_INSTALL_BINARIES_PREFIX "")
+- endif()
+- if(OpenCV_STATIC)
+- ocv_update(OPENCV_INSTALL_BINARIES_SUFFIX "staticlib")
+- else()
+- ocv_update(OPENCV_INSTALL_BINARIES_SUFFIX "lib")
+- endif()
++ ocv_update(OPENCV_INSTALL_BINARIES_PREFIX "")
++ ocv_update(OPENCV_INSTALL_BINARIES_SUFFIX "lib")
+ if(INSTALL_CREATE_DISTRIB)
+ set(_jni_suffix "/${OpenCV_ARCH}")
+ else()
+@@ -44,7 +34,7 @@ elseif(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
+ ocv_update(OPENCV_SAMPLES_BIN_INSTALL_PATH
"${OPENCV_INSTALL_BINARIES_PREFIX}samples")
+ ocv_update(OPENCV_LIB_INSTALL_PATH
"${OPENCV_INSTALL_BINARIES_PREFIX}${OPENCV_INSTALL_BINARIES_SUFFIX}")
+ ocv_update(OPENCV_LIB_ARCHIVE_INSTALL_PATH "${OPENCV_LIB_INSTALL_PATH}")
+- ocv_update(OPENCV_3P_LIB_INSTALL_PATH
"${OPENCV_INSTALL_BINARIES_PREFIX}staticlib")
++ ocv_update(OPENCV_3P_LIB_INSTALL_PATH
"${OPENCV_INSTALL_BINARIES_PREFIX}lib")
+ ocv_update(OPENCV_CONFIG_INSTALL_PATH ".")
+ ocv_update(OPENCV_INCLUDE_INSTALL_PATH "include")
+ ocv_update(OPENCV_OTHER_INSTALL_PATH "etc")