diff options
Diffstat (limited to 'Help/release')
-rw-r--r-- | Help/release/3.0.rst | 2 | ||||
-rw-r--r-- | Help/release/3.11.rst | 2 | ||||
-rw-r--r-- | Help/release/3.12.rst | 4 | ||||
-rw-r--r-- | Help/release/3.20.rst | 6 | ||||
-rw-r--r-- | Help/release/3.21.rst | 14 | ||||
-rw-r--r-- | Help/release/3.23.rst | 11 | ||||
-rw-r--r-- | Help/release/3.24.rst | 36 | ||||
-rw-r--r-- | Help/release/3.25.rst | 259 | ||||
-rw-r--r-- | Help/release/3.3.rst | 2 | ||||
-rw-r--r-- | Help/release/3.4.rst | 2 | ||||
-rw-r--r-- | Help/release/3.7.rst | 2 | ||||
-rw-r--r-- | Help/release/index.rst | 1 |
12 files changed, 304 insertions, 37 deletions
diff --git a/Help/release/3.0.rst b/Help/release/3.0.rst index 64491e3..e37c130 100644 --- a/Help/release/3.0.rst +++ b/Help/release/3.0.rst @@ -11,7 +11,7 @@ Documentation Changes ===================== * The CMake documentation has been converted to reStructuredText and - now transforms via Sphinx (`<http://sphinx-doc.org>`__) into man and + now transforms via Sphinx (`<https://www.sphinx-doc.org>`__) into man and html pages. This allows the documentation to be properly indexed and to contain cross-references. diff --git a/Help/release/3.11.rst b/Help/release/3.11.rst index a80657d..957dd4f 100644 --- a/Help/release/3.11.rst +++ b/Help/release/3.11.rst @@ -174,7 +174,7 @@ Modules to removal of the ``javah`` tool by `JEP 313`_. .. _`FLAME`: https://github.com/flame -.. _`JEP 313`: http://openjdk.java.net/jeps/313 +.. _`JEP 313`: https://openjdk.java.net/jeps/313 Autogen ------- diff --git a/Help/release/3.12.rst b/Help/release/3.12.rst index 481027e..dcdae1d 100644 --- a/Help/release/3.12.rst +++ b/Help/release/3.12.rst @@ -242,7 +242,7 @@ CPack * A :cpack_gen:`CPack NuGet Generator` was was added with basic support for `NuGet`_. -.. _NuGet: https://docs.microsoft.com/en-us/nuget/what-is-nuget +.. _NuGet: https://learn.microsoft.com/en-us/nuget/what-is-nuget Other ----- @@ -302,4 +302,4 @@ Other Changes (and legacy ``swig_add_module`` command) now set the prefix of Java modules to ``""`` for MINGW, MSYS, and CYGWIN environments. -.. _`Fortran Submodules`: http://fortranwiki.org/fortran/show/Submodules +.. _Fortran Submodules: https://fortranwiki.org/fortran/show/Submodules diff --git a/Help/release/3.20.rst b/Help/release/3.20.rst index 42e95be..40cac41 100644 --- a/Help/release/3.20.rst +++ b/Help/release/3.20.rst @@ -217,8 +217,8 @@ Autogen CTest ----- -* :manual:`ctest(1)` gained a ``--test-dir`` option to specify the directory - in which to look for tests. +* :manual:`ctest(1)` gained a :option:`--test-dir <ctest --test-dir>` + option to specify the directory in which to look for tests. CPack ----- @@ -263,7 +263,7 @@ CPack :variable:`CPACK_NUGET_<compName>_PACKAGE_LANGUAGE` allow the locale for a package to be specified, for example ``en_CA``. -.. _Software Package Data Exchange: https://spdx.org/ +.. _Software Package Data Exchange: https://spdx.dev/ Deprecated and Removed Features =============================== diff --git a/Help/release/3.21.rst b/Help/release/3.21.rst index 462d2be..91c3768 100644 --- a/Help/release/3.21.rst +++ b/Help/release/3.21.rst @@ -49,15 +49,15 @@ Languages Command-Line ------------ -* :manual:`cmake(1)` gained the ``--install-prefix <dir>`` +* :manual:`cmake(1)` gained the :option:`--install-prefix <cmake --install-prefix>` command-line option to specify the location of the install prefix. -* :manual:`cmake(1)` gained the ``--toolchain <path/to/file>`` +* :manual:`cmake(1)` gained the :option:`--toolchain <cmake --toolchain>` command-line option to specify a toolchain file. -* :manual:`cmake(1)` ``-E capabilities`` output, for some generators, - may now contain a ``supportedPlatforms`` field listing platforms - known to be supported in :variable:`CMAKE_GENERATOR_PLATFORM`. +* :manual:`cmake(1)` :option:`-E capabilities <cmake-E capabilities>` output, + for some generators, may now contain a ``supportedPlatforms`` field listing + platforms known to be supported in :variable:`CMAKE_GENERATOR_PLATFORM`. * Messages printed to a terminal now may be colored by message type. @@ -208,8 +208,8 @@ CTest :prop_test:`ATTACHED_FILES_ON_FAIL` test properties. See :ref:`Additional Test Measurements` for more information. -* :manual:`ctest(1)` gained a ``--output-junit`` option to write test results - to a JUnit XML file. +* :manual:`ctest(1)` gained a :option:`--output-junit <ctest --output-junit>` + option to write test results to a JUnit XML file. * The :command:`ctest_build` command gained a ``PARALLEL_LEVEL`` option. diff --git a/Help/release/3.23.rst b/Help/release/3.23.rst index 47b1869..6376d77 100644 --- a/Help/release/3.23.rst +++ b/Help/release/3.23.rst @@ -43,19 +43,22 @@ Generators Command-Line ------------ -* The :manual:`cmake(1)` ``--build`` command, when used with +* The :manual:`cmake(1)` :option:`--build <cmake --build>` command, when used with :ref:`Visual Studio Generators` on projects that set the :prop_tgt:`VS_PACKAGE_REFERENCES` target property, now automatically restores package references from NuGet. The cache variable :variable:`CMAKE_VS_NUGET_PACKAGE_RESTORE` may be set to toggle this behavior - in a build tree. Use the ``--resolve-package-references=<on|off|only>`` + in a build tree. Use the + :option:`--resolve-package-references <cmake--build --resolve-package-references>` command-line option to control the behavior on one invocation. -* The :manual:`cmake(1)` command line tool gained a ``--debug-find-pkg=`` +* The :manual:`cmake(1)` command line tool gained a + :option:`--debug-find-pkg <cmake --debug-find-pkg>` option to enable debug messages under specific :command:`find_package` calls. -* The :manual:`cmake(1)` command line tool gained a ``--debug-find-var=`` +* The :manual:`cmake(1)` command line tool gained a + :option:`--debug-find-var <cmake --debug-find-var>` option to enable debug messages for ``find_*`` calls that use specific result variables. diff --git a/Help/release/3.24.rst b/Help/release/3.24.rst index e81dadc..e7ddf2a 100644 --- a/Help/release/3.24.rst +++ b/Help/release/3.24.rst @@ -34,25 +34,28 @@ Generators Command-Line ------------ -* :manual:`cmake(1)` gained the ``--fresh`` command-line option to remove - any existing ``CMakeCache.txt`` file and associated ``CMakeFiles/`` +* :manual:`cmake(1)` gained the :option:`--fresh <cmake --fresh>` command-line + option to remove any existing ``CMakeCache.txt`` file and associated ``CMakeFiles/`` directory, when configuring a build tree, thus starting a new configuration as if the build tree were freshly created. -* :manual:`cmake(1)` gained the ``--compile-no-warning-as-error`` command-line - option which causes the effects of the :prop_tgt:`COMPILE_WARNING_AS_ERROR` - target property and :variable:`CMAKE_COMPILE_WARNING_AS_ERROR` variable - to be ignored. +* :manual:`cmake(1)` gained the + :option:`--compile-no-warning-as-error <cmake --compile-no-warning-as-error>` + command-line option which causes the effects of the + :prop_tgt:`COMPILE_WARNING_AS_ERROR` target property and + :variable:`CMAKE_COMPILE_WARNING_AS_ERROR` variable to be ignored. -* The :manual:`cmake(1)` ``--trace=json-v1`` trace format gained fields - ``global_frame`` and ``line_end``. +* The :manual:`cmake(1)` :option:`--trace=json-v1 <cmake --trace>` trace + format gained fields ``global_frame`` and ``line_end``. -* The :manual:`cmake(1)` ``-E`` commands ``cat`` and ``env`` learned to respect - a double dash (``--``) argument that acts as a delimiter indicating the end of - options. Any following arguments are treated as operands/positional arguments, - even if they begin with a dash ``-`` character. +* The :manual:`cmake(1)` :option:`-E <cmake -E>` commands :option:`cat <cmake-E cat>` + and :option:`env <cmake-E env>` learned to respect a double dash + (:option:`-- <cmake-E_env -->`) argument that acts as a delimiter indicating + the end of options. Any following arguments are treated as operands/positional + arguments, even if they begin with a dash ``-`` character. -* The :manual:`cmake(1)` ``-E tar`` command gained the ``--touch`` option +* The :manual:`cmake(1)` :option:`-E tar <cmake-E tar>` command gained the + :option:`--touch <cmake-E_tar --touch>` option to keep the current local timestamp instead of extracting file timestamps from the archive. @@ -289,9 +292,10 @@ Generator Expressions CTest ----- -* :manual:`ctest(1)` gained a ``--test-output-truncation`` option (and - corresponding :variable:`CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION` variable) to - specify the truncation mode once the maximum test output size has been +* :manual:`ctest(1)` gained a + :option:`--test-output-truncation <ctest --test-output-truncation>` option + (and corresponding :variable:`CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION` variable) + to specify the truncation mode once the maximum test output size has been reached. Possible values are ``tail`` (default), ``middle`` or ``head``. CPack diff --git a/Help/release/3.25.rst b/Help/release/3.25.rst new file mode 100644 index 0000000..2d04741 --- /dev/null +++ b/Help/release/3.25.rst @@ -0,0 +1,259 @@ +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`. + +* The :manual:`cmake-presets(7)` format now supports an + ``outputJUnitFile`` field to specify JUnit output in test presets. + +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 :option:`cmake --workflow --preset <cmake--workflow --preset>` 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://www.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's :command:`FetchContent_Declare` + command gained a ``SYSTEM`` option which sets the :prop_dir:`SYSTEM` + directory property on subdirectories created by + :command:`FetchContent_MakeAvailable`. + +* 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 +============= + +* 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`. + +Updates +======= + +Changes made since CMake 3.25.0 include the following. + +3.25.1 +------ + +* On Windows, when targeting the MSVC ABI, the :command:`find_library` + command no longer accepts ``.a`` file names. This behavior was added + in CMake 3.25.0, but has been reverted due finding GNU-ABI libraries + in cases we did not previously. + +3.25.2 +------ + +* CUDA language level 20 (corresponding to C++20) is now supported with + NVCC 12.0 and above. + +* On Windows, the ``icpx`` compiler now provided by Intel oneAPI 2023.0 + and above is no longer selected because its GNU-like command-line is + not yet supported by CMake. diff --git a/Help/release/3.3.rst b/Help/release/3.3.rst index 44f4e19..2dc237f 100644 --- a/Help/release/3.3.rst +++ b/Help/release/3.3.rst @@ -26,7 +26,7 @@ Generators added on Windows. `Green Hills MULTI`_ is an IDE for embedded real-time systems. -.. _`Green Hills MULTI`: http://www.ghs.com/products/MULTI_IDE.html +.. _`Green Hills MULTI`: https://www.ghs.com/products/MULTI_IDE.html Commands -------- diff --git a/Help/release/3.4.rst b/Help/release/3.4.rst index 943d267..abfede6 100644 --- a/Help/release/3.4.rst +++ b/Help/release/3.4.rst @@ -227,7 +227,7 @@ Other will be merged with linker-generated manifests and embedded in the binary. -* The `Concurrent Fortran 77 <https://ccur.com>`__ compiler is now supported. +* The Concurrent Fortran 77 compiler is now supported. Its :variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` is ``CCur``. * :manual:`cmake(1)` gained a new ``--trace-expand`` command line option diff --git a/Help/release/3.7.rst b/Help/release/3.7.rst index 345c056..9656a54 100644 --- a/Help/release/3.7.rst +++ b/Help/release/3.7.rst @@ -315,5 +315,5 @@ Other Changes * Vim support files ``indent/cmake.vim`` and ``syntax/cmake.vim`` from the `vim-cmake-syntax`_ project are now distributed with CMake. -.. _`Fortran Submodules`: http://fortranwiki.org/fortran/show/Submodules +.. _`Fortran Submodules`: https://fortranwiki.org/fortran/show/Submodules .. _`vim-cmake-syntax`: https://github.com/pboettch/vim-cmake-syntax diff --git a/Help/release/index.rst b/Help/release/index.rst index 4dfac8a..b6ecf7b 100644 --- a/Help/release/index.rst +++ b/Help/release/index.rst @@ -13,6 +13,7 @@ Releases .. toctree:: :maxdepth: 1 + 3.25 <3.25> 3.24 <3.24> 3.23 <3.23> 3.22 <3.22> |