diff options
-rw-r--r-- | .gitlab-ci.yml | 3 | ||||
-rw-r--r-- | Modules/CPackIFW.cmake | 2 | ||||
-rw-r--r-- | Modules/FindPython.cmake | 11 | ||||
-rw-r--r-- | Modules/FindPython/Support.cmake | 39 | ||||
-rw-r--r-- | Modules/FindPython3.cmake | 9 | ||||
-rw-r--r-- | Source/CMakeVersion.cmake | 2 | ||||
-rw-r--r-- | Source/cmLocalGenerator.cxx | 6 | ||||
-rw-r--r-- | Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-NEW-empty.cmake | 4 | ||||
-rw-r--r-- | Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake | 3 |
9 files changed, 57 insertions, 22 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 16c9e25..707756e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -736,6 +736,8 @@ b:macos-x86_64-ninja: - .cmake_build_artifacts - .macos_x86_64_builder_tags - .run_manually + variables: + CMAKE_CI_JOB_CONTINUOUS: "true" b:macos-arm64-ninja: extends: @@ -759,6 +761,7 @@ t:macos-x86_64-ninja: needs: - b:macos-x86_64-ninja variables: + CMAKE_CI_JOB_CONTINUOUS: "true" CMAKE_CI_JOB_NIGHTLY_NINJA: "true" t:macos-arm64-ninja: diff --git a/Modules/CPackIFW.cmake b/Modules/CPackIFW.cmake index efe6999..d4e02f1 100644 --- a/Modules/CPackIFW.cmake +++ b/Modules/CPackIFW.cmake @@ -439,6 +439,8 @@ set(_CPACK_IFW_PREFIXES "QtIFW-") set(_CPACK_IFW_VERSIONS + "4.5.0" + "4.5" "4.4.2" "4.4.1" "4.4.0" diff --git a/Modules/FindPython.cmake b/Modules/FindPython.cmake index d98bc95..3fb56e4 100644 --- a/Modules/FindPython.cmake +++ b/Modules/FindPython.cmake @@ -139,12 +139,11 @@ This module will set the following variables in your project Extension suffix for modules. - Information returned by - ``distutils.sysconfig.get_config_var('SOABI')`` or computed from - ``distutils.sysconfig.get_config_var('EXT_SUFFIX')`` or - ``python-config --extension-suffix``. If package ``distutils.sysconfig`` is - not available, ``sysconfig.get_config_var('SOABI')`` or - ``sysconfig.get_config_var('EXT_SUFFIX')`` are used. + Information computed from ``distutils.sysconfig.get_config_var('EXT_SUFFIX')`` + or ``distutils.sysconfig.get_config_var('SOABI')`` or + ``python3-config --extension-suffix``. If package ``distutils.sysconfig`` is + not available, ``sysconfig.get_config_var('EXT_SUFFIX')`` or + ``sysconfig.get_config_var('SOABI')`` are used. ``Python_Compiler_FOUND`` System has the Python compiler. diff --git a/Modules/FindPython/Support.cmake b/Modules/FindPython/Support.cmake index 7a127e4..9b78220 100644 --- a/Modules/FindPython/Support.cmake +++ b/Modules/FindPython/Support.cmake @@ -508,21 +508,16 @@ function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME) list (REMOVE_DUPLICATES _values) endif() elseif (NAME STREQUAL "SOABI") + # first step: compute SOABI form EXT_SUFFIX config variable execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c - "import sys\ntry:\n from distutils import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_config_var('SOABI') or '',sysconfig.get_config_var('EXT_SUFFIX') or '',sysconfig.get_config_var('SO') or '']))\nexcept Exception:\n import sysconfig;sys.stdout.write(';'.join([sysconfig.get_config_var('SOABI') or '',sysconfig.get_config_var('EXT_SUFFIX') or '',sysconfig.get_config_var('SO') or '']))" + "import sys\ntry:\n from distutils import sysconfig\n sys.stdout.write(sysconfig.get_config_var('EXT_SUFFIX') or '')\nexcept Exception:\n import sysconfig;sys.stdout.write(sysconfig.get_config_var('EXT_SUFFIX') or '')" RESULT_VARIABLE _result - OUTPUT_VARIABLE _soabi + OUTPUT_VARIABLE _values ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) if (_result) unset (_values) else() - foreach (_item IN LISTS _soabi) - if (_item) - set (_values "${_item}") - break() - endif() - endforeach() if (_values) # clean-up: remove prefix character and suffix if (_values MATCHES "^(\\.${CMAKE_SHARED_LIBRARY_SUFFIX}|\\.so|\\.pyd)$") @@ -532,6 +527,34 @@ function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME) endif() endif() endif() + + # second step: use SOABI or SO config variables as fallback + if (NOT _values) + execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c + "import sys\ntry:\n from distutils import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_config_var('SOABI') or '',sysconfig.get_config_var('SO') or '']))\nexcept Exception:\n import sysconfig;sys.stdout.write(';'.join([sysconfig.get_config_var('SOABI') or '',sysconfig.get_config_var('SO') or '']))" + RESULT_VARIABLE _result + OUTPUT_VARIABLE _soabi + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + if (_result) + unset (_values) + else() + foreach (_item IN LISTS _soabi) + if (_item) + set (_values "${_item}") + break() + endif() + endforeach() + if (_values) + # clean-up: remove prefix character and suffix + if (_values MATCHES "^(\\.${CMAKE_SHARED_LIBRARY_SUFFIX}|\\.so|\\.pyd)$") + set(_values "") + else() + string (REGEX REPLACE "^[.-](.+)(${CMAKE_SHARED_LIBRARY_SUFFIX}|\\.(so|pyd))$" "\\1" _values "${_values}") + endif() + endif() + endif() + endif() else() set (config_flag "${NAME}") if (NAME STREQUAL "CONFIGDIR") diff --git a/Modules/FindPython3.cmake b/Modules/FindPython3.cmake index 75b7a34..837300e 100644 --- a/Modules/FindPython3.cmake +++ b/Modules/FindPython3.cmake @@ -140,12 +140,11 @@ This module will set the following variables in your project Extension suffix for modules. - Information returned by - ``distutils.sysconfig.get_config_var('SOABI')`` or computed from - ``distutils.sysconfig.get_config_var('EXT_SUFFIX')`` or + Information computed from ``distutils.sysconfig.get_config_var('EXT_SUFFIX')`` + or ``distutils.sysconfig.get_config_var('SOABI')`` or ``python3-config --extension-suffix``. If package ``distutils.sysconfig`` is - not available, ``sysconfig.get_config_var('SOABI')`` or - ``sysconfig.get_config_var('EXT_SUFFIX')`` are used. + not available, ``sysconfig.get_config_var('EXT_SUFFIX')`` or + ``sysconfig.get_config_var('SOABI')`` are used. ``Python3_Compiler_FOUND`` System has the Python 3 compiler. diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 359576c..81bb358 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,7 +1,7 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 25) -set(CMake_VERSION_PATCH 20221115) +set(CMake_VERSION_PATCH 20221116) #set(CMake_VERSION_RC 0) set(CMake_VERSION_IS_DIRTY 0) diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 31c6504..9745142 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -2677,8 +2677,10 @@ void cmLocalGenerator::AddPchDependencies(cmGeneratorTarget* target) bool editAndContinueDebugInfo = false; bool programDatabaseDebugInfo = false; - if (cm::optional<std::string> msvcDebugInformationFormat = - this->GetMSVCDebugFormatName(config, target)) { + cm::optional<std::string> msvcDebugInformationFormat = + this->GetMSVCDebugFormatName(config, target); + if (msvcDebugInformationFormat && + !msvcDebugInformationFormat->empty()) { editAndContinueDebugInfo = *msvcDebugInformationFormat == "EditAndContinue"; programDatabaseDebugInfo = diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-NEW-empty.cmake b/Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-NEW-empty.cmake new file mode 100644 index 0000000..41c7d22 --- /dev/null +++ b/Tests/RunCMake/PrecompileHeaders/PchReuseFrom-CMP0141-NEW-empty.cmake @@ -0,0 +1,4 @@ +cmake_policy(SET CMP0141 NEW) +set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "") +string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " -Zi") +include(PchReuseFrom-common.cmake) diff --git a/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake b/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake index 687fc0e..b163369 100644 --- a/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake +++ b/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake @@ -17,6 +17,9 @@ run_test(SkipPrecompileHeaders) run_test(CXXnotC) run_test(PchReuseFrom-CMP0141-OLD) run_test(PchReuseFrom-CMP0141-NEW) +if(CMAKE_C_COMPILER_ID STREQUAL "MSVC") + run_test(PchReuseFrom-CMP0141-NEW-empty) +endif() run_test(PchReuseFromPrefixed) run_test(PchReuseFromSubdir) run_cmake(PchMultilanguage) |