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")

Reply via email to