diff options
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 |