diff options
-rw-r--r-- | .gitlab/ci/cxx_modules_rules_msvc.cmake | 2 | ||||
-rw-r--r-- | Help/dev/experimental.rst | 3 | ||||
-rw-r--r-- | Help/release/3.25.rst | 18 | ||||
-rw-r--r-- | Modules/CMakeDetermineRCCompiler.cmake | 15 | ||||
-rw-r--r-- | Modules/Compiler/MSVC-CXX.cmake | 1 | ||||
-rw-r--r-- | Modules/Platform/Android.cmake | 1 | ||||
-rw-r--r-- | Modules/Platform/Windows-GNU.cmake | 3 | ||||
-rw-r--r-- | Modules/Platform/Windows.cmake | 4 |
8 files changed, 31 insertions, 16 deletions
diff --git a/.gitlab/ci/cxx_modules_rules_msvc.cmake b/.gitlab/ci/cxx_modules_rules_msvc.cmake index 2b09b0e..cb327fd 100644 --- a/.gitlab/ci/cxx_modules_rules_msvc.cmake +++ b/.gitlab/ci/cxx_modules_rules_msvc.cmake @@ -1 +1,3 @@ set(CMake_TEST_CXXModules_UUID "a246741c-d067-4019-a8fb-3d16b0c9d1d3") + +set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) diff --git a/Help/dev/experimental.rst b/Help/dev/experimental.rst index 78770f7..03eb076 100644 --- a/Help/dev/experimental.rst +++ b/Help/dev/experimental.rst @@ -41,7 +41,8 @@ to tell CMake how to invoke the C++20 module dependency scanning tool. MSVC 19.34 (provided with Visual Studio 17.4) and above contains the support that CMake needs and has these variables already set up as required and only -the UUID variable needs to be set. +the UUID and the ``CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP`` variables need to be +set. For example, add code like the following to a test project: diff --git a/Help/release/3.25.rst b/Help/release/3.25.rst index 7d0cf0a..fdf8a94 100644 --- a/Help/release/3.25.rst +++ b/Help/release/3.25.rst @@ -223,11 +223,6 @@ Deprecated and Removed Features Other Changes ============= -* On Windows, when targeting the MSVC ABI, the :command:`find_library` command - now accepts ``.a`` file names after first considering ``.lib``. This is - symmetric with existing behavior when targeting the GNU ABI, in which the - command accepts ``.lib`` file names after first considering ``.a``. - * The :envvar:`SSL_CERT_FILE` and :envvar:`SSL_CERT_DIR` environment variables can now be used to override where to find certificate authorities for TLS/SSL operations. @@ -238,3 +233,16 @@ Other Changes * The :generator:`Xcode` generator no longer adds the per-config suffix ``$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)`` to library search paths. See policy :policy:`CMP0142`. + +Updates +======= + +Changes made since CMake 3.25.0 include the following. + +3.25.1 +------ + +* On Windows, when targeting the MSVC ABI, the :command:`find_library` + command no longer accepts ``.a`` file names. This behavior was added + in CMake 3.25.0, but has been reverted due finding GNU-ABI libraries + in cases we did not previously. diff --git a/Modules/CMakeDetermineRCCompiler.cmake b/Modules/CMakeDetermineRCCompiler.cmake index f8d55a5..d22741b 100644 --- a/Modules/CMakeDetermineRCCompiler.cmake +++ b/Modules/CMakeDetermineRCCompiler.cmake @@ -30,16 +30,19 @@ if(NOT CMAKE_RC_COMPILER) # finally list compilers to try if(CMAKE_RC_COMPILER_INIT) - set(CMAKE_RC_COMPILER_LIST ${CMAKE_RC_COMPILER_INIT}) - else() - set(CMAKE_RC_COMPILER_LIST rc) + set(_CMAKE_RC_COMPILER_LIST ${CMAKE_RC_COMPILER_INIT}) + set(_CMAKE_RC_COMPILER_FALLBACK ${CMAKE_RC_COMPILER_INIT}) + elseif(NOT _CMAKE_RC_COMPILER_LIST) + set(_CMAKE_RC_COMPILER_LIST rc) endif() # Find the compiler. - find_program(CMAKE_RC_COMPILER NAMES ${CMAKE_RC_COMPILER_LIST} DOC "RC compiler") - if(CMAKE_RC_COMPILER_INIT AND NOT CMAKE_RC_COMPILER) - set(CMAKE_RC_COMPILER "${CMAKE_RC_COMPILER_INIT}" CACHE FILEPATH "RC compiler" FORCE) + find_program(CMAKE_RC_COMPILER NAMES ${_CMAKE_RC_COMPILER_LIST} DOC "RC compiler") + if(_CMAKE_RC_COMPILER_FALLBACK AND NOT CMAKE_RC_COMPILER) + set(CMAKE_RC_COMPILER "${_CMAKE_RC_COMPILER_FALLBACK}" CACHE FILEPATH "RC compiler" FORCE) endif() + unset(_CMAKE_RC_COMPILER_FALLBACK) + unset(_CMAKE_RC_COMPILER_LIST) endif() mark_as_advanced(CMAKE_RC_COMPILER) diff --git a/Modules/Compiler/MSVC-CXX.cmake b/Modules/Compiler/MSVC-CXX.cmake index 212f6d1..10a9073 100644 --- a/Modules/Compiler/MSVC-CXX.cmake +++ b/Modules/Compiler/MSVC-CXX.cmake @@ -79,7 +79,6 @@ elseif (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0) endif() if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "19.34") - set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) string(CONCAT CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> <SOURCE> -nologo -TP" " -showIncludes" diff --git a/Modules/Platform/Android.cmake b/Modules/Platform/Android.cmake index 09a12cc..d0f686c 100644 --- a/Modules/Platform/Android.cmake +++ b/Modules/Platform/Android.cmake @@ -5,6 +5,7 @@ if(CMAKE_ANDROID_NDK) endif() include(Platform/Linux) +unset(LINUX) set(ANDROID 1) diff --git a/Modules/Platform/Windows-GNU.cmake b/Modules/Platform/Windows-GNU.cmake index bf96e63..088b238 100644 --- a/Modules/Platform/Windows-GNU.cmake +++ b/Modules/Platform/Windows-GNU.cmake @@ -157,7 +157,8 @@ macro(__windows_compiler_gnu lang) endif() if(NOT CMAKE_RC_COMPILER_INIT AND NOT CMAKE_GENERATOR_RC) - set(CMAKE_RC_COMPILER_INIT ${_CMAKE_TOOLCHAIN_PREFIX}windres windres) + set(_CMAKE_RC_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}windres windres) + set(_CMAKE_RC_COMPILER_FALLBACK windres) endif() enable_language(RC) diff --git a/Modules/Platform/Windows.cmake b/Modules/Platform/Windows.cmake index 5263161..d8b3957 100644 --- a/Modules/Platform/Windows.cmake +++ b/Modules/Platform/Windows.cmake @@ -19,8 +19,8 @@ set(CMAKE_LINK_LIBRARY_SUFFIX ".lib") set(CMAKE_DL_LIBS "") set(CMAKE_EXTRA_LINK_EXTENSIONS ".targets") -set(CMAKE_FIND_LIBRARY_PREFIXES "" "lib") -set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".a") +set(CMAKE_FIND_LIBRARY_PREFIXES "") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib") # for borland make long command lines are redirected to a file # with the following syntax, see Windows-bcc32.cmake for use |