This is an automated email from the ASF dual-hosted git repository. fgerlits pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit 77720cc3f85524b47d83891b9dccd819348930fb Author: Gabor Gyimesi <[email protected]> AuthorDate: Mon Mar 30 14:54:15 2026 +0200 MINIFICPP-2750 Fix Windows build with CMake 4 CMake 4 is not compatible with CMake features in versions older than CMake 3.5. We need to specify at least version 3.5 for minimum requirements to make configuration succeed. Fortunately winflexbison does not use any older CMake features so changing the required version solves the issue. Signed-off-by: Ferenc Gerlits <[email protected]> Closes #2138 --- cmake/ExpressionLanguage.cmake | 22 ++++++------ .../winflexbison/minimum_cmake_version.patch | 40 ++++++++++++++++++++++ 2 files changed, 52 insertions(+), 10 deletions(-) diff --git a/cmake/ExpressionLanguage.cmake b/cmake/ExpressionLanguage.cmake index 062663709..7e403f273 100644 --- a/cmake/ExpressionLanguage.cmake +++ b/cmake/ExpressionLanguage.cmake @@ -20,10 +20,16 @@ if(WIN32) set(BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}") + set(PATCH_FILE "${CMAKE_SOURCE_DIR}/thirdparty/winflexbison/minimum_cmake_version.patch") + + set(PC ${Bash_EXECUTABLE} -c "set -x &&\ + (\\\"${Patch_EXECUTABLE}\\\" -p1 -R -s -f --dry-run -i \\\"${PATCH_FILE}\\\" || \\\"${Patch_EXECUTABLE}\\\" -p1 -N -i \\\"${PATCH_FILE}\\\")") + FetchContent_Declare( winflexbison URL "https://github.com/lexxmark/winflexbison/archive/refs/tags/v2.5.25.tar.gz" URL_HASH "SHA256=8e1b71e037b524ba3f576babb0cf59182061df1f19cd86112f085a882560f60b" + PATCH_COMMAND "${PC}" SYSTEM ) FetchContent_GetProperties("winflexbison") @@ -31,19 +37,15 @@ if(WIN32) if(NOT winflexbison_POPULATED) FetchContent_Populate("winflexbison") execute_process( - COMMAND ${CMAKE_COMMAND} . - WORKING_DIRECTORY ${winflexbison_SOURCE_DIR} - RESULT_VARIABLE result - OUTPUT_VARIABLE bisonbuild - ERROR_VARIABLE bisonbuildE + COMMAND ${CMAKE_COMMAND} . + WORKING_DIRECTORY ${winflexbison_SOURCE_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( - COMMAND ${CMAKE_COMMAND} --build . --config RelWithDebInfo - WORKING_DIRECTORY ${winflexbison_SOURCE_DIR} - RESULT_VARIABLE result - OUTPUT_VARIABLE bisonbuild - ERROR_VARIABLE bisonbuildE + COMMAND ${CMAKE_COMMAND} --build . --config RelWithDebInfo + WORKING_DIRECTORY ${winflexbison_SOURCE_DIR} + COMMAND_ERROR_IS_FATAL ANY ) file(COPY ${winflexbison_SOURCE_DIR}/bison/Data DESTINATION ${winflexbison_SOURCE_DIR}/bison/RelWithDebInfo/) diff --git a/thirdparty/winflexbison/minimum_cmake_version.patch b/thirdparty/winflexbison/minimum_cmake_version.patch new file mode 100644 index 000000000..d7de8d4cc --- /dev/null +++ b/thirdparty/winflexbison/minimum_cmake_version.patch @@ -0,0 +1,40 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cf657a6..8757b14 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR) ++cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + + project (winflexbison) + +diff --git a/bison/CMakeLists.txt b/bison/CMakeLists.txt +index 55de8a1..24bbdcd 100644 +--- a/bison/CMakeLists.txt ++++ b/bison/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR) ++cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + + set(PROJECT_NAME win_bison) + +diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt +index 4b57c62..6a292fa 100644 +--- a/common/CMakeLists.txt ++++ b/common/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR) ++cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + + set(PROJECT_NAME winflexbison_common) + +diff --git a/flex/CMakeLists.txt b/flex/CMakeLists.txt +index f634f81..02ba17a 100644 +--- a/flex/CMakeLists.txt ++++ b/flex/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR) ++cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + + set(PROJECT_NAME win_flex) +
