From 7f8e428f9a527bf6bbaed8efd8117a3fdd3e0020 Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Tue, 17 Dec 2024 20:48:09 +0100 Subject: [PATCH 1/7] Upgrade RE2C downloaded version This upgrades re2c to 4.0.2 when downloading from upstream as part of the build. Also, in new re2c 4.x releases, the Python3_VERSION does not need to be set anymore (fixed upstream). --- cmake/cmake/modules/FindRE2C.cmake | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/cmake/cmake/modules/FindRE2C.cmake b/cmake/cmake/modules/FindRE2C.cmake index 9649deac3..db8750a03 100644 --- a/cmake/cmake/modules/FindRE2C.cmake +++ b/cmake/cmake/modules/FindRE2C.cmake @@ -140,15 +140,14 @@ if(RE2C_ENABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid)) include(FetchContent) # Set the re2c version to download. - set(RE2C_VERSION 3.1) + set(RE2C_VERSION 4.0.2) # Configure re2c. set(RE2C_BUILD_RE2GO OFF CACHE INTERNAL "") set(RE2C_BUILD_RE2RUST OFF CACHE INTERNAL "") - # Disable searching for Python as it is not needed in FetchContent build. + # Disable searching for Python as it is not needed in this build. set(CMAKE_DISABLE_FIND_PACKAGE_Python3 TRUE) - set(Python3_VERSION 3.12) set(FETCHCONTENT_QUIET FALSE) @@ -157,7 +156,7 @@ if(RE2C_ENABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid)) URL https://github.com/skvadrik/re2c/archive/refs/tags/${RE2C_VERSION}.tar.gz ) - message(STATUS "Downloading RE2C") + message(STATUS "Downloading RE2C ${RE2C_VERSION}") FetchContent_MakeAvailable(RE2C) # Set executable to re2c target name. @@ -165,7 +164,6 @@ if(RE2C_ENABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid)) # Unset temporary variables. unset(CMAKE_DISABLE_FIND_PACKAGE_Python3) - unset(Python3_VERSION) unset(FETCHCONTENT_QUIET) endif() From a0655d998800a403163fc186a4cdab90e29e5caf Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Tue, 17 Dec 2024 21:21:18 +0100 Subject: [PATCH 2/7] Disable some re2c options --- cmake/cmake/modules/FindRE2C.cmake | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cmake/cmake/modules/FindRE2C.cmake b/cmake/cmake/modules/FindRE2C.cmake index db8750a03..88b371f22 100644 --- a/cmake/cmake/modules/FindRE2C.cmake +++ b/cmake/cmake/modules/FindRE2C.cmake @@ -143,8 +143,16 @@ if(RE2C_ENABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid)) set(RE2C_VERSION 4.0.2) # Configure re2c. + set(RE2C_BUILD_RE2D OFF CACHE INTERNAL "") set(RE2C_BUILD_RE2GO OFF CACHE INTERNAL "") + set(RE2C_BUILD_RE2HS OFF CACHE INTERNAL "") + set(RE2C_BUILD_RE2JAVA OFF CACHE INTERNAL "") + set(RE2C_BUILD_RE2JS OFF CACHE INTERNAL "") + set(RE2C_BUILD_RE2OCAML OFF CACHE INTERNAL "") + set(RE2C_BUILD_RE2PY OFF CACHE INTERNAL "") set(RE2C_BUILD_RE2RUST OFF CACHE INTERNAL "") + set(RE2C_BUILD_RE2V OFF CACHE INTERNAL "") + set(RE2C_BUILD_RE2ZIG OFF CACHE INTERNAL "") # Disable searching for Python as it is not needed in this build. set(CMAKE_DISABLE_FIND_PACKAGE_Python3 TRUE) From 76dba298544951ce159dd20c7db3eece9d48f8e4 Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Tue, 17 Dec 2024 22:04:04 +0100 Subject: [PATCH 3/7] Remove redundant find package disabling Since RE2C version 4, Python is optional. --- cmake/cmake/modules/FindRE2C.cmake | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cmake/cmake/modules/FindRE2C.cmake b/cmake/cmake/modules/FindRE2C.cmake index 88b371f22..6b2bfc981 100644 --- a/cmake/cmake/modules/FindRE2C.cmake +++ b/cmake/cmake/modules/FindRE2C.cmake @@ -154,9 +154,6 @@ if(RE2C_ENABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid)) set(RE2C_BUILD_RE2V OFF CACHE INTERNAL "") set(RE2C_BUILD_RE2ZIG OFF CACHE INTERNAL "") - # Disable searching for Python as it is not needed in this build. - set(CMAKE_DISABLE_FIND_PACKAGE_Python3 TRUE) - set(FETCHCONTENT_QUIET FALSE) FetchContent_Declare( @@ -171,7 +168,6 @@ if(RE2C_ENABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid)) set(RE2C_EXECUTABLE re2c) # Unset temporary variables. - unset(CMAKE_DISABLE_FIND_PACKAGE_Python3) unset(FETCHCONTENT_QUIET) endif() From 6596a07081467a51bfd631b6b3417af4459184c1 Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Wed, 18 Dec 2024 00:01:03 +0100 Subject: [PATCH 4/7] Fine tune configuration --- cmake/cmake/modules/FindRE2C.cmake | 36 ++++++++++++++--------------- cmake/cmake/modules/PHP/Stubs.cmake | 2 +- cmake/ext/hash/CMakeLists.txt | 2 +- cmake/ext/session/CMakeLists.txt | 2 +- cmake/ext/standard/CMakeLists.txt | 1 + cmake/pear/CMakeLists.txt | 2 +- 6 files changed, 23 insertions(+), 22 deletions(-) diff --git a/cmake/cmake/modules/FindRE2C.cmake b/cmake/cmake/modules/FindRE2C.cmake index 6b2bfc981..4a862da54 100644 --- a/cmake/cmake/modules/FindRE2C.cmake +++ b/cmake/cmake/modules/FindRE2C.cmake @@ -142,33 +142,33 @@ if(RE2C_ENABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid)) # Set the re2c version to download. set(RE2C_VERSION 4.0.2) - # Configure re2c. - set(RE2C_BUILD_RE2D OFF CACHE INTERNAL "") - set(RE2C_BUILD_RE2GO OFF CACHE INTERNAL "") - set(RE2C_BUILD_RE2HS OFF CACHE INTERNAL "") - set(RE2C_BUILD_RE2JAVA OFF CACHE INTERNAL "") - set(RE2C_BUILD_RE2JS OFF CACHE INTERNAL "") - set(RE2C_BUILD_RE2OCAML OFF CACHE INTERNAL "") - set(RE2C_BUILD_RE2PY OFF CACHE INTERNAL "") - set(RE2C_BUILD_RE2RUST OFF CACHE INTERNAL "") - set(RE2C_BUILD_RE2V OFF CACHE INTERNAL "") - set(RE2C_BUILD_RE2ZIG OFF CACHE INTERNAL "") - - set(FETCHCONTENT_QUIET FALSE) + # Configure minimal re2c build. In older CMake versions, defined by the + # upstream project, only cache variables were possible to use. In recent CMake + # versions, also local variables would work. However, here the cache variables + # enable customization if needed by this module. + set(RE2C_BUILD_RE2D OFF CACHE BOOL "") + set(RE2C_BUILD_RE2GO OFF CACHE BOOL "") + set(RE2C_BUILD_RE2HS OFF CACHE BOOL "") + set(RE2C_BUILD_RE2JAVA OFF CACHE BOOL "") + set(RE2C_BUILD_RE2JS OFF CACHE BOOL "") + set(RE2C_BUILD_RE2OCAML OFF CACHE BOOL "") + set(RE2C_BUILD_RE2PY OFF CACHE BOOL "") + set(RE2C_BUILD_RE2RUST OFF CACHE BOOL "") + set(RE2C_BUILD_RE2V OFF CACHE BOOL "") + set(RE2C_BUILD_RE2ZIG OFF CACHE BOOL "") FetchContent_Declare( RE2C URL https://github.com/skvadrik/re2c/archive/refs/tags/${RE2C_VERSION}.tar.gz ) - message(STATUS "Downloading RE2C ${RE2C_VERSION}") + message(STATUS "Downloading and configuring RE2C ${RE2C_VERSION}") + list(APPEND CMAKE_MESSAGE_INDENT " ") FetchContent_MakeAvailable(RE2C) + list(POP_BACK CMAKE_MESSAGE_INDENT) # Set executable to re2c target name. - set(RE2C_EXECUTABLE re2c) - - # Unset temporary variables. - unset(FETCHCONTENT_QUIET) + set_property(CACHE RE2C_EXECUTABLE PROPERTY VALUE re2c) endif() mark_as_advanced(RE2C_EXECUTABLE) diff --git a/cmake/cmake/modules/PHP/Stubs.cmake b/cmake/cmake/modules/PHP/Stubs.cmake index ec6cd0d04..a39cee83f 100644 --- a/cmake/cmake/modules/PHP/Stubs.cmake +++ b/cmake/cmake/modules/PHP/Stubs.cmake @@ -16,7 +16,7 @@ function(_php_stubs_get_php_command result) # tokenizer extension. if( NOT PHPSystem_EXECUTABLE - AND (NOT SAPI_CLI OR (SAPI_CLI AND NOT EXT_TOKENIZER)) + AND (NOT TARGET PHP::SAPI::cli OR (TARGET PHP::SAPI::cli AND NOT EXT_TOKENIZER)) ) return(PROPAGATE ${result}) endif() diff --git a/cmake/ext/hash/CMakeLists.txt b/cmake/ext/hash/CMakeLists.txt index 601955ffd..5f26e34b4 100644 --- a/cmake/ext/hash/CMakeLists.txt +++ b/cmake/ext/hash/CMakeLists.txt @@ -34,7 +34,7 @@ option( EXT_HASH_MHASH "Enable the mhash emulation support (deprecated as of PHP 8.1)" ) - +mark_as_advanced(EXT_HASH_MHASH) add_feature_info( "ext/hash mhash" EXT_HASH_MHASH diff --git a/cmake/ext/session/CMakeLists.txt b/cmake/ext/session/CMakeLists.txt index 23dc72f51..486d03eff 100644 --- a/cmake/ext/session/CMakeLists.txt +++ b/cmake/ext/session/CMakeLists.txt @@ -59,7 +59,7 @@ cmake_dependent_option( "EXT_SESSION;NOT PHP_THREAD_SAFETY" OFF ) - +mark_as_advanced(EXT_SESSION_MM) add_feature_info( "ext/session mm" EXT_SESSION_MM diff --git a/cmake/ext/standard/CMakeLists.txt b/cmake/ext/standard/CMakeLists.txt index f39d9cfb9..ddad282e1 100644 --- a/cmake/ext/standard/CMakeLists.txt +++ b/cmake/ext/standard/CMakeLists.txt @@ -52,6 +52,7 @@ option( EXT_STANDARD_CRYPT_EXTERNAL "Use external libcrypt/libxcrypt library instead of the bundled PHP crypt" ) +mark_as_advanced(EXT_STANDARD_CRYPT_EXTERNAL) add_feature_info( "ext/standard crypt external" EXT_STANDARD_CRYPT_EXTERNAL diff --git a/cmake/pear/CMakeLists.txt b/cmake/pear/CMakeLists.txt index 694617fc9..05d47c195 100644 --- a/cmake/pear/CMakeLists.txt +++ b/cmake/pear/CMakeLists.txt @@ -97,7 +97,7 @@ message( # Check PEAR dependencies. block() - if(NOT SAPI_CLI) + if(NOT TARGET PHP::SAPI::cli) message( FATAL_ERROR "The 'PHP_PEAR' option requires PHP CLI SAPI. Please, set 'SAPI_CLI' to " From 65540730a35f860f1a942593061f56c326ab9479 Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Wed, 18 Dec 2024 00:30:41 +0100 Subject: [PATCH 5/7] Add full re2c configuration --- cmake/cmake/modules/FindRE2C.cmake | 37 +++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/cmake/cmake/modules/FindRE2C.cmake b/cmake/cmake/modules/FindRE2C.cmake index 4a862da54..e07886053 100644 --- a/cmake/cmake/modules/FindRE2C.cmake +++ b/cmake/cmake/modules/FindRE2C.cmake @@ -145,17 +145,32 @@ if(RE2C_ENABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid)) # Configure minimal re2c build. In older CMake versions, defined by the # upstream project, only cache variables were possible to use. In recent CMake # versions, also local variables would work. However, here the cache variables - # enable customization if needed by this module. - set(RE2C_BUILD_RE2D OFF CACHE BOOL "") - set(RE2C_BUILD_RE2GO OFF CACHE BOOL "") - set(RE2C_BUILD_RE2HS OFF CACHE BOOL "") - set(RE2C_BUILD_RE2JAVA OFF CACHE BOOL "") - set(RE2C_BUILD_RE2JS OFF CACHE BOOL "") - set(RE2C_BUILD_RE2OCAML OFF CACHE BOOL "") - set(RE2C_BUILD_RE2PY OFF CACHE BOOL "") - set(RE2C_BUILD_RE2RUST OFF CACHE BOOL "") - set(RE2C_BUILD_RE2V OFF CACHE BOOL "") - set(RE2C_BUILD_RE2ZIG OFF CACHE BOOL "") + # can provide customization if needed by this module in the future to enable + # other re2c executables. + foreach( + var IN ITEMS + RE2C_BUILD_BENCHMARKS + RE2C_BUILD_LIBS + RE2C_BUILD_RE2D + RE2C_BUILD_RE2GO + RE2C_BUILD_RE2HS + RE2C_BUILD_RE2JAVA + RE2C_BUILD_RE2JS + RE2C_BUILD_RE2OCAML + RE2C_BUILD_RE2PY + RE2C_BUILD_RE2RUST + RE2C_BUILD_RE2V + RE2C_BUILD_RE2ZIG + RE2C_BUILD_TESTS + RE2C_REBUILD_DOCS + RE2C_REBUILD_LEXERS + RE2C_REBUILD_PARSERS + RE2C_REBUILD_SYNTAX + RE2C_REGEN_BENCHMARKS + ) + set(${var} OFF CACHE BOOL "") + mark_as_advanced(${var}) + endforeach() FetchContent_Declare( RE2C From f7d6d01d8593925078d315ee3db95f6a3366b9ef Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Wed, 18 Dec 2024 01:27:10 +0100 Subject: [PATCH 6/7] Use ExternalProject instead of FetchContent This simplifies cache variables and configuration handling. --- cmake/cmake/Requirements.cmake | 1 - cmake/cmake/modules/FindRE2C.cmake | 86 +++++++++++++----------------- 2 files changed, 38 insertions(+), 49 deletions(-) diff --git a/cmake/cmake/Requirements.cmake b/cmake/cmake/Requirements.cmake index 1bb316b4e..741baad1e 100644 --- a/cmake/cmake/Requirements.cmake +++ b/cmake/cmake/Requirements.cmake @@ -99,7 +99,6 @@ if( set(RE2C_USE_COMPUTED_GOTOS TRUE) endif() - set(RE2C_ENABLE_DOWNLOAD TRUE) set( RE2C_DEFAULT_OPTIONS --no-generation-date # Suppress date output in the generated file. diff --git a/cmake/cmake/modules/FindRE2C.cmake b/cmake/cmake/modules/FindRE2C.cmake index e07886053..3850fa3de 100644 --- a/cmake/cmake/modules/FindRE2C.cmake +++ b/cmake/cmake/modules/FindRE2C.cmake @@ -36,10 +36,10 @@ Custom target: `find_package(RE2C)`. Options are prepended to additional options passed with `re2c_target()` arguments. -* `RE2C_ENABLE_DOWNLOAD` - This module can also download and build re2c from its - Git repository using the `FetchContent` module. Set to `TRUE` to enable - downloading re2c, when not found on the system or system version is not - suitable. +* `RE2C_DISABLE_DOWNLOAD` - This module can also download and build re2c from + its Git repository using the `ExternalProject` module. Set to `TRUE` to + disable downloading re2c, when it is not found on the system or system version + is not suitable. * `RE2C_USE_COMPUTED_GOTOS` - Set to `TRUE` before calling `find_package(RE2C)` to enable the re2c `--computed-gotos` option if the non-standard C @@ -136,63 +136,53 @@ if(RE2C_EXECUTABLE) endif() endif() -if(RE2C_ENABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid)) - include(FetchContent) +set(_RE2C_REQUIRED_VARS RE2C_EXECUTABLE RE2C_VERSION) +if(NOT RE2C_DISABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid)) # Set the re2c version to download. set(RE2C_VERSION 4.0.2) - # Configure minimal re2c build. In older CMake versions, defined by the - # upstream project, only cache variables were possible to use. In recent CMake - # versions, also local variables would work. However, here the cache variables - # can provide customization if needed by this module in the future to enable - # other re2c executables. - foreach( - var IN ITEMS - RE2C_BUILD_BENCHMARKS - RE2C_BUILD_LIBS - RE2C_BUILD_RE2D - RE2C_BUILD_RE2GO - RE2C_BUILD_RE2HS - RE2C_BUILD_RE2JAVA - RE2C_BUILD_RE2JS - RE2C_BUILD_RE2OCAML - RE2C_BUILD_RE2PY - RE2C_BUILD_RE2RUST - RE2C_BUILD_RE2V - RE2C_BUILD_RE2ZIG - RE2C_BUILD_TESTS - RE2C_REBUILD_DOCS - RE2C_REBUILD_LEXERS - RE2C_REBUILD_PARSERS - RE2C_REBUILD_SYNTAX - RE2C_REGEN_BENCHMARKS + include(ExternalProject) + + ExternalProject_Add( + re2c + URL + https://github.com/skvadrik/re2c/archive/refs/tags/${RE2C_VERSION}.tar.gz + CMAKE_ARGS + -DRE2C_BUILD_RE2D=OFF + -DRE2C_BUILD_RE2D=OFF + -DRE2C_BUILD_RE2GO=OFF + -DRE2C_BUILD_RE2HS=OFF + -DRE2C_BUILD_RE2JAVA=OFF + -DRE2C_BUILD_RE2JS=OFF + -DRE2C_BUILD_RE2OCAML=OFF + -DRE2C_BUILD_RE2PY=OFF + -DRE2C_BUILD_RE2RUST=OFF + -DRE2C_BUILD_RE2V=OFF + -DRE2C_BUILD_RE2ZIG=OFF + -DRE2C_BUILD_TESTS=OFF + INSTALL_COMMAND "" ) - set(${var} OFF CACHE BOOL "") - mark_as_advanced(${var}) - endforeach() - FetchContent_Declare( - RE2C - URL https://github.com/skvadrik/re2c/archive/refs/tags/${RE2C_VERSION}.tar.gz + # Set re2c executable. + ExternalProject_Get_property(re2c BINARY_DIR) + add_executable(RE2C::RE2C IMPORTED) + set_target_properties( + RE2C::RE2C + PROPERTIES IMPORTED_LOCATION ${BINARY_DIR}/re2c ) + add_dependencies(RE2C::RE2C re2c) + set_property(CACHE RE2C_EXECUTABLE PROPERTY VALUE RE2C::RE2C) - message(STATUS "Downloading and configuring RE2C ${RE2C_VERSION}") - list(APPEND CMAKE_MESSAGE_INDENT " ") - FetchContent_MakeAvailable(RE2C) - list(POP_BACK CMAKE_MESSAGE_INDENT) - - # Set executable to re2c target name. - set_property(CACHE RE2C_EXECUTABLE PROPERTY VALUE re2c) + list(PREPEND _RE2C_REQUIRED_VARS _RE2C_MSG) + set(_RE2C_MSG "downloading at build") endif() mark_as_advanced(RE2C_EXECUTABLE) find_package_handle_standard_args( RE2C - REQUIRED_VARS - RE2C_EXECUTABLE - RE2C_VERSION + REQUIRED_VARS ${_RE2C_REQUIRED_VARS} VERSION_VAR RE2C_VERSION HANDLE_VERSION_RANGE REASON_FAILURE_MESSAGE "re2c not found. Please install re2c." @@ -304,7 +294,7 @@ function(re2c_target) ${options} --output ${output} ${input} - DEPENDS ${input} ${parsed_DEPENDS} + DEPENDS ${input} ${parsed_DEPENDS} $ COMMENT "[RE2C][${ARGV0}] Building lexer with re2c ${RE2C_VERSION}" VERBATIM COMMAND_EXPAND_LISTS From 354b34dcbc4131e99920b04a56ef2285e2d5d0a7 Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Wed, 18 Dec 2024 02:23:02 +0100 Subject: [PATCH 7/7] Sync CS in FindRE2C module --- cmake/cmake/modules/FindRE2C.cmake | 33 ++++++++++++++++++------------ 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/cmake/cmake/modules/FindRE2C.cmake b/cmake/cmake/modules/FindRE2C.cmake index 3850fa3de..079f75df2 100644 --- a/cmake/cmake/modules/FindRE2C.cmake +++ b/cmake/cmake/modules/FindRE2C.cmake @@ -103,16 +103,16 @@ if(RE2C_EXECUTABLE) execute_process( COMMAND ${RE2C_EXECUTABLE} --vernum OUTPUT_VARIABLE RE2C_VERSION_NUM - ERROR_VARIABLE _re2c_version_error - RESULT_VARIABLE _re2c_version_result + ERROR_VARIABLE _re2cVersionError + RESULT_VARIABLE _re2cVersionResult OUTPUT_STRIP_TRAILING_WHITESPACE ) - if(NOT _re2c_version_result EQUAL 0) + if(NOT _re2cVersionResult EQUAL 0) message( SEND_ERROR "Command \"${RE2C_EXECUTABLE} --vernum\" failed with output:\n" - "${_re2c_version_error}" + "${_re2cVersionError}" ) elseif(RE2C_VERSION_NUM) math( @@ -127,18 +127,23 @@ if(RE2C_EXECUTABLE) math( EXPR RE2C_VERSION_PATCH - "${RE2C_VERSION_NUM} - ${RE2C_VERSION_MAJOR} * 10000 - ${RE2C_VERSION_MINOR} * 100" + "${RE2C_VERSION_NUM} \ + - ${RE2C_VERSION_MAJOR} * 10000 \ + - ${RE2C_VERSION_MINOR} * 100" ) - set(RE2C_VERSION "${RE2C_VERSION_MAJOR}.${RE2C_VERSION_MINOR}.${RE2C_VERSION_PATCH}") + set( + RE2C_VERSION + "${RE2C_VERSION_MAJOR}.${RE2C_VERSION_MINOR}.${RE2C_VERSION_PATCH}" + ) - find_package_check_version("${RE2C_VERSION}" _re2c_version_valid) + find_package_check_version("${RE2C_VERSION}" _re2cVersionValid) endif() endif() -set(_RE2C_REQUIRED_VARS RE2C_EXECUTABLE RE2C_VERSION) +set(_re2cRequiredVars RE2C_EXECUTABLE RE2C_VERSION) -if(NOT RE2C_DISABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid)) +if(NOT RE2C_DISABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2cVersionValid)) # Set the re2c version to download. set(RE2C_VERSION 4.0.2) @@ -174,21 +179,23 @@ if(NOT RE2C_DISABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid add_dependencies(RE2C::RE2C re2c) set_property(CACHE RE2C_EXECUTABLE PROPERTY VALUE RE2C::RE2C) - list(PREPEND _RE2C_REQUIRED_VARS _RE2C_MSG) - set(_RE2C_MSG "downloading at build") + list(PREPEND _re2cRequiredVars _re2cMsg) + set(_re2cMsg "downloading at build") endif() mark_as_advanced(RE2C_EXECUTABLE) find_package_handle_standard_args( RE2C - REQUIRED_VARS ${_RE2C_REQUIRED_VARS} + REQUIRED_VARS ${_re2cRequiredVars} VERSION_VAR RE2C_VERSION HANDLE_VERSION_RANGE REASON_FAILURE_MESSAGE "re2c not found. Please install re2c." ) -unset(_re2c_version_valid) +unset(_re2cMsg) +unset(_re2cRequiredVars) +unset(_re2cVersionValid) if(NOT RE2C_FOUND) return()