summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Help/command/try_compile.rst7
-rw-r--r--Help/generator/Xcode.rst10
-rw-r--r--Help/manual/cmake-properties.7.rst18
-rw-r--r--Help/manual/cmake-variables.7.rst44
-rw-r--r--Help/manual/cmake.1.rst2
-rw-r--r--Help/policy/CMP0140.rst2
-rw-r--r--Help/policy/CMP0141.rst2
-rw-r--r--Help/prop_tgt/COMPILE_WARNING_AS_ERROR.rst4
-rw-r--r--Help/prop_tgt/CXX_MODULE_DIRS.rst2
-rw-r--r--Help/prop_tgt/CXX_MODULE_DIRS_NAME.rst2
-rw-r--r--Help/prop_tgt/CXX_MODULE_HEADER_UNIT_DIRS.rst6
-rw-r--r--Help/prop_tgt/CXX_MODULE_HEADER_UNIT_DIRS_NAME.rst2
-rw-r--r--Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SET.rst2
-rw-r--r--Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SETS.rst2
-rw-r--r--Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SET_NAME.rst2
-rw-r--r--Help/prop_tgt/CXX_MODULE_SET.rst2
-rw-r--r--Help/prop_tgt/CXX_MODULE_SETS.rst6
-rw-r--r--Help/prop_tgt/CXX_MODULE_SET_NAME.rst2
-rw-r--r--Help/prop_tgt/EXPORT_NO_SYSTEM.rst6
-rw-r--r--Help/prop_tgt/INTERFACE_CXX_MODULE_HEADER_UNIT_SETS.rst2
-rw-r--r--Help/prop_tgt/INTERFACE_CXX_MODULE_SETS.rst2
-rw-r--r--Help/prop_tgt/LANG_CLANG_TIDY.rst2
-rw-r--r--Help/prop_tgt/MSVC_DEBUG_INFORMATION_FORMAT-VALUES.txt4
-rw-r--r--Help/prop_tgt/MSVC_DEBUG_INFORMATION_FORMAT.rst2
-rw-r--r--Help/release/3.25.rst237
-rw-r--r--Help/release/dev/BSD.rst8
-rw-r--r--Help/release/dev/E-capabilities-tls.rst5
-rw-r--r--Help/release/dev/FindOpenSP-module.rst4
-rw-r--r--Help/release/dev/FindVulkan-dxc.rst5
-rw-r--r--Help/release/dev/LINUX.rst6
-rw-r--r--Help/release/dev/MsvcDebugInformationFormatAbstraction.rst7
-rw-r--r--Help/release/dev/UseSWIG-perl-extra-files.rst5
-rw-r--r--Help/release/dev/add_tasking_compiler.rst8
-rw-r--r--Help/release/dev/block-command.rst5
-rw-r--r--Help/release/dev/clang-tidy-prefer-p-option.rst5
-rw-r--r--Help/release/dev/cmake-E-env-modify.rst5
-rw-r--r--Help/release/dev/cmake-presets-package.rst5
-rw-r--r--Help/release/dev/cmake-presets-workflow.rst4
-rw-r--r--Help/release/dev/cmake_language_GET_MESSAGE_LOG_LEVEL.rst6
-rw-r--r--Help/release/dev/compiler-launcher-genexp.rst5
-rw-r--r--Help/release/dev/cpack-archive-custom-extension.rst6
-rw-r--r--Help/release/dev/cpack-nsis-arguments-command-line.rst7
-rw-r--r--Help/release/dev/cpack-reuse-cmake-tools.rst7
-rw-r--r--Help/release/dev/cuda-device-lto.rst7
-rw-r--r--Help/release/dev/cxx_std_26.rst8
-rw-r--r--Help/release/dev/detect-lib_foo.a-msvc.rst7
-rw-r--r--Help/release/dev/env-tls-certs.rst6
-rw-r--r--Help/release/dev/find-cuda-toolkit-nvtx3.rst8
-rw-r--r--Help/release/dev/find_item-VALIDATOR.rst6
-rw-r--r--Help/release/dev/find_package-one-more-path.rst6
-rw-r--r--Help/release/dev/finddoxygen-better-version-checking.rst11
-rw-r--r--Help/release/dev/findopenal-add-import-library.rst4
-rw-r--r--Help/release/dev/findvulkan-volk.rst5
-rw-r--r--Help/release/dev/genex-LINK_LIBRARY-FRAMEWORK-supports-suffix.rst5
-rw-r--r--Help/release/dev/p1689r5.rst6
-rw-r--r--Help/release/dev/remove-vs10-generator.rst4
-rw-r--r--Help/release/dev/return-PROPAGATE.rst5
-rw-r--r--Help/release/dev/system.rst25
-rw-r--r--Help/release/dev/try_compile-no_cache.rst5
-rw-r--r--Help/release/dev/try_compile-signatures.rst11
-rw-r--r--Help/release/dev/try_run_split_output.rst6
-rw-r--r--Help/release/dev/vs11-deprecate.rst5
-rw-r--r--Help/release/dev/xcode-gpu-validation.rst12
-rw-r--r--Help/release/dev/xcode-launch-mode.rst12
-rw-r--r--Help/release/dev/xcode-lib-dirs.rst6
-rw-r--r--Help/release/index.rst1
-rw-r--r--Help/variable/CMAKE_LANG_COMPILER_ID.rst2
-rw-r--r--Help/variable/CMAKE_TASKING_TOOLSET.rst2
-rw-r--r--Modules/CMakeDetermineHIPCompiler.cmake1
-rw-r--r--Modules/CMakeHIPInformation.cmake2
-rw-r--r--Modules/CPackIFW.cmake42
-rw-r--r--Modules/CUDA/architectures.cmake6
-rw-r--r--Modules/Compiler/Intel.cmake14
-rw-r--r--Modules/Compiler/IntelLLVM.cmake12
-rw-r--r--Modules/Compiler/LLVMFlang-Fortran.cmake2
-rw-r--r--Modules/Compiler/NVHPC.cmake2
-rw-r--r--Modules/Compiler/NVIDIA-CUDA.cmake2
-rw-r--r--Modules/FindOpenSP.cmake4
-rw-r--r--Modules/Internal/CPack/NSIS.template.in19
-rw-r--r--Modules/Platform/Windows-Clang-HIP.cmake19
-rw-r--r--Modules/Platform/Windows-Clang.cmake45
-rw-r--r--Source/CMakeVersion.cmake4
-rw-r--r--Source/CTest/cmCTestMemCheckHandler.cxx21
-rw-r--r--Source/cmGeneratorTarget.cxx6
-rw-r--r--Source/cmLocalGenerator.cxx10
-rw-r--r--Tests/CheckSourceTree/CMakeLists.txt6
-rw-r--r--Tests/Fortran/CMakeLists.txt2
-rw-r--r--Tests/FortranC/CMakeLists.txt2
-rw-r--r--Tests/RunCMake/ParseImplicitData/linux-Fortran-LLVMFlang-15.0.0.input43
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-LLVMFlang-15.0.0.output2
-rw-r--r--Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake2
-rw-r--r--Tests/RunCMake/ctest_memcheck/testCudaSanitizer.cmake9
-rw-r--r--Tests/RunCMake/install/DIRECTORY-symlink-clobber-all-stdout.txt2
-rw-r--r--Utilities/Sphinx/cmake.py18
95 files changed, 552 insertions, 396 deletions
diff --git a/Help/command/try_compile.rst b/Help/command/try_compile.rst
index b5fad77..3a6b26a 100644
--- a/Help/command/try_compile.rst
+++ b/Help/command/try_compile.rst
@@ -315,8 +315,9 @@ a build configuration.
the generated project (unless overridden by an explicit option).
.. versionchanged:: 3.14
- For the :generator:`Green Hills MULTI` generator the GHS toolset and target
- system customization cache variables are also propagated into the test project.
+ For the :generator:`Green Hills MULTI` generator, the GHS toolset and target
+ system customization cache variables are also propagated into the test
+ project.
.. versionadded:: 3.24
The :variable:`CMAKE_TRY_COMPILE_NO_PLATFORM_VARIABLES` variable may be
@@ -324,5 +325,5 @@ a build configuration.
.. versionadded:: 3.25
If :policy:`CMP0141` is set to ``NEW``, one can use
- :variable:`CMAKE_MSVC_DEBUG_INFORMATION_FORMAT` to specify MSVC debug
+ :variable:`CMAKE_MSVC_DEBUG_INFORMATION_FORMAT` to specify the MSVC debug
information format.
diff --git a/Help/generator/Xcode.rst b/Help/generator/Xcode.rst
index fc7eea1..a66f483 100644
--- a/Help/generator/Xcode.rst
+++ b/Help/generator/Xcode.rst
@@ -44,3 +44,13 @@ Swift Support
When using the :generator:`Xcode` generator with Xcode 6.1 or higher,
one may enable the ``Swift`` language with the :command:`enable_language`
command or the :command:`project`.
+
+Limitations
+^^^^^^^^^^^
+
+The Xcode generator does not support per-configuration sources.
+Code like the following will result in a generation error:
+
+.. code-block:: cmake
+
+ add_executable(MyApp mymain-$<CONFIG>.cpp)
diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst
index ac89687..b17be82 100644
--- a/Help/manual/cmake-properties.7.rst
+++ b/Help/manual/cmake-properties.7.rst
@@ -187,14 +187,14 @@ Properties on Targets
/prop_tgt/CXX_EXTENSIONS
/prop_tgt/CXX_MODULE_DIRS
/prop_tgt/CXX_MODULE_DIRS_NAME
- /prop_tgt/CXX_MODULE_SET
- /prop_tgt/CXX_MODULE_SET_NAME
- /prop_tgt/CXX_MODULE_SETS
/prop_tgt/CXX_MODULE_HEADER_UNIT_DIRS
/prop_tgt/CXX_MODULE_HEADER_UNIT_DIRS_NAME
/prop_tgt/CXX_MODULE_HEADER_UNIT_SET
/prop_tgt/CXX_MODULE_HEADER_UNIT_SET_NAME
/prop_tgt/CXX_MODULE_HEADER_UNIT_SETS
+ /prop_tgt/CXX_MODULE_SET
+ /prop_tgt/CXX_MODULE_SET_NAME
+ /prop_tgt/CXX_MODULE_SETS
/prop_tgt/CXX_STANDARD
/prop_tgt/CXX_STANDARD_REQUIRED
/prop_tgt/DEBUG_POSTFIX
@@ -274,8 +274,8 @@ Properties on Targets
/prop_tgt/INTERFACE_COMPILE_DEFINITIONS
/prop_tgt/INTERFACE_COMPILE_FEATURES
/prop_tgt/INTERFACE_COMPILE_OPTIONS
- /prop_tgt/INTERFACE_CXX_MODULE_SETS
/prop_tgt/INTERFACE_CXX_MODULE_HEADER_UNIT_SETS
+ /prop_tgt/INTERFACE_CXX_MODULE_SETS
/prop_tgt/INTERFACE_HEADER_SETS
/prop_tgt/INTERFACE_HEADER_SETS_TO_VERIFY
/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES
@@ -357,8 +357,8 @@ Properties on Targets
/prop_tgt/OSX_ARCHITECTURES_CONFIG
/prop_tgt/OUTPUT_NAME
/prop_tgt/OUTPUT_NAME_CONFIG
- /prop_tgt/PCH_WARN_INVALID
/prop_tgt/PCH_INSTANTIATE_TEMPLATES
+ /prop_tgt/PCH_WARN_INVALID
/prop_tgt/PDB_NAME
/prop_tgt/PDB_NAME_CONFIG
/prop_tgt/PDB_OUTPUT_DIRECTORY
@@ -460,13 +460,16 @@ Properties on Targets
/prop_tgt/XCODE_SCHEME_ARGUMENTS
/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT
/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING
- /prop_tgt/XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE
/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
+ /prop_tgt/XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
+ /prop_tgt/XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE
+ /prop_tgt/XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
/prop_tgt/XCODE_SCHEME_ENVIRONMENT
/prop_tgt/XCODE_SCHEME_EXECUTABLE
/prop_tgt/XCODE_SCHEME_GUARD_MALLOC
+ /prop_tgt/XCODE_SCHEME_LAUNCH_CONFIGURATION
/prop_tgt/XCODE_SCHEME_LAUNCH_MODE
/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES
@@ -476,9 +479,6 @@ Properties on Targets
/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP
/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
- /prop_tgt/XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
- /prop_tgt/XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
- /prop_tgt/XCODE_SCHEME_LAUNCH_CONFIGURATION
/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY
/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS
/prop_tgt/XCODE_XCCONFIG
diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst
index 02efc9c..cd46615 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -128,9 +128,9 @@ Variables that Provide Information
/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR
/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE
/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION
- /variable/CMAKE_VS_TARGET_FRAMEWORK_VERSION
/variable/CMAKE_VS_TARGET_FRAMEWORK_IDENTIFIER
/variable/CMAKE_VS_TARGET_FRAMEWORK_TARGETS_VERSION
+ /variable/CMAKE_VS_TARGET_FRAMEWORK_VERSION
/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION
/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM
/variable/CMAKE_XCODE_BUILD_SYSTEM
@@ -207,9 +207,9 @@ Variables that Change Behavior
/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH
- /variable/CMAKE_FIND_USE_INSTALL_PREFIX
/variable/CMAKE_FIND_USE_CMAKE_PATH
/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH
+ /variable/CMAKE_FIND_USE_INSTALL_PREFIX
/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY
/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH
/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH
@@ -228,12 +228,12 @@ Variables that Change Behavior
/variable/CMAKE_LIBRARY_PATH
/variable/CMAKE_LINK_DIRECTORIES_BEFORE
/variable/CMAKE_LINK_LIBRARIES_ONLY_TARGETS
- /variable/CMAKE_MFC_FLAG
/variable/CMAKE_MAXIMUM_RECURSION_DEPTH
/variable/CMAKE_MESSAGE_CONTEXT
/variable/CMAKE_MESSAGE_CONTEXT_SHOW
/variable/CMAKE_MESSAGE_INDENT
/variable/CMAKE_MESSAGE_LOG_LEVEL
+ /variable/CMAKE_MFC_FLAG
/variable/CMAKE_MODULE_PATH
/variable/CMAKE_POLICY_DEFAULT_CMPNNNN
/variable/CMAKE_POLICY_WARNING_CMPNNNN
@@ -272,12 +272,15 @@ Variables that Change Behavior
/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER
/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING
- /variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE
/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
+ /variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
+ /variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE
+ /variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT
/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC
+ /variable/CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION
/variable/CMAKE_XCODE_SCHEME_LAUNCH_MODE
/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES
@@ -287,9 +290,6 @@ Variables that Change Behavior
/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP
/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
- /variable/CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION
- /variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
- /variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY
/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS
/variable/CMAKE_XCODE_XCCONFIG
@@ -420,19 +420,19 @@ Variables that Control the Build
/variable/CMAKE_DEBUG_POSTFIX
/variable/CMAKE_DEFAULT_BUILD_TYPE
/variable/CMAKE_DEFAULT_CONFIGS
- /variable/CMAKE_DISABLE_PRECOMPILE_HEADERS
/variable/CMAKE_DEPENDS_USE_COMPILER
+ /variable/CMAKE_DISABLE_PRECOMPILE_HEADERS
/variable/CMAKE_ENABLE_EXPORTS
/variable/CMAKE_EXE_LINKER_FLAGS
/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG
/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT
/variable/CMAKE_EXE_LINKER_FLAGS_INIT
/variable/CMAKE_FOLDER
- /variable/CMAKE_FRAMEWORK
- /variable/CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG
/variable/CMAKE_Fortran_FORMAT
/variable/CMAKE_Fortran_MODULE_DIRECTORY
/variable/CMAKE_Fortran_PREPROCESS
+ /variable/CMAKE_FRAMEWORK
+ /variable/CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG
/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE
/variable/CMAKE_GLOBAL_AUTOGEN_TARGET
/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME
@@ -453,14 +453,14 @@ Variables that Control the Build
/variable/CMAKE_LANG_CPPCHECK
/variable/CMAKE_LANG_CPPLINT
/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE
- /variable/CMAKE_LANG_LINK_LIBRARY_USING_FEATURE
- /variable/CMAKE_LANG_LINK_LIBRARY_USING_FEATURE_SUPPORTED
- /variable/CMAKE_LANG_LINKER_LAUNCHER
/variable/CMAKE_LANG_LINK_GROUP_USING_FEATURE
/variable/CMAKE_LANG_LINK_GROUP_USING_FEATURE_SUPPORTED
/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG
/variable/CMAKE_LANG_LINK_LIBRARY_FLAG
+ /variable/CMAKE_LANG_LINK_LIBRARY_USING_FEATURE
+ /variable/CMAKE_LANG_LINK_LIBRARY_USING_FEATURE_SUPPORTED
/variable/CMAKE_LANG_LINK_WHAT_YOU_USE_FLAG
+ /variable/CMAKE_LANG_LINKER_LAUNCHER
/variable/CMAKE_LANG_VISIBILITY_PRESET
/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY
/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG
@@ -483,9 +483,9 @@ Variables that Control the Build
/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG
/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT
/variable/CMAKE_MODULE_LINKER_FLAGS_INIT
- /variable/CMAKE_MSVCIDE_RUN_PATH
/variable/CMAKE_MSVC_DEBUG_INFORMATION_FORMAT
/variable/CMAKE_MSVC_RUNTIME_LIBRARY
+ /variable/CMAKE_MSVCIDE_RUN_PATH
/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX
/variable/CMAKE_NO_BUILTIN_CHRPATH
/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED
@@ -493,8 +493,8 @@ Variables that Control the Build
/variable/CMAKE_OSX_ARCHITECTURES
/variable/CMAKE_OSX_DEPLOYMENT_TARGET
/variable/CMAKE_OSX_SYSROOT
- /variable/CMAKE_PCH_WARN_INVALID
/variable/CMAKE_PCH_INSTANTIATE_TEMPLATES
+ /variable/CMAKE_PCH_WARN_INVALID
/variable/CMAKE_PDB_OUTPUT_DIRECTORY
/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG
/variable/CMAKE_PLATFORM_NO_VERSIONED_SONAME
@@ -548,6 +548,10 @@ Variables for Languages
.. toctree::
:maxdepth: 1
+ /variable/CMAKE_C_COMPILE_FEATURES
+ /variable/CMAKE_C_EXTENSIONS
+ /variable/CMAKE_C_STANDARD
+ /variable/CMAKE_C_STANDARD_REQUIRED
/variable/CMAKE_COMPILER_IS_GNUCC
/variable/CMAKE_COMPILER_IS_GNUCXX
/variable/CMAKE_COMPILER_IS_GNUG77
@@ -562,10 +566,6 @@ Variables for Languages
/variable/CMAKE_CXX_EXTENSIONS
/variable/CMAKE_CXX_STANDARD
/variable/CMAKE_CXX_STANDARD_REQUIRED
- /variable/CMAKE_C_COMPILE_FEATURES
- /variable/CMAKE_C_EXTENSIONS
- /variable/CMAKE_C_STANDARD
- /variable/CMAKE_C_STANDARD_REQUIRED
/variable/CMAKE_Fortran_MODDIR_DEFAULT
/variable/CMAKE_Fortran_MODDIR_FLAG
/variable/CMAKE_Fortran_MODOUT_FLAG
@@ -583,6 +583,7 @@ Variables for Languages
/variable/CMAKE_LANG_ARCHIVE_CREATE
/variable/CMAKE_LANG_ARCHIVE_FINISH
/variable/CMAKE_LANG_BYTE_ORDER
+ /variable/CMAKE_LANG_COMPILE_OBJECT
/variable/CMAKE_LANG_COMPILER
/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN
/variable/CMAKE_LANG_COMPILER_ID
@@ -590,7 +591,6 @@ Variables for Languages
/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND
/variable/CMAKE_LANG_COMPILER_TARGET
/variable/CMAKE_LANG_COMPILER_VERSION
- /variable/CMAKE_LANG_COMPILE_OBJECT
/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY
/variable/CMAKE_LANG_CREATE_SHARED_MODULE
/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY
@@ -663,12 +663,12 @@ Variables for CTest
/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS
/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS
/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE
- /variable/CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION
/variable/CTEST_CUSTOM_MEMCHECK_IGNORE
/variable/CTEST_CUSTOM_POST_MEMCHECK
/variable/CTEST_CUSTOM_POST_TEST
/variable/CTEST_CUSTOM_PRE_MEMCHECK
/variable/CTEST_CUSTOM_PRE_TEST
+ /variable/CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION
/variable/CTEST_CUSTOM_TESTS_IGNORE
/variable/CTEST_CUSTOM_WARNING_EXCEPTION
/variable/CTEST_CUSTOM_WARNING_MATCH
@@ -704,9 +704,9 @@ Variables for CTest
/variable/CTEST_SCP_COMMAND
/variable/CTEST_SCRIPT_DIRECTORY
/variable/CTEST_SITE
+ /variable/CTEST_SOURCE_DIRECTORY
/variable/CTEST_SUBMIT_INACTIVITY_TIMEOUT
/variable/CTEST_SUBMIT_URL
- /variable/CTEST_SOURCE_DIRECTORY
/variable/CTEST_SVN_COMMAND
/variable/CTEST_SVN_OPTIONS
/variable/CTEST_SVN_UPDATE_OPTIONS
diff --git a/Help/manual/cmake.1.rst b/Help/manual/cmake.1.rst
index 879ad0b..9384524 100644
--- a/Help/manual/cmake.1.rst
+++ b/Help/manual/cmake.1.rst
@@ -278,7 +278,7 @@ Options
.. option:: --debug-trycompile
- Do not delete the the files and directories created for
+ Do not delete the files and directories created for
:command:`try_compile` / :command:`try_run` calls.
This is useful in debugging failed checks.
diff --git a/Help/policy/CMP0140.rst b/Help/policy/CMP0140.rst
index 2e2d0c3..dea8989 100644
--- a/Help/policy/CMP0140.rst
+++ b/Help/policy/CMP0140.rst
@@ -7,7 +7,7 @@ The :command:`return` command checks its parameters.
The ``OLD`` behavior for this policy is to ignore any parameters given to the
command.
-The ``NEW`` behavior is to check validity of the parameters.
+The ``NEW`` behavior is to check the validity of the parameters.
This policy was introduced in CMake version 3.25.
CMake version |release| warns when the policy is not set and uses
diff --git a/Help/policy/CMP0141.rst b/Help/policy/CMP0141.rst
index 51fa5fd..970e41d 100644
--- a/Help/policy/CMP0141.rst
+++ b/Help/policy/CMP0141.rst
@@ -44,7 +44,7 @@ The ``OLD`` behavior for this policy is to place MSVC debug information
format flags in the default :variable:`CMAKE_<LANG>_FLAGS_<CONFIG>` cache
entries and ignore the :variable:`CMAKE_MSVC_DEBUG_INFORMATION_FORMAT`
abstraction. The ``NEW`` behavior for this policy is to *not* place MSVC
-debug information format flags flags in the default cache entries and use
+debug information format flags in the default cache entries and use
the abstraction instead.
This policy was introduced in CMake version 3.25. Use the
diff --git a/Help/prop_tgt/COMPILE_WARNING_AS_ERROR.rst b/Help/prop_tgt/COMPILE_WARNING_AS_ERROR.rst
index 684b9dd..0d2b295 100644
--- a/Help/prop_tgt/COMPILE_WARNING_AS_ERROR.rst
+++ b/Help/prop_tgt/COMPILE_WARNING_AS_ERROR.rst
@@ -26,10 +26,12 @@ implemented :variable:`compiler IDs <CMAKE_<LANG>_COMPILER_ID>` are:
* ``NVIDIA`` (CUDA)
* ``QCC``
* ``SunPro``
+* ``Tasking``
* ``TI``
* ``VisualAge``
* ``XL``
* ``XLClang``
This property is initialized by the value of the variable
-:variable:`CMAKE_COMPILE_WARNING_AS_ERROR` if it is set when a target is created.
+:variable:`CMAKE_COMPILE_WARNING_AS_ERROR` if it is set when a target is
+created.
diff --git a/Help/prop_tgt/CXX_MODULE_DIRS.rst b/Help/prop_tgt/CXX_MODULE_DIRS.rst
index fdf3831..a32b5b1 100644
--- a/Help/prop_tgt/CXX_MODULE_DIRS.rst
+++ b/Help/prop_tgt/CXX_MODULE_DIRS.rst
@@ -1,6 +1,8 @@
CXX_MODULE_DIRS
---------------
+.. versionadded:: 3.25
+
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
diff --git a/Help/prop_tgt/CXX_MODULE_DIRS_NAME.rst b/Help/prop_tgt/CXX_MODULE_DIRS_NAME.rst
index 8c27d45..9190991 100644
--- a/Help/prop_tgt/CXX_MODULE_DIRS_NAME.rst
+++ b/Help/prop_tgt/CXX_MODULE_DIRS_NAME.rst
@@ -1,6 +1,8 @@
CXX_MODULE_DIRS_<NAME>
----------------------
+.. versionadded:: 3.25
+
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
diff --git a/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_DIRS.rst b/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_DIRS.rst
index 17e5cf0..5f33111 100644
--- a/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_DIRS.rst
+++ b/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_DIRS.rst
@@ -1,6 +1,8 @@
CXX_MODULE_HEADER_UNIT_DIRS
---------------------------
+.. versionadded:: 3.25
+
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
@@ -13,5 +15,5 @@ module header set (i.e. the file set with name and type
This property is normally only set by :command:`target_sources(FILE_SET)`
rather than being manipulated directly.
-See :prop_tgt:`CXX_MODULE_HEADER_UNIT_DIRS_<NAME>` for the list of base directories
-in other C++ module header sets.
+See :prop_tgt:`CXX_MODULE_HEADER_UNIT_DIRS_<NAME>` for the list of base
+directories in other C++ module header sets.
diff --git a/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_DIRS_NAME.rst b/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_DIRS_NAME.rst
index ca30f23..b6163da 100644
--- a/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_DIRS_NAME.rst
+++ b/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_DIRS_NAME.rst
@@ -1,6 +1,8 @@
CXX_MODULE_HEADER_UNIT_DIRS_<NAME>
----------------------------------
+.. versionadded:: 3.25
+
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
diff --git a/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SET.rst b/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SET.rst
index f67a848..3b1bd04 100644
--- a/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SET.rst
+++ b/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SET.rst
@@ -1,6 +1,8 @@
CXX_MODULE_HEADER_UNIT_SET
--------------------------
+.. versionadded:: 3.25
+
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
diff --git a/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SETS.rst b/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SETS.rst
index 7b4bd3f..ffc2daf 100644
--- a/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SETS.rst
+++ b/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SETS.rst
@@ -1,6 +1,8 @@
CXX_MODULE_HEADER_UNIT_SETS
---------------------------
+.. versionadded:: 3.25
+
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
diff --git a/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SET_NAME.rst b/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SET_NAME.rst
index d328950..4bf5069 100644
--- a/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SET_NAME.rst
+++ b/Help/prop_tgt/CXX_MODULE_HEADER_UNIT_SET_NAME.rst
@@ -1,6 +1,8 @@
CXX_MODULE_HEADER_UNIT_SET_<NAME>
---------------------------------
+.. versionadded:: 3.25
+
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
diff --git a/Help/prop_tgt/CXX_MODULE_SET.rst b/Help/prop_tgt/CXX_MODULE_SET.rst
index ae9000e..f5cd8b2 100644
--- a/Help/prop_tgt/CXX_MODULE_SET.rst
+++ b/Help/prop_tgt/CXX_MODULE_SET.rst
@@ -1,6 +1,8 @@
CXX_MODULE_SET
--------------
+.. versionadded:: 3.25
+
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
diff --git a/Help/prop_tgt/CXX_MODULE_SETS.rst b/Help/prop_tgt/CXX_MODULE_SETS.rst
index c03df39..0e8945a 100644
--- a/Help/prop_tgt/CXX_MODULE_SETS.rst
+++ b/Help/prop_tgt/CXX_MODULE_SETS.rst
@@ -1,13 +1,15 @@
CXX_MODULE_SETS
---------------
+.. versionadded:: 3.25
+
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
Read-only list of the target's ``PRIVATE`` and ``PUBLIC`` C++ module sets (i.e.
-all file sets with the type ``CXX_MODULES``). Files listed in these file sets are
-treated as source files for the purpose of IDE integration.
+all file sets with the type ``CXX_MODULES``). Files listed in these file sets
+are treated as source files for the purpose of IDE integration.
C++ module sets may be defined using the :command:`target_sources` command
``FILE_SET`` option with type ``CXX_MODULES``.
diff --git a/Help/prop_tgt/CXX_MODULE_SET_NAME.rst b/Help/prop_tgt/CXX_MODULE_SET_NAME.rst
index 27c88f3..5674c99 100644
--- a/Help/prop_tgt/CXX_MODULE_SET_NAME.rst
+++ b/Help/prop_tgt/CXX_MODULE_SET_NAME.rst
@@ -1,6 +1,8 @@
CXX_MODULE_SET_<NAME>
---------------------
+.. versionadded:: 3.25
+
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
diff --git a/Help/prop_tgt/EXPORT_NO_SYSTEM.rst b/Help/prop_tgt/EXPORT_NO_SYSTEM.rst
index c93d1a5..61f0a8d 100644
--- a/Help/prop_tgt/EXPORT_NO_SYSTEM.rst
+++ b/Help/prop_tgt/EXPORT_NO_SYSTEM.rst
@@ -4,8 +4,8 @@ EXPORT_NO_SYSTEM
.. versionadded:: 3.25
Specifies that :command:`install(EXPORT)` and :command:`export` commands will
-generate a imported target with :prop_tgt:`SYSTEM` property `OFF`.
+generate an imported target with :prop_tgt:`SYSTEM` property `OFF`.
See the :prop_tgt:`NO_SYSTEM_FROM_IMPORTED` target property to set this
-behavior on the target consuming the include directories rather than
-providing them.
+behavior on the target *consuming* the include directories rather than the
+one *providing* them.
diff --git a/Help/prop_tgt/INTERFACE_CXX_MODULE_HEADER_UNIT_SETS.rst b/Help/prop_tgt/INTERFACE_CXX_MODULE_HEADER_UNIT_SETS.rst
index eb3a9ff..3fe6d9a 100644
--- a/Help/prop_tgt/INTERFACE_CXX_MODULE_HEADER_UNIT_SETS.rst
+++ b/Help/prop_tgt/INTERFACE_CXX_MODULE_HEADER_UNIT_SETS.rst
@@ -1,6 +1,8 @@
INTERFACE_CXX_MODULE_HEADER_UNIT_SETS
-------------------------------------
+.. versionadded:: 3.25
+
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
diff --git a/Help/prop_tgt/INTERFACE_CXX_MODULE_SETS.rst b/Help/prop_tgt/INTERFACE_CXX_MODULE_SETS.rst
index cc30386..c7ed46d 100644
--- a/Help/prop_tgt/INTERFACE_CXX_MODULE_SETS.rst
+++ b/Help/prop_tgt/INTERFACE_CXX_MODULE_SETS.rst
@@ -1,6 +1,8 @@
INTERFACE_CXX_MODULE_SETS
-------------------------
+.. versionadded:: 3.25
+
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
diff --git a/Help/prop_tgt/LANG_CLANG_TIDY.rst b/Help/prop_tgt/LANG_CLANG_TIDY.rst
index ffa0b9a..31f1876 100644
--- a/Help/prop_tgt/LANG_CLANG_TIDY.rst
+++ b/Help/prop_tgt/LANG_CLANG_TIDY.rst
@@ -18,7 +18,7 @@ command line.
.. versionchanged:: 3.25
If the specified ``clang-tidy`` command line includes the ``-p`` option,
- it will invoked without ``--`` and the full compiler command line.
+ it will be invoked without ``--`` and the full compiler command line.
``clang-tidy`` will look up the source file in the specified compiler
commands database.
diff --git a/Help/prop_tgt/MSVC_DEBUG_INFORMATION_FORMAT-VALUES.txt b/Help/prop_tgt/MSVC_DEBUG_INFORMATION_FORMAT-VALUES.txt
index 9a68460..889d97a 100644
--- a/Help/prop_tgt/MSVC_DEBUG_INFORMATION_FORMAT-VALUES.txt
+++ b/Help/prop_tgt/MSVC_DEBUG_INFORMATION_FORMAT-VALUES.txt
@@ -8,8 +8,8 @@
Compile with ``-ZI`` or equivalent flag(s) to produce a program
database that supports the Edit and Continue feature.
-The value is ignored on non-MSVC compilers but an unsupported value will
+The value is ignored on non-MSVC compilers, but an unsupported value will
be rejected as an error when using a compiler targeting the MSVC ABI.
-The value may also be the empty string (``""``) in which case no debug
+The value may also be the empty string (``""``), in which case no debug
information format flag will be added explicitly by CMake.
diff --git a/Help/prop_tgt/MSVC_DEBUG_INFORMATION_FORMAT.rst b/Help/prop_tgt/MSVC_DEBUG_INFORMATION_FORMAT.rst
index 2314cff..0c7845c 100644
--- a/Help/prop_tgt/MSVC_DEBUG_INFORMATION_FORMAT.rst
+++ b/Help/prop_tgt/MSVC_DEBUG_INFORMATION_FORMAT.rst
@@ -3,7 +3,7 @@ MSVC_DEBUG_INFORMATION_FORMAT
.. versionadded:: 3.25
-Select debug information format targeting the MSVC ABI.
+Select debug information format when targeting the MSVC ABI.
The allowed values are:
diff --git a/Help/release/3.25.rst b/Help/release/3.25.rst
new file mode 100644
index 0000000..2250dd4
--- /dev/null
+++ b/Help/release/3.25.rst
@@ -0,0 +1,237 @@
+CMake 3.25 Release Notes
+************************
+
+.. only:: html
+
+ .. contents::
+
+Changes made since CMake 3.24 include the following.
+
+New Features
+============
+
+Presets
+-------
+
+* The :manual:`cmake-presets(7)` schema version has been bumped to ``6``.
+
+* The :manual:`cmake-presets(7)` format now supports a
+ ``packagePresets`` field to specify presets for :option:`cpack --preset`.
+
+* The :manual:`cmake-presets(7)` format now supports a
+ ``workflowPresets`` field to specify presets for :option:`cmake --workflow`.
+
+Languages
+---------
+
+* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
+ is now aware of C++26, and defines a ``cxx_std_26`` meta-feature.
+ C++26 compiler modes may also be specified via the :prop_tgt:`CXX_STANDARD`,
+ :prop_tgt:`CUDA_STANDARD`, :prop_tgt:`HIP_STANDARD`,
+ or :prop_tgt:`OBJCXX_STANDARD` target properties.
+
+* ``CUDA`` language support now includes device link-time optimization when
+ using ``nvcc``. The :variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` variable
+ and the associated :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property
+ will activate device LTO.
+
+Command-Line
+------------
+
+* A :ref:`cmake --workflow --preset <Workflow Mode>` mode was added
+ to drive sequences of configure, build, test, and package operations
+ through a single command.
+
+* The :option:`cmake -E capabilities <cmake-E capabilities>` command
+ gained a new ``tls`` field that tells whether or not TLS is enabled.
+
+* The :option:`cmake -E env <cmake-E env>` command-line tool gained
+ a ``--modify`` flag to support :prop_test:`ENVIRONMENT_MODIFICATION`
+ operations.
+
+* The :option:`cmake --debug-trycompile` option now prints log messages
+ reporting the directory in which each try-compile check is done.
+
+Compilers
+---------
+
+* Support for the `Tasking compiler toolsets`_ (SmartCode, TriCore,
+ Standalone: ARM, MCS, 8051) was added with compiler id ``Tasking``.
+ See the :variable:`CMAKE_TASKING_TOOLSET` variable.
+
+.. _`Tasking compiler toolsets`: https://tasking.com
+
+Commands
+--------
+
+* The :command:`add_subdirectory` command gained a ``SYSTEM`` option
+ to enable the :prop_dir:`SYSTEM` directory property in the subdirectory.
+
+* The :command:`block` and :command:`endblock` commands were added to manage
+ specific scopes (policy or variable) for a contained block of commands.
+
+* The :command:`cmake_language` command gained a new
+ ``GET_MESSAGE_LOG_LEVEL`` sub-command. It can be used to
+ query the current message logging level.
+
+* The :command:`find_file`, :command:`find_path`, :command:`find_library`, and
+ :command:`find_program` commands gained a ``VALIDATOR`` option to specify a
+ function to be called for each candidate item to validate it.
+
+* The :command:`find_package` command now considers paths of
+ the form ``<prefix>/<name>*/(cmake|CMake)/<name>*/`` when
+ searching for package configuration files.
+
+* The :command:`return` command gained a ``PROPAGATE`` option to propagate
+ variables to the scope to which control returns.
+ See policy :policy:`CMP0140`.
+
+* The :command:`try_compile` and :command:`try_run` commands gained new
+ signatures that more consistently use keyword dispatch and do not require a
+ binary directory to be specified. Additionally, these signatures use a
+ unique directory for each invocation, which allows multiple outputs to be
+ preserved when using :option:`cmake --debug-trycompile`.
+
+* The :command:`try_compile` and :command:`try_run` commands gained the
+ option ``NO_CACHE`` to store results in normal variables.
+
+* The :command:`try_run` command gained ``RUN_OUTPUT_STDOUT_VARIABLE``
+ and ``RUN_OUTPUT_STDERR_VARIABLE`` options to capture stdout and stderr
+ separately from the output of the compiled program.
+
+Variables
+---------
+
+* The :variable:`BSD` and :variable:`CMAKE_HOST_BSD` variables are now set
+ to a string value when the target or host system is BSD, respectively.
+
+* The :variable:`LINUX` and :variable:`CMAKE_HOST_LINUX` variables are
+ now set to true when the target or host system is Linux, respectively.
+
+* The :variable:`CMAKE_MSVC_DEBUG_INFORMATION_FORMAT` variable and
+ :prop_tgt:`MSVC_DEBUG_INFORMATION_FORMAT` target property were introduced
+ to select the debug information format for compilers targeting the MSVC ABI.
+ See policy :policy:`CMP0141`.
+
+* The :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` variable and
+ corresponding :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` target
+ property were added to tell the :generator:`Xcode` generator what to put
+ in the scheme's ``Metal: API Validation`` setting.
+
+* The :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` variable and
+ corresponding :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` target
+ property were added to tell the :generator:`Xcode` generator what to put
+ in the scheme's ``Metal: Shader Validation`` setting.
+
+* The :variable:`CMAKE_XCODE_SCHEME_LAUNCH_MODE` variable and corresponding
+ :prop_tgt:`XCODE_SCHEME_LAUNCH_MODE` target property were added to tell
+ the :generator:`Xcode` generator what to put in the scheme's "Launch"
+ mode setting.
+
+* The :variable:`CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION` variable and
+ corresponding :prop_tgt:`XCODE_SCHEME_LAUNCH_CONFIGURATION` target
+ property were added to tell the :generator:`Xcode` generator what
+ configuration to put in the scheme's Launch action.
+
+Properties
+----------
+
+* The :prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property now supports
+ :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+* The :prop_tgt:`EXPORT_NO_SYSTEM` target property was added to
+ specify that :command:`install(EXPORT)` and :command:`export`
+ commands will generate na imported target with
+ :prop_tgt:`SYSTEM` property ``OFF``.
+
+* The :prop_tgt:`SYSTEM` target property was added to specify
+ whether a target should be treated as a system library (i.e.
+ its include directories are automatically ``SYSTEM`` when
+ compiling consumers). If not set, the default is the previous
+ behavior: on for imported targets and off for other targets.
+
+* The :prop_dir:`SYSTEM` directory property was added to initialize the
+ :prop_tgt:`SYSTEM` target property for targets created in that directory.
+
+Modules
+-------
+
+* The :module:`FetchContent` module :command:`FetchContent_Declare`
+ command gained a ``SYSTEM`` option to enable the :prop_dir:`SYSTEM`
+ directory property in the subdirectory.
+
+* The :module:`FindCUDAToolkit` module now provides a target for
+ :ref:`nvtx3 <cuda_toolkit_nvtx3>` for CUDA 10.0+, which supersedes
+ :ref:`nvToolsExt <cuda_toolkit_nvToolsExt>`. A deprecation warning
+ is emitted when using ``nvToolsExt`` if the project requires CMake
+ 3.25 and CUDA 10.0+ is used.
+
+* The :module:`FindDoxygen` module's version handling has been improved:
+
+ * Multiple candidate installations will now be considered, if needed,
+ to satisfy version constraints. Previously, only the first one
+ encountered would be considered.
+
+ * Version ranges are supported.
+
+ * Variations in the version format reported by Doxygen are now
+ tolerated (e.g. a trailing git commit hash).
+
+* The :module:`FindOpenAL` module now provides an imported target.
+
+* The :module:`FindOpenSP` module was added to find the OpenSP library.
+
+* The :module:`FindVulkan` module gained support for new components:
+
+ ``dxc``
+ DirectX Shader Compiler.
+
+ ``volk``
+ Volk open-source vulkan meta-loader.
+
+CPack
+-----
+
+* The :cpack_gen:`CPack Archive Generator` gained a new
+ :variable:`CPACK_ARCHIVE_FILE_EXTENSION` variable to control
+ the package file name extension.
+
+* The :cpack_gen:`CPack NSIS Generator` gained two new variables
+ :variable:`CPACK_NSIS_EXECUTABLE_PRE_ARGUMENTS` and
+ :variable:`CPACK_NSIS_EXECUTABLE_POST_ARGUMENTS`
+ to provide arguments to the nsis executable invocation.
+
+* The :module:`CPack` module gained the :variable:`CPACK_READELF_EXECUTABLE`,
+ :variable:`CPACK_OBJCOPY_EXECUTABLE`, and
+ :variable:`CPACK_OBJDUMP_EXECUTABLE` variables to control the locations
+ of binutils used by :manual:`cpack(1)`.
+
+Deprecated and Removed Features
+===============================
+
+* The :prop_tgt:`IMPORTED_NO_SYSTEM` target property has been deprecated
+ in favor of :prop_tgt:`SYSTEM` and :prop_tgt:`EXPORT_NO_SYSTEM`.
+
+* The :generator:`Visual Studio 10 2010` generator has been removed.
+
+* The :generator:`Visual Studio 11 2012` generator is now deprecated
+ and will be removed in a future version of CMake.
+
+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.
+
+* If :prop_tgt:`<LANG>_CLANG_TIDY` includes a ``-p`` argument, the
+ full compiler command line is no longer appended after ``--``.
+
+* The :generator:`Xcode` generator no longer adds the per-config suffix
+ ``$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)`` to library search paths.
+ See policy :policy:`CMP0142`.
diff --git a/Help/release/dev/BSD.rst b/Help/release/dev/BSD.rst
deleted file mode 100644
index cd2352b..0000000
--- a/Help/release/dev/BSD.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Variables
----------
-
-* The :variable:`BSD` variable is set to a string value when the target system is BSD.
- This value can be one of the following: DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD.
-
-* The :variable:`CMAKE_HOST_BSD` variable is set to a string value when the host system is BSD.
- This value can be one of the following: DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD.
diff --git a/Help/release/dev/E-capabilities-tls.rst b/Help/release/dev/E-capabilities-tls.rst
deleted file mode 100644
index e2324d2..0000000
--- a/Help/release/dev/E-capabilities-tls.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-E-capabilities-tls
-------------------
-
-* The :manual:`cmake -E capabilities <cmake(1)>` command gained a new ``tls``
- field that tells whether or not TLS is enabled.
diff --git a/Help/release/dev/FindOpenSP-module.rst b/Help/release/dev/FindOpenSP-module.rst
deleted file mode 100644
index 9df6815..0000000
--- a/Help/release/dev/FindOpenSP-module.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-FindOpenSP-module
------------------
-
-* The :module:`FindOpenSP` module was added to find the OpenSP library.
diff --git a/Help/release/dev/FindVulkan-dxc.rst b/Help/release/dev/FindVulkan-dxc.rst
deleted file mode 100644
index e22f016..0000000
--- a/Help/release/dev/FindVulkan-dxc.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-FindVulkan-dxc
---------------
-
-* The :module:`FindVulkan` module gained support for a DirectX Shader Compiler
- component, ``dxc``.
diff --git a/Help/release/dev/LINUX.rst b/Help/release/dev/LINUX.rst
deleted file mode 100644
index b837a1f..0000000
--- a/Help/release/dev/LINUX.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Variables
----------
-
-* The :variable:`LINUX` variable is set to true when the target system is Linux.
-
-* The :variable:`CMAKE_HOST_LINUX` variable is set to true when the host system is Linux.
diff --git a/Help/release/dev/MsvcDebugInformationFormatAbstraction.rst b/Help/release/dev/MsvcDebugInformationFormatAbstraction.rst
deleted file mode 100644
index d0c077c..0000000
--- a/Help/release/dev/MsvcDebugInformationFormatAbstraction.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-MsvcDebugInformationFormatAbstraction
--------------------------------------
-
-* The :variable:`CMAKE_MSVC_DEBUG_INFORMATION_FORMAT` variable and
- :prop_tgt:`MSVC_DEBUG_INFORMATION_FORMAT` target property were introduced
- to select the debug information format for compilers targeting the MSVC ABI.
- See policy :policy:`CMP0141`.
diff --git a/Help/release/dev/UseSWIG-perl-extra-files.rst b/Help/release/dev/UseSWIG-perl-extra-files.rst
deleted file mode 100644
index d7490ec..0000000
--- a/Help/release/dev/UseSWIG-perl-extra-files.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-UseSWIG-perl-extra-files
-------------------------
-
-* The :module:`UseSWIG` module gained knowledge about generated Perl module
- files (extension ``.pm``).
diff --git a/Help/release/dev/add_tasking_compiler.rst b/Help/release/dev/add_tasking_compiler.rst
deleted file mode 100644
index 705f923..0000000
--- a/Help/release/dev/add_tasking_compiler.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-add_tasking_compiler
---------------------
-
- * Support for the `Tasking compiler toolsets`_ (SmartCode, TriCore,
- Standalone: ARM, MCS, 8051) was added with compiler id ``Tasking``.
- See the :variable:`CMAKE_TASKING_TOOLSET` variable.
-
-.. _`Tasking compiler toolsets`: https://tasking.com
diff --git a/Help/release/dev/block-command.rst b/Help/release/dev/block-command.rst
deleted file mode 100644
index a740c0b..0000000
--- a/Help/release/dev/block-command.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-block-command
--------------
-
-* CMake language gains the commands :command:`block` and :command:`endblock` to
- manage specific scopes (policy or variable) for group of commands.
diff --git a/Help/release/dev/clang-tidy-prefer-p-option.rst b/Help/release/dev/clang-tidy-prefer-p-option.rst
deleted file mode 100644
index 816c7dd..0000000
--- a/Help/release/dev/clang-tidy-prefer-p-option.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-clang-tidy-prefer-p-option
---------------------------
-
-* If :prop_tgt:`<LANG>_CLANG_TIDY` includes a ``-p`` argument, the
- full compiler command line is no longer appended after ``--``.
diff --git a/Help/release/dev/cmake-E-env-modify.rst b/Help/release/dev/cmake-E-env-modify.rst
deleted file mode 100644
index 08f1fb5..0000000
--- a/Help/release/dev/cmake-E-env-modify.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-cmake-E-env-modify
-------------------
-
-* A new ``--modify`` flag was added to :option:`cmake -E env <cmake-E env>` to
- support :prop_test:`ENVIRONMENT_MODIFICATION` operations.
diff --git a/Help/release/dev/cmake-presets-package.rst b/Help/release/dev/cmake-presets-package.rst
deleted file mode 100644
index 8f7ea6b..0000000
--- a/Help/release/dev/cmake-presets-package.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-cmake-presets-package
----------------------
-
-* The :manual:`cmake-presets(7)` schema version has been bumped to ``6``.
-* The :manual:`cmake-presets(7)` format now supports a ``packagePresets`` field.
diff --git a/Help/release/dev/cmake-presets-workflow.rst b/Help/release/dev/cmake-presets-workflow.rst
deleted file mode 100644
index db93d72..0000000
--- a/Help/release/dev/cmake-presets-workflow.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-cmake-presets-workflow
-----------------------
-
-* The :manual:`cmake-presets(7)` format now supports a ``workflowPresets`` field.
diff --git a/Help/release/dev/cmake_language_GET_MESSAGE_LOG_LEVEL.rst b/Help/release/dev/cmake_language_GET_MESSAGE_LOG_LEVEL.rst
deleted file mode 100644
index 6e99a05..0000000
--- a/Help/release/dev/cmake_language_GET_MESSAGE_LOG_LEVEL.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-cmake-language_GET_MESSAGE_LOG_LEVEL
-------------------------------------
-
-* The :command:`cmake_language` command gained a new
- ``GET_MESSAGE_LOG_LEVEL`` sub-command. It can be used to
- query the current message logging level.
diff --git a/Help/release/dev/compiler-launcher-genexp.rst b/Help/release/dev/compiler-launcher-genexp.rst
deleted file mode 100644
index 0e79992..0000000
--- a/Help/release/dev/compiler-launcher-genexp.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-compiler-launcher-genexp
-------------------------
-
-* The :prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property now supports
- :manual:`generator expressions <cmake-generator-expressions(7)>`.
diff --git a/Help/release/dev/cpack-archive-custom-extension.rst b/Help/release/dev/cpack-archive-custom-extension.rst
deleted file mode 100644
index 38ad36f..0000000
--- a/Help/release/dev/cpack-archive-custom-extension.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-cpack-archive-custom-extension
-------------------------------
-
-* The :cpack_gen:`CPack Archive Generator` gained a new
- :variable:`CPACK_ARCHIVE_FILE_EXTENSION` variable to control
- the package file name extension.
diff --git a/Help/release/dev/cpack-nsis-arguments-command-line.rst b/Help/release/dev/cpack-nsis-arguments-command-line.rst
deleted file mode 100644
index 610a338..0000000
--- a/Help/release/dev/cpack-nsis-arguments-command-line.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-cpack-nsis-arguments-command-line
----------------------------------
-
-* The :cpack_gen:`CPack NSIS Generator` gained two new variables
- :variable:`CPACK_NSIS_EXECUTABLE_PRE_ARGUMENTS` and
- :variable:`CPACK_NSIS_EXECUTABLE_POST_ARGUMENTS`
- to provide arguments to the nsis executable invocation.
diff --git a/Help/release/dev/cpack-reuse-cmake-tools.rst b/Help/release/dev/cpack-reuse-cmake-tools.rst
deleted file mode 100644
index 144a6b3..0000000
--- a/Help/release/dev/cpack-reuse-cmake-tools.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-cpack-reuse-cmake-tools
------------------------
-
-* The :module:`CPack` module gained the :variable:`CPACK_READELF_EXECUTABLE`,
- :variable:`CPACK_OBJCOPY_EXECUTABLE`, and
- :variable:`CPACK_OBJDUMP_EXECUTABLE` variables to control the locations
- of binutils used by :manual:`cpack(1)`.
diff --git a/Help/release/dev/cuda-device-lto.rst b/Help/release/dev/cuda-device-lto.rst
deleted file mode 100644
index 113062b..0000000
--- a/Help/release/dev/cuda-device-lto.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-cuda-device-lto
----------------
-
-* ``CUDA`` language now supports device link time optimization when using
- ``nvcc``. The :variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` variable and
- the associated :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property will
- activate device LTO.
diff --git a/Help/release/dev/cxx_std_26.rst b/Help/release/dev/cxx_std_26.rst
deleted file mode 100644
index 831f567..0000000
--- a/Help/release/dev/cxx_std_26.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-cxx_std_26
-----------
-
-* C++26 compiler modes may now be specified via the :prop_tgt:`CXX_STANDARD`,
- :prop_tgt:`CUDA_STANDARD`, :prop_tgt:`HIP_STANDARD`, or
- :prop_tgt:`OBJCXX_STANDARD` target properties,
- or via the :manual:`Compile Features <cmake-compile-features(7)>`
- functionality's ``cxx_std_26`` meta-feature.
diff --git a/Help/release/dev/detect-lib_foo.a-msvc.rst b/Help/release/dev/detect-lib_foo.a-msvc.rst
deleted file mode 100644
index 4080a5b..0000000
--- a/Help/release/dev/detect-lib_foo.a-msvc.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-detect-lib_foo.a-msvc
----------------------
-
-* 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``.
diff --git a/Help/release/dev/env-tls-certs.rst b/Help/release/dev/env-tls-certs.rst
deleted file mode 100644
index 4afadb4..0000000
--- a/Help/release/dev/env-tls-certs.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-env-tls-certs
--------------
-
-* The :envvar:`SSL_CERT_FILE` and :envvar:`SSL_CERT_DIR` environment
- variables are now used to find certificate authorities for TLS/SSL
- operations.
diff --git a/Help/release/dev/find-cuda-toolkit-nvtx3.rst b/Help/release/dev/find-cuda-toolkit-nvtx3.rst
deleted file mode 100644
index b16ed9f..0000000
--- a/Help/release/dev/find-cuda-toolkit-nvtx3.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-find-cuda-toolkit-nvtx3
------------------------
-
-* The :module:`FindCUDAToolkit` module now provides a target for
- :ref:`nvtx3 <cuda_toolkit_nvtx3>` for CUDA 10.0+, which supersedes
- :ref:`nvToolsExt <cuda_toolkit_nvToolsExt>`. A deprecation warning is emitted
- when using ``nvToolsExt`` if the project requires CMake 3.25 and CUDA 10.0+
- is used.
diff --git a/Help/release/dev/find_item-VALIDATOR.rst b/Help/release/dev/find_item-VALIDATOR.rst
deleted file mode 100644
index 2cda421..0000000
--- a/Help/release/dev/find_item-VALIDATOR.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-find_item-VALIDATOR
--------------------
-
-* :command:`find_file`, :command:`find_path`, :command:`find_library`, and
- :command:`find_program` commands gain the capability to specify a function
- which will be called for each found item to validate it.
diff --git a/Help/release/dev/find_package-one-more-path.rst b/Help/release/dev/find_package-one-more-path.rst
deleted file mode 100644
index 554b67d..0000000
--- a/Help/release/dev/find_package-one-more-path.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-find_package-one-more-path
---------------------------
-
-* The :command:`find_package` command now considers paths of
- the form ``<prefix>/<name>*/(cmake|CMake)/<name>*/`` when
- searching for package configuration files.
diff --git a/Help/release/dev/finddoxygen-better-version-checking.rst b/Help/release/dev/finddoxygen-better-version-checking.rst
deleted file mode 100644
index 3c2215d..0000000
--- a/Help/release/dev/finddoxygen-better-version-checking.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-finddoxygen-better-version-checking
------------------------------------
-
-* The :module:`FindDoxygen` module now evaluates as many candidate
- Doxygen installs as are necessary to satisfy version constraints,
- with the package considered to be not found if none are available.
-
-* The :module:`FindDoxygen` module now handles version ranges.
-
-* The :module:`FindDoxygen` module now ignores non-semantic portions
- of the output from Doxygen's `--version` option.
diff --git a/Help/release/dev/findopenal-add-import-library.rst b/Help/release/dev/findopenal-add-import-library.rst
deleted file mode 100644
index 6c9c93f..0000000
--- a/Help/release/dev/findopenal-add-import-library.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-findopenal-add-import-library
------------------------------
-
-* The :module:`FindOpenAL` module now provides an imported target.
diff --git a/Help/release/dev/findvulkan-volk.rst b/Help/release/dev/findvulkan-volk.rst
deleted file mode 100644
index cb77078..0000000
--- a/Help/release/dev/findvulkan-volk.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-findvulkan-volk
----------------
-
-* The :module:`FindVulkan` module now includes a ``volk`` component
- for the Volk open source vulkan meta-loader.
diff --git a/Help/release/dev/genex-LINK_LIBRARY-FRAMEWORK-supports-suffix.rst b/Help/release/dev/genex-LINK_LIBRARY-FRAMEWORK-supports-suffix.rst
deleted file mode 100644
index e4d82ee..0000000
--- a/Help/release/dev/genex-LINK_LIBRARY-FRAMEWORK-supports-suffix.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-genex-LINK_LIBRARY-FRAMEWORK-supports-suffix
---------------------------------------------
-
-The :genex:`$<LINK_LIBRARY>` generator expression gains the capability, for the
-``FRAMEWORK`` features, to handle the suffix of the framework library name.
diff --git a/Help/release/dev/p1689r5.rst b/Help/release/dev/p1689r5.rst
deleted file mode 100644
index a630dc4..0000000
--- a/Help/release/dev/p1689r5.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-p1689r5
--------
-
-* C++ module scanning now supports the latest revision, `P1689R5`_.
-
-.. _`P1689r5`: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1689r5.html
diff --git a/Help/release/dev/remove-vs10-generator.rst b/Help/release/dev/remove-vs10-generator.rst
deleted file mode 100644
index 32e1da6..0000000
--- a/Help/release/dev/remove-vs10-generator.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-remove-vs10-generator
----------------------
-
-* The :generator:`Visual Studio 10 2010` generator has been removed.
diff --git a/Help/release/dev/return-PROPAGATE.rst b/Help/release/dev/return-PROPAGATE.rst
deleted file mode 100644
index 7308d20..0000000
--- a/Help/release/dev/return-PROPAGATE.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-return-PROPAGATE
-----------------
-
-* The :command:`return` command gains the capability to propagate variables to
- the include directory of function caller scope. See policy :policy:`CMP0140`.
diff --git a/Help/release/dev/system.rst b/Help/release/dev/system.rst
deleted file mode 100644
index 879e279..0000000
--- a/Help/release/dev/system.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-system
-------
-
-* The :prop_tgt:`SYSTEM` target property was added to specify
- that a target should be treated as a system library (i.e.
- its include directories are automatically ``SYSTEM`` when
- compiling consumers).
-
-* The :prop_dir:`SYSTEM` directory property was added to initialize the
- :prop_tgt:`SYSTEM` target property for targets created in that directory.
-
-* The :command:`add_subdirectory` command gained a ``SYSTEM`` option
- to enable the :prop_dir:`SYSTEM` directory property in the subdirectory.
-
-* The :module:`FetchContent` module :command:`FetchContent_Declare`
- command gained a ``SYSTEM`` option to enable the :prop_dir:`SYSTEM`
- directory property in the subdirectory.
-
-* The :prop_tgt:`EXPORT_NO_SYSTEM` target property was added to
- specify that :command:`install(EXPORT)` and :command:`export`
- commands will generate a imported target with
- :prop_tgt:`SYSTEM` property `OFF`.
-
-* The :prop_tgt:`IMPORTED_NO_SYSTEM` target property was deprecated
- in favor of :prop_tgt:`SYSTEM` and :prop_tgt:`EXPORT_NO_SYSTEM`.
diff --git a/Help/release/dev/try_compile-no_cache.rst b/Help/release/dev/try_compile-no_cache.rst
deleted file mode 100644
index ebabcd5..0000000
--- a/Help/release/dev/try_compile-no_cache.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-try_compile-no_cache
---------------------
-
-* The :command:`try_compile` and :command:`try_run` commands gained the option
- ``NO_CACHE`` to store results in normal variables.
diff --git a/Help/release/dev/try_compile-signatures.rst b/Help/release/dev/try_compile-signatures.rst
deleted file mode 100644
index c32babd..0000000
--- a/Help/release/dev/try_compile-signatures.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-try_compile-signatures
-----------------------
-
-* The :command:`try_compile` and :command:`try_run` commands gained new
- signatures that more consistently use keyword dispatch and do not require a
- binary directory to be specified. Additionally, these signatures use a
- unique directory for each invocation, which allows multiple outputs to be
- preserved when using :option:`--debug-trycompile <cmake --debug-trycompile>`.
-
-* The :option:`cmake --debug-trycompile` option now prints log messages
- reporting the directory in which each try-compile check is done.
diff --git a/Help/release/dev/try_run_split_output.rst b/Help/release/dev/try_run_split_output.rst
deleted file mode 100644
index 98aedd6..0000000
--- a/Help/release/dev/try_run_split_output.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-try_run_split_output
---------------------
-
-* The :command:`try_run` command gained ``RUN_OUTPUT_STDOUT_VARIABLE``
- and ``RUN_OUTPUT_STDERR_VARIABLE`` options to capture stdout and stderr
- separately from the output of the compiled program.
diff --git a/Help/release/dev/vs11-deprecate.rst b/Help/release/dev/vs11-deprecate.rst
deleted file mode 100644
index 2ee69bb..0000000
--- a/Help/release/dev/vs11-deprecate.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-vs11-deprecate
---------------
-
-* The :generator:`Visual Studio 11 2012` generator is now deprecated
- and will be removed in a future version of CMake.
diff --git a/Help/release/dev/xcode-gpu-validation.rst b/Help/release/dev/xcode-gpu-validation.rst
deleted file mode 100644
index 86f7e96..0000000
--- a/Help/release/dev/xcode-gpu-validation.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-xcode-gpu-validation
---------------------
-
-* The :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` variable and
- corresponding :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` target
- property were added to tell the :generator:`Xcode` generator what to put
- in the scheme's ``Metal: API Validation`` setting.
-
-* The :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` variable and
- corresponding :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` target
- property were added to tell the :generator:`Xcode` generator what to put
- in the scheme's ``Metal: Shader Validation`` setting.
diff --git a/Help/release/dev/xcode-launch-mode.rst b/Help/release/dev/xcode-launch-mode.rst
deleted file mode 100644
index 701b502..0000000
--- a/Help/release/dev/xcode-launch-mode.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-xcode-launch-mode
------------------
-
-* The :variable:`CMAKE_XCODE_SCHEME_LAUNCH_MODE` variable and corresponding
- :prop_tgt:`XCODE_SCHEME_LAUNCH_MODE` target property were added to tell
- the :generator:`Xcode` generator what to put in the scheme's "Launch"
- mode setting.
-
-* The :variable:`CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION` variable and
- corresponding :prop_tgt:`XCODE_SCHEME_LAUNCH_CONFIGURATION` target
- property were added to tell the :generator:`Xcode` generator what
- configuration to put in the scheme's Launch action.
diff --git a/Help/release/dev/xcode-lib-dirs.rst b/Help/release/dev/xcode-lib-dirs.rst
deleted file mode 100644
index fc1fe1b..0000000
--- a/Help/release/dev/xcode-lib-dirs.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-xcode-lib-dirs
---------------
-
-* The :generator:`Xcode` generator no longer adds the per-config suffix
- ``$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)`` to library search paths.
- See policy :policy:`CMP0142`.
diff --git a/Help/release/index.rst b/Help/release/index.rst
index 11d5a11..50e06bb 100644
--- a/Help/release/index.rst
+++ b/Help/release/index.rst
@@ -15,6 +15,7 @@ Releases
.. toctree::
:maxdepth: 1
+ 3.25 <3.25>
3.24 <3.24>
3.23 <3.23>
3.22 <3.22>
diff --git a/Help/variable/CMAKE_LANG_COMPILER_ID.rst b/Help/variable/CMAKE_LANG_COMPILER_ID.rst
index 0dbc0a0..0174c56 100644
--- a/Help/variable/CMAKE_LANG_COMPILER_ID.rst
+++ b/Help/variable/CMAKE_LANG_COMPILER_ID.rst
@@ -39,12 +39,12 @@ Value Name
``PathScale`` PathScale
``SDCC`` `Small Device C Compiler`_
``SunPro`` Oracle Solaris Studio
+``Tasking`` `Tasking Compiler Toolsets`_
``TI`` Texas Instruments
``TinyCC`` `Tiny C Compiler`_
``XL``, ``VisualAge``, ``zOS`` IBM XL
``XLClang`` IBM Clang-based XL
``IBMClang`` IBM LLVM-based Compiler
-``Tasking`` `Tasking Compiler Toolsets`_
=============================== ===============================================
This variable is not guaranteed to be defined for all compilers or
diff --git a/Help/variable/CMAKE_TASKING_TOOLSET.rst b/Help/variable/CMAKE_TASKING_TOOLSET.rst
index 430207e..940606b 100644
--- a/Help/variable/CMAKE_TASKING_TOOLSET.rst
+++ b/Help/variable/CMAKE_TASKING_TOOLSET.rst
@@ -11,7 +11,7 @@ incompatible versioning schemes. Set this variable in a
the compiler and version correctly. If no toolset is specified,
``Standalone`` is assumed.
-Projects, that can be build with different architectures and/or toolsets, must
+Projects that can be built with different architectures and/or toolsets must
take :variable:`CMAKE_TASKING_TOOLSET` and
:variable:`CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID` into account to qualify
:variable:`CMAKE_<LANG>_COMPILER_VERSION`.
diff --git a/Modules/CMakeDetermineHIPCompiler.cmake b/Modules/CMakeDetermineHIPCompiler.cmake
index 7b7d7a3..6294d04 100644
--- a/Modules/CMakeDetermineHIPCompiler.cmake
+++ b/Modules/CMakeDetermineHIPCompiler.cmake
@@ -86,6 +86,7 @@ if(NOT CMAKE_HIP_COMPILER_ROCM_ROOT AND CMAKE_HIP_COMPILER_ID STREQUAL "Clang")
if(_CMAKE_HIP_COMPILER_RESULT EQUAL 0 AND _CMAKE_HIP_COMPILER_STDERR MATCHES "Found HIP installation: *([^,]*)[,\n]")
set(CMAKE_HIP_COMPILER_ROCM_ROOT "${CMAKE_MATCH_1}")
+ file(TO_CMAKE_PATH "${CMAKE_HIP_COMPILER_ROCM_ROOT}" CMAKE_HIP_COMPILER_ROCM_ROOT)
endif()
endif()
if(NOT CMAKE_HIP_COMPILER_ROCM_ROOT)
diff --git a/Modules/CMakeHIPInformation.cmake b/Modules/CMakeHIPInformation.cmake
index 4c57677..33f8697 100644
--- a/Modules/CMakeHIPInformation.cmake
+++ b/Modules/CMakeHIPInformation.cmake
@@ -143,7 +143,7 @@ set(CMAKE_HIP_INFORMATION_LOADED 1)
# Load the file and find the relevant HIP runtime.
if(NOT DEFINED _CMAKE_HIP_DEVICE_RUNTIME_TARGET)
set(hip-lang_DIR "${CMAKE_HIP_COMPILER_ROCM_ROOT}/lib/cmake/hip-lang")
- find_package(hip-lang CONFIG QUIET NO_DEFAULT_PATH)
+ find_package(hip-lang CONFIG QUIET NO_DEFAULT_PATH REQUIRED)
endif()
if(DEFINED _CMAKE_HIP_DEVICE_RUNTIME_TARGET)
list(APPEND CMAKE_HIP_RUNTIME_LIBRARIES_STATIC ${_CMAKE_HIP_DEVICE_RUNTIME_TARGET})
diff --git a/Modules/CPackIFW.cmake b/Modules/CPackIFW.cmake
index a4bfe1d..efe6999 100644
--- a/Modules/CPackIFW.cmake
+++ b/Modules/CPackIFW.cmake
@@ -439,37 +439,55 @@ set(_CPACK_IFW_PREFIXES
"QtIFW-")
set(_CPACK_IFW_VERSIONS
+ "4.4.2"
+ "4.4.1"
+ "4.4.0"
"4.4"
+ "4.3.0"
"4.3"
+ "4.2.0"
"4.2"
+ "4.1.1"
+ "4.1.0"
"4.1"
+ "4.0.1"
+ "4.0.0"
"4.0"
- "3.2"
+ "3.2.3"
+ "3.2.2"
+ "3.2.1"
"3.2.0"
- "3.1"
+ "3.2"
+ "3.1.1"
"3.1.0"
- "3.0"
+ "3.1"
+ "3.0.6"
+ "3.0.4"
+ "3.0.3"
+ "3.0.2"
+ "3.0.1"
"3.0.0"
- "2.3"
+ "3.0"
"2.3.0"
- "2.2"
+ "2.3"
"2.2.0"
- "2.1"
+ "2.2"
"2.1.0"
- "2.0"
+ "2.1"
"2.0.5"
"2.0.3"
"2.0.2"
"2.0.1"
"2.0.0"
- "1.6"
+ "2.0"
"1.6.0"
- "1.5"
+ "1.6"
"1.5.0"
- "1.4"
+ "1.5"
"1.4.0"
- "1.3"
- "1.3.0")
+ "1.4"
+ "1.3.0"
+ "1.3")
set(_CPACK_IFW_SUFFIXES "bin")
foreach(_CPACK_IFW_PREFIX ${_CPACK_IFW_PREFIXES})
diff --git a/Modules/CUDA/architectures.cmake b/Modules/CUDA/architectures.cmake
index 79c1252..d646920 100644
--- a/Modules/CUDA/architectures.cmake
+++ b/Modules/CUDA/architectures.cmake
@@ -45,6 +45,12 @@ if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 11.4
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 87)
endif()
+if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 11.8
+ AND (NOT CMAKE_CUDA_COMPILER_ID STREQUAL "Clang"))
+ list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 89 90)
+ list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 90)
+endif()
+
# only generate jit code for the newest arch for all/all-major
list(POP_BACK CMAKE_CUDA_ARCHITECTURES_ALL _latest_arch)
list(TRANSFORM CMAKE_CUDA_ARCHITECTURES_ALL APPEND "-real")
diff --git a/Modules/Compiler/Intel.cmake b/Modules/Compiler/Intel.cmake
index 20989d2..642e58a 100644
--- a/Modules/Compiler/Intel.cmake
+++ b/Modules/Compiler/Intel.cmake
@@ -13,7 +13,11 @@ include(Compiler/CMakeCommonCompilerMacros)
if(CMAKE_HOST_WIN32)
# MSVC-like
macro(__compiler_intel lang)
- set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror-all")
+ if("x${lang}" STREQUAL "xFortran")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-warn:errors")
+ else()
+ set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror-all")
+ endif()
endmacro()
else()
# GNU-like
@@ -25,7 +29,6 @@ else()
string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os")
string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3")
string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g")
- set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror-all")
set(CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "${CMAKE_${lang}_COMPILER}")
if(CMAKE_${lang}_COMPILER_ARG1)
@@ -35,7 +38,9 @@ else()
endif()
list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-QdM" "-P" "-Za" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
- if(NOT "x${lang}" STREQUAL "xFortran")
+ if("x${lang}" STREQUAL "xFortran")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-warn" "errors")
+ else()
# Precompile Headers
set(CMAKE_PCH_EXTENSION .pchi)
set(CMAKE_LINK_PCH ON)
@@ -43,6 +48,9 @@ else()
set(CMAKE_${lang}_COMPILE_OPTIONS_INVALID_PCH -Winvalid-pch)
set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Wno-pch-messages -pch-use <PCH_FILE> -include <PCH_HEADER>)
set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Wno-pch-messages -pch-create <PCH_FILE> -include <PCH_HEADER>)
+
+ # COMPILE_WARNING_AS_ERROR
+ set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror-all")
endif()
endmacro()
endif()
diff --git a/Modules/Compiler/IntelLLVM.cmake b/Modules/Compiler/IntelLLVM.cmake
index 3f22efd..30de1a9 100644
--- a/Modules/Compiler/IntelLLVM.cmake
+++ b/Modules/Compiler/IntelLLVM.cmake
@@ -27,7 +27,9 @@ endmacro()
if(CMAKE_HOST_WIN32)
# MSVC-like
macro(__compiler_intel_llvm lang)
- if(NOT "x${lang}" STREQUAL "xFortran")
+ if("x${lang}" STREQUAL "xFortran")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-warn:errors")
+ else()
set(CMAKE_${lang}_COMPILE_OPTIONS_INVALID_PCH -Winvalid-pch)
set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-WX")
endif()
@@ -51,7 +53,6 @@ else()
set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
set(CMAKE_${lang}_LINK_OPTIONS_PIE ${CMAKE_${lang}_COMPILE_OPTIONS_PIE} "-pie")
set(CMAKE_${lang}_LINK_OPTIONS_NO_PIE "-no-pie")
- set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror")
set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC")
set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared")
@@ -90,7 +91,9 @@ else()
list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "--target=${CMAKE_${lang}_COMPILER_TARGET}")
endif()
- if(NOT "x${lang}" STREQUAL "xFortran")
+ if("x${lang}" STREQUAL "xFortran")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-warn" "errors")
+ else()
# Precompile Headers
set(CMAKE_PCH_EXTENSION .pch)
set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
@@ -98,6 +101,9 @@ else()
set(CMAKE_${lang}_COMPILE_OPTIONS_INVALID_PCH -Winvalid-pch)
set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Xclang -include-pch -Xclang <PCH_FILE> -Xclang -include -Xclang <PCH_HEADER>)
set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Xclang -emit-pch -Xclang -include -Xclang <PCH_HEADER> -x ${__pch_header_${lang}})
+
+ # COMPILE_WARNING_AS_ERROR
+ set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror")
endif()
endmacro()
endif()
diff --git a/Modules/Compiler/LLVMFlang-Fortran.cmake b/Modules/Compiler/LLVMFlang-Fortran.cmake
index 7e9ba5e..651bf51 100644
--- a/Modules/Compiler/LLVMFlang-Fortran.cmake
+++ b/Modules/Compiler/LLVMFlang-Fortran.cmake
@@ -1,3 +1,5 @@
+set(CMAKE_Fortran_VERBOSE_FLAG "-v")
+
set(CMAKE_Fortran_SUBMODULE_SEP "-")
set(CMAKE_Fortran_SUBMODULE_EXT ".mod")
diff --git a/Modules/Compiler/NVHPC.cmake b/Modules/Compiler/NVHPC.cmake
index 957dacd..474ac80 100644
--- a/Modules/Compiler/NVHPC.cmake
+++ b/Modules/Compiler/NVHPC.cmake
@@ -13,5 +13,5 @@ include(Compiler/PGI)
macro(__compiler_nvhpc lang)
# Logic specific to NVHPC.
set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
- set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror all-warnings")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror" "all-warnings")
endmacro()
diff --git a/Modules/Compiler/NVIDIA-CUDA.cmake b/Modules/Compiler/NVIDIA-CUDA.cmake
index 2b8a1ea..c8dcd2a 100644
--- a/Modules/Compiler/NVIDIA-CUDA.cmake
+++ b/Modules/Compiler/NVIDIA-CUDA.cmake
@@ -31,7 +31,7 @@ endif()
if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 10.2.89)
# Starting in 10.2, nvcc supported treating all warnings as errors
- set(CMAKE_CUDA_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror all-warnings")
+ set(CMAKE_CUDA_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror" "all-warnings")
endif()
if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 10.2.89)
diff --git a/Modules/FindOpenSP.cmake b/Modules/FindOpenSP.cmake
index c903ad7..655dd65 100644
--- a/Modules/FindOpenSP.cmake
+++ b/Modules/FindOpenSP.cmake
@@ -5,10 +5,10 @@
FindOpenSP
----------
-Try to find the OpenSP library.
-
.. versionadded:: 3.25
+Try to find the OpenSP library.
+
Result Variables
^^^^^^^^^^^^^^^^
diff --git a/Modules/Internal/CPack/NSIS.template.in b/Modules/Internal/CPack/NSIS.template.in
index 42a44d9..21753af 100644
--- a/Modules/Internal/CPack/NSIS.template.in
+++ b/Modules/Internal/CPack/NSIS.template.in
@@ -931,11 +931,20 @@ Function .onInit
;Run the uninstaller
uninst:
ClearErrors
- StrCpy $2 $0 1
- StrCmp '"' $2 0 +3 ; checks if string is quoted (CPack before v3.20.6 did not quote it)
- ExecWait '$0 /S'
- Goto +2
- ExecWait '"$0" /S'
+ # $0 should _always_ be quoted, however older versions of CMake did not
+ # do this. We'll conditionally remove the begin/end quotes.
+ # Remove first char if quote
+ StrCpy $2 $0 1 0 # copy first char
+ StrCmp $2 "$\"" 0 +2 # if char is quote
+ StrCpy $0 $0 "" 1 # remove first char
+ # Remove last char if quote
+ StrCpy $2 $0 1 -1 # copy last char
+ StrCmp $2 "$\"" 0 +2 # if char is quote
+ StrCpy $0 $0 -1 # remove last char
+
+ StrLen $2 "\@CPACK_NSIS_UNINSTALL_NAME@.exe"
+ StrCpy $3 $0 -$2 # remove "\@CPACK_NSIS_UNINSTALL_NAME@.exe" from UninstallString to get path
+ ExecWait '"$0" /S _?=$3' ;Do not copy the uninstaller to a temp file
IfErrors uninst_failed inst
uninst_failed:
diff --git a/Modules/Platform/Windows-Clang-HIP.cmake b/Modules/Platform/Windows-Clang-HIP.cmake
new file mode 100644
index 0000000..20879fa
--- /dev/null
+++ b/Modules/Platform/Windows-Clang-HIP.cmake
@@ -0,0 +1,19 @@
+include(Platform/Windows-Clang)
+set(_COMPILE_HIP_MSVC " -TP")
+__windows_compiler_clang(HIP)
+
+if("x${CMAKE_HIP_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
+ if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)
+ AND CMAKE_GENERATOR MATCHES "Makefiles|WMake"
+ AND CMAKE_DEPFILE_FLAGS_HIP)
+ set(CMAKE_HIP_DEPENDS_USE_COMPILER TRUE)
+ endif()
+elseif("x${CMAKE_HIP_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
+ if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)
+ AND CMAKE_GENERATOR MATCHES "Makefiles|WMake"
+ AND CMAKE_DEPFILE_FLAGS_HIP)
+ # dependencies are computed by the compiler itself
+ set(CMAKE_HIP_DEPFILE_FORMAT gcc)
+ set(CMAKE_HIP_DEPENDS_USE_COMPILER TRUE)
+ endif()
+endif()
diff --git a/Modules/Platform/Windows-Clang.cmake b/Modules/Platform/Windows-Clang.cmake
index 5edcb61..33d271d 100644
--- a/Modules/Platform/Windows-Clang.cmake
+++ b/Modules/Platform/Windows-Clang.cmake
@@ -157,24 +157,36 @@ macro(__enable_llvm_rc_preprocessing clang_option_prefix extra_pp_flags)
endif()
endmacro()
+macro(__verify_same_language_values variable)
+ foreach(lang "C" "CXX" "HIP")
+ if(DEFINED CMAKE_${lang}_${variable})
+ list(APPEND __LANGUAGE_VALUES_${variable} "${CMAKE_${lang}_${variable}}")
+ endif()
+ endforeach()
+ list(REMOVE_DUPLICATES __LANGUAGE_VALUES_${variable})
+ list(LENGTH __LANGUAGE_VALUES_${variable} __NUM_VALUES)
+
+ if(__NUM_VALUES GREATER 1)
+ message(FATAL_ERROR ${ARGN})
+ endif()
+ unset(__NUM_VALUES)
+ unset(__LANGUAGE_VALUES_${variable})
+endmacro()
if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC"
- OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+ OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC"
+ OR "x${CMAKE_HIP_SIMULATE_ID}" STREQUAL "xMSVC")
- if ( DEFINED CMAKE_C_COMPILER_ID AND DEFINED CMAKE_CXX_COMPILER_ID
- AND NOT "x${CMAKE_C_COMPILER_ID}" STREQUAL "x${CMAKE_CXX_COMPILER_ID}")
- message(FATAL_ERROR "The current configuration mixes Clang and MSVC or "
- "some other CL compatible compiler tool. This is not supported. "
- "Use either clang or MSVC as both C and C++ compilers.")
- endif()
+ __verify_same_language_values(COMPILER_ID
+ "The current configuration mixes Clang and MSVC or "
+ "some other CL compatible compiler tool. This is not supported. "
+ "Use either clang or MSVC as both C, C++ and/or HIP compilers.")
- if ( DEFINED CMAKE_C_COMPILER_FRONTEND_VARIANT AND DEFINED CMAKE_CXX_COMPILER_FRONTEND_VARIANT
- AND NOT "x${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}")
- message(FATAL_ERROR "The current configuration uses the Clang compiler "
- "tool with mixed frontend variants, both the GNU and in MSVC CL "
- "like variants. This is not supported. Use either clang/clang++ "
- "or clang-cl as both C and C++ compilers.")
- endif()
+ __verify_same_language_values(COMPILER_FRONTEND_VARIANT
+ "The current configuration uses the Clang compiler "
+ "tool with mixed frontend variants, both the GNU and in MSVC CL "
+ "like variants. This is not supported. Use either clang/clang++ "
+ "or clang-cl as both C, C++ and/or HIP compilers.")
if(NOT CMAKE_RC_COMPILER_INIT)
# Check if rc is already in the path
@@ -194,7 +206,10 @@ if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC"
unset(__RC_COMPILER_PATH CACHE)
endif()
- if ( "x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC" OR "x${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC" )
+ if ( "x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC"
+ OR "x${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC"
+ OR "x${CMAKE_HIP_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
+
include(Platform/Windows-MSVC)
# Set the clang option forwarding prefix for clang-cl usage in the llvm-rc processing stage
__enable_llvm_rc_preprocessing("-clang:" "")
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index 45504d4..a61c6d8 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 24)
-set(CMake_VERSION_PATCH 20221007)
+set(CMake_VERSION_MINOR 25)
+set(CMake_VERSION_PATCH 20221012)
#set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0)
diff --git a/Source/CTest/cmCTestMemCheckHandler.cxx b/Source/CTest/cmCTestMemCheckHandler.cxx
index 788845b..6f6a642 100644
--- a/Source/CTest/cmCTestMemCheckHandler.cxx
+++ b/Source/CTest/cmCTestMemCheckHandler.cxx
@@ -1177,6 +1177,13 @@ bool cmCTestMemCheckHandler::ProcessMemCheckCudaOutput(
// generic error: ignore ERROR SUMMARY, CUDA-MEMCHECK and others
"== ([A-Z][a-z].*)"
};
+ // matchers for messages that aren't defects, but caught by above matchers
+ std::vector<cmsys::RegularExpression> false_positive_matchers{
+ "== Error: No attachable process found.*timed-out",
+ "== Default timeout can be adjusted with --launch-timeout",
+ "== Error: Target application terminated before first instrumented API",
+ "== Tracking kernels launched by child processes requires"
+ };
std::vector<std::string::size_type> nonMemcheckOutput;
auto sttime = std::chrono::steady_clock::now();
@@ -1196,11 +1203,17 @@ bool cmCTestMemCheckHandler::ProcessMemCheckCudaOutput(
if (leakExpr.find(line)) {
failure = static_cast<int>(this->FindOrAddWarning("Memory leak"));
} else {
- for (auto& matcher : matchers) {
- if (matcher.find(line)) {
+ auto match_predicate =
+ [&line](cmsys::RegularExpression& matcher) -> bool {
+ return matcher.find(line);
+ };
+ auto const pos_matcher =
+ std::find_if(matchers.begin(), matchers.end(), match_predicate);
+ if (pos_matcher != matchers.end()) {
+ if (!std::any_of(false_positive_matchers.begin(),
+ false_positive_matchers.end(), match_predicate)) {
failure =
- static_cast<int>(this->FindOrAddWarning(matcher.match(1)));
- break;
+ static_cast<int>(this->FindOrAddWarning(pos_matcher->match(1)));
}
}
}
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index 53cb030..6195d1f 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -8760,7 +8760,11 @@ std::string cmGeneratorTarget::GenerateHeaderSetVerificationFile(
cmGeneratedFileStream fout(filename);
fout.SetCopyIfDifferent(true);
- fout << "#include <" << headerFilename << ">\n";
+ // IWYU pragma: associated allows include what you use to
+ // consider the headerFile as part of the entire language
+ // unit within include-what-you-use and as a result allows
+ // one to get IWYU advice for headers :)
+ fout << "#include <" << headerFilename << "> // IWYU pragma: associated\n";
fout.close();
return filename;
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index defcba3..2a50dd3 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -1030,10 +1030,14 @@ void cmLocalGenerator::AddCompileOptions(std::vector<BT<std::string>>& flags,
// Add Warning as errors flags
if (!this->GetCMakeInstance()->GetIgnoreWarningAsError()) {
const cmValue wError = target->GetProperty("COMPILE_WARNING_AS_ERROR");
- const cmValue wErrorFlag = this->Makefile->GetDefinition(
+ const cmValue wErrorOpts = this->Makefile->GetDefinition(
cmStrCat("CMAKE_", lang, "_COMPILE_OPTIONS_WARNING_AS_ERROR"));
- if (wError.IsOn() && wErrorFlag.IsSet()) {
- flags.emplace_back(wErrorFlag);
+ if (wError.IsOn() && wErrorOpts.IsSet()) {
+ std::string wErrorFlags;
+ this->AppendCompileOptions(wErrorFlags, *wErrorOpts);
+ if (!wErrorFlags.empty()) {
+ flags.emplace_back(std::move(wErrorFlags));
+ }
}
}
diff --git a/Tests/CheckSourceTree/CMakeLists.txt b/Tests/CheckSourceTree/CMakeLists.txt
index d5019d2..3abc6a9 100644
--- a/Tests/CheckSourceTree/CMakeLists.txt
+++ b/Tests/CheckSourceTree/CMakeLists.txt
@@ -1,6 +1,6 @@
add_test(NAME CMake.CheckSourceTree
- COMMAND ${CMAKE_COMMAND} -D GIT_EXECUTABLE=${GIT_EXECUTABLE}
- -D CMake_SOURCE_DIR=${CMake_SOURCE_DIR}
- -P ${CMAKE_CURRENT_LIST_DIR}/check.cmake
+ COMMAND ${CMAKE_CMAKE_COMMAND} -D GIT_EXECUTABLE=${GIT_EXECUTABLE}
+ -D CMake_SOURCE_DIR=${CMake_SOURCE_DIR}
+ -P ${CMAKE_CURRENT_LIST_DIR}/check.cmake
)
set_property(TEST CMake.CheckSourceTree PROPERTY RUN_SERIAL 1)
diff --git a/Tests/Fortran/CMakeLists.txt b/Tests/Fortran/CMakeLists.txt
index cdc08c4..0fede25 100644
--- a/Tests/Fortran/CMakeLists.txt
+++ b/Tests/Fortran/CMakeLists.txt
@@ -123,7 +123,7 @@ endfunction()
# if the id's match or the compilers are compatible, then
# call the test_fortran_c_interface_module function
if("${CMAKE_Fortran_COMPILER_ID}:${CMAKE_C_COMPILER_ID}" MATCHES
- "(Intel(LLVM)?:MSVC|Absoft:GNU)"
+ "(Intel(LLVM)?:MSVC|Absoft:GNU|LLVMFlang:(GNU|Clang))"
OR ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "${CMAKE_C_COMPILER_ID}" ))
test_fortran_c_interface_module()
else()
diff --git a/Tests/FortranC/CMakeLists.txt b/Tests/FortranC/CMakeLists.txt
index 83c2729..1403aa0 100644
--- a/Tests/FortranC/CMakeLists.txt
+++ b/Tests/FortranC/CMakeLists.txt
@@ -3,7 +3,7 @@ project(FortranC C Fortran)
# Skip this test for compilers not known to be compatible.
if(NOT (CMAKE_C_COMPILER_ID STREQUAL CMAKE_Fortran_COMPILER_ID OR
- "${CMAKE_C_COMPILER_ID}-${CMAKE_Fortran_COMPILER_ID}" MATCHES "^(MSVC-Intel)$"))
+ "${CMAKE_C_COMPILER_ID}-${CMAKE_Fortran_COMPILER_ID}" MATCHES "^(MSVC-Intel|(GNU|Clang)-LLVMFlang)$"))
message(STATUS "${CMAKE_C_COMPILER_ID} C and ${CMAKE_Fortran_COMPILER_ID} Fortran not known to be compatible!")
return()
endif()
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-LLVMFlang-15.0.0.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-LLVMFlang-15.0.0.input
new file mode 100644
index 0000000..5a53c88
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-LLVMFlang-15.0.0.input
@@ -0,0 +1,43 @@
+CMAKE_LANG=Fortran
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_Fortran_COMPILER_ABI=
+CMAKE_Fortran_COMPILER_AR=
+CMAKE_Fortran_COMPILER_ARCHITECTURE_ID=
+CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_Fortran_COMPILER_ID=LLVMFlang
+CMAKE_Fortran_COMPILER_LAUNCHER=
+CMAKE_Fortran_COMPILER_LOADED=1
+CMAKE_Fortran_COMPILER_RANLIB=
+CMAKE_Fortran_COMPILER_TARGET=
+CMAKE_Fortran_COMPILER_VERSION=15.0.0
+CMAKE_Fortran_COMPILER_VERSION_INTERAL=
+Change Dir: /tmp/ii/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_2e9b9/fast && /usr/bin/gmake -f CMakeFiles/cmTC_2e9b9.dir/build.make CMakeFiles/cmTC_2e9b9.dir/build
+gmake[1]: Entering directory '/tmp/ii/CMakeFiles/CMakeTmp'
+Building Fortran object CMakeFiles/cmTC_2e9b9.dir/CMakeFortranCompilerABI.F.o
+/usr/bin/flang-new -v -c /tmp/CMake/Modules/CMakeFortranCompilerABI.F -o CMakeFiles/cmTC_2e9b9.dir/CMakeFortranCompilerABI.F.o
+flang-new version 15.0.0 (Fedora 15.0.0-4.fc38)
+Target: x86_64-redhat-linux-gnu
+Thread model: posix
+InstalledDir: /usr/bin
+Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/12
+Selected GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/12
+Candidate multilib: .@m64
+Candidate multilib: 32@m32
+Selected multilib: .@m64
+ "/usr/bin/flang-new" -fc1 -triple x86_64-redhat-linux-gnu -emit-obj -o CMakeFiles/cmTC_2e9b9.dir/CMakeFortranCompilerABI.F.o -x f95-cpp-input /tmp/CMake/Modules/CMakeFortranCompilerABI.F
+Linking Fortran executable cmTC_2e9b9
+/tmp/CMake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2e9b9.dir/link.txt --verbose=1
+/usr/bin/flang-new -v CMakeFiles/cmTC_2e9b9.dir/CMakeFortranCompilerABI.F.o -o cmTC_2e9b9
+flang-new version 15.0.0 (Fedora 15.0.0-4.fc38)
+Target: x86_64-redhat-linux-gnu
+Thread model: posix
+InstalledDir: /usr/bin
+Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/12
+Selected GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/12
+Candidate multilib: .@m64
+Candidate multilib: 32@m32
+Selected multilib: .@m64
+ "/usr/bin/ld" --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_2e9b9 /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../lib64/crt1.o /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../lib64/crti.o /usr/bin/../lib/gcc/x86_64-redhat-linux/12/crtbegin.o -L/usr/bin/../lib/gcc/x86_64-redhat-linux/12 -L/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/lib -L/usr/lib CMakeFiles/cmTC_2e9b9.dir/CMakeFortranCompilerABI.F.o -lFortran_main -lFortranRuntime -lFortranDecimal -lm -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/bin/../lib/gcc/x86_64-redhat-linux/12/crtend.o /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../lib64/crtn.o
+gmake[1]: Leaving directory '/tmp/ii/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake b/Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake
index 691c495..df4ef1f 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake
@@ -38,6 +38,7 @@ set(targets
linux-C-XL-16.1.0.0 linux-CXX-XL-16.1.0.0
linux-CUDA-NVIDIA-10.1.168-CLANG linux-CUDA-NVIDIA-10.1.168-XLClang-v
linux-CUDA-NVIDIA-9.2.148-GCC
+ linux-Fortran-LLVMFlang-15.0.0
linux-custom_clang-C-Clang-13.0.0 linux-custom_clang-CXX-Clang-13.0.0
mingw.org-C-GNU-4.9.3 mingw.org-CXX-GNU-4.9.3
netbsd-C-GNU-4.8.5 netbsd-CXX-GNU-4.8.5
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-LLVMFlang-15.0.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-LLVMFlang-15.0.0.output
new file mode 100644
index 0000000..cea8a68
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-LLVMFlang-15.0.0.output
@@ -0,0 +1,2 @@
+libs=Fortran_main;FortranRuntime;FortranDecimal;m;gcc;gcc_s;c;gcc;gcc_s
+dirs=/usr/lib/gcc/x86_64-redhat-linux/12;/usr/lib64;/lib64;/lib;/usr/lib
diff --git a/Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake b/Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake
index 100f482..4d5508d 100644
--- a/Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake
+++ b/Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake
@@ -9,7 +9,7 @@ function(check_file target filename)
if(filename MATCHES "^(.*)(\\.[a-z]+)$")
set(header_filename "${CMAKE_MATCH_1}")
endif()
- set(expected_contents "#include <${header_filename}>\n")
+ set(expected_contents "#include <${header_filename}> // IWYU pragma: associated\n")
file(READ "${full_filename}" actual_contents)
if(NOT actual_contents STREQUAL expected_contents)
diff --git a/Tests/RunCMake/ctest_memcheck/testCudaSanitizer.cmake b/Tests/RunCMake/ctest_memcheck/testCudaSanitizer.cmake
index adc7a1a..850f72c 100644
--- a/Tests/RunCMake/ctest_memcheck/testCudaSanitizer.cmake
+++ b/Tests/RunCMake/ctest_memcheck/testCudaSanitizer.cmake
@@ -277,3 +277,12 @@ file(APPEND "${LOG_FILE}"
=========
========= RACECHECK SUMMARY: 12 hazards displayed (0 errors, 12 warnings)
")
+
+# false-positives
+file(APPEND "${LOG_FILE}"
+"========= COMPUTE-SANITIZER
+========= Error: Target application terminated before first instrumented API call
+========= Tracking kernels launched by child processes requires the --target-processes all option.
+========= Error: No attachable process found. compute-sanitizer timed-out.
+========= Default timeout can be adjusted with --launch-timeout. Awaiting target completion.
+")
diff --git a/Tests/RunCMake/install/DIRECTORY-symlink-clobber-all-stdout.txt b/Tests/RunCMake/install/DIRECTORY-symlink-clobber-all-stdout.txt
index db8ca10..c520de1 100644
--- a/Tests/RunCMake/install/DIRECTORY-symlink-clobber-all-stdout.txt
+++ b/Tests/RunCMake/install/DIRECTORY-symlink-clobber-all-stdout.txt
@@ -6,7 +6,7 @@
]*/Tests/RunCMake/install/DIRECTORY-symlink-clobber-build/root-all/dest/lnk
-- Installing: [^
]*/Tests/RunCMake/install/DIRECTORY-symlink-clobber-build/root-all/dest/lnk
--- Up-to-date: [^
+-- (Up-to-date|Installing): [^
]*/Tests/RunCMake/install/DIRECTORY-symlink-clobber-build/root-all/dest/lnk/file
-- Installing: [^
]*/Tests/RunCMake/install/DIRECTORY-symlink-clobber-build/root-all/dest/dir
diff --git a/Utilities/Sphinx/cmake.py b/Utilities/Sphinx/cmake.py
index 9215e14..c7b1233 100644
--- a/Utilities/Sphinx/cmake.py
+++ b/Utilities/Sphinx/cmake.py
@@ -59,12 +59,6 @@ CMakeLexer.tokens["root"] = [
from docutils.parsers.rst import Directive, directives
from docutils.transforms import Transform
-try:
- from docutils.utils.error_reporting import SafeString, ErrorString
-except ImportError:
- # error_reporting was not in utils before version 0.11:
- from docutils.error_reporting import SafeString, ErrorString
-
from docutils import io, nodes
from sphinx.directives import ObjectDescription
@@ -130,13 +124,13 @@ class CMakeModule(Directive):
f = io.FileInput(source_path=path, encoding=encoding,
error_handler=e_handler)
except UnicodeEncodeError as error:
- raise self.severe('Problems with "%s" directive path:\n'
- 'Cannot encode input file path "%s" '
- '(wrong locale?).' %
- (self.name, SafeString(path)))
+ msg = ('Problems with "%s" directive path:\n'
+ 'Cannot encode input file path "%s" '
+ '(wrong locale?).' % (self.name, path))
+ raise self.severe(msg)
except IOError as error:
- raise self.severe('Problems with "%s" directive path:\n%s.' %
- (self.name, ErrorString(error)))
+ msg = 'Problems with "%s" directive path:\n%s.' % (self.name, error)
+ raise self.severe(msg)
raw_lines = f.read().splitlines()
f.close()
rst = None