diff options
Diffstat (limited to 'Help/release')
57 files changed, 278 insertions, 379 deletions
diff --git a/Help/release/3.20.rst b/Help/release/3.20.rst new file mode 100644 index 0000000..92ed11e --- /dev/null +++ b/Help/release/3.20.rst @@ -0,0 +1,277 @@ +CMake 3.20 Release Notes +************************ + +.. only:: html + + .. contents:: + +Changes made since CMake 3.19 include the following. + +* The :variable:`CMAKE_<LANG>_BYTE_ORDER` variable was added to provide the + target architecture byte order detected from the toolchain. + +* The :module:`AddFileDependencies` module is deprecated. + Port projects to use :command:`set_property` directly. + +* The :command:`target_include_directories` command gained a new option + ``AFTER``. + +* On AIX, installation of XCOFF executables and shared libraries + no longer requires relinking to change the runtime search path + from the build-tree RPATH to the install-tree RPATH. CMake now + edits the XCOFF binaries directly during installation, as has + long been done on ELF platforms. + +* CMake's support for :ref:`Cross Compiling for Android` + is now merged with the Android NDK's toolchain file. + They now have similar behavior, though some variable names differ. + User-facing changes include: + + - ``find_*`` functions will search NDK ABI / API specific paths by default. + + - The default :variable:`CMAKE_BUILD_TYPE` for Android is + now ``RelWithDebInfo``. + +* :manual:`cmake-presets(7)` gained support for build and test presets. + +* The target property :prop_tgt:`<LANG>_CLANG_TIDY` and the associated + variable :variable:`CMAKE_<LANG>_CLANG_TIDY` learned to support OBJC and OBJCXX. + +* :prop_tgt:`WIN32_EXECUTABLE` now works on Windows with Clang. + +* The :command:`cmake_path` command was added for operations on + filesystem paths. + +* The :command:`configure_file` command gained a ``USE_SOURCE_PERMISSIONS`` + and ``FILE_PERMISSIONS`` option to support copying of permissions of source + file and specifying user defined permissions. + +* :module:`CPack` gained the :variable:`CPACK_THREADS` variable to + control the number of threads used for parallelized operations, + such as compressing the installer package. + +* The :module:`CPackDeb` module learned a new + :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS` + variable to specify additional search directories for + resolving private library dependencies when using + ``dpkg-shlibdeps``. + +* The :cpack_gen:`CPack IFW Generator` gained new + :variable:`CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST` variable to + control visibility of the widget listing installer pages on the left side + of the wizard. This feature available only since QtIFW 4.0. + +* The :cpack_gen:`CPack NSIS Generator` gained new variables + :variable:`CPACK_NSIS_BRANDING_TEXT` and + :variable:`CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION` to change the + text at the bottom of the install window and change its trim position + +* The :cpack_gen:`CPack NSIS Generator` now handles correctly Unicode characters. + If you want to have a ``CPACK_RESOURCE_FILE_LICENSE`` with UTF-8 characters + it needs to be encoded in UTF-8 BOM. + +* The :cpack_gen:`CPack NuGet Generator` gained options: + + - :variable:`CPACK_NUGET_PACKAGE_ICON` and + :variable:`CPACK_NUGET_<compName>_PACKAGE_ICON` + allow package icons to be specified by local files. + - :variable:`CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION` and + :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSE_EXPRESSION` add + support for specifying licenses recognized by the + `Software Package Data Exchange`_ (SPDX). + - :variable:`CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME` and + :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSE_FILE_NAME` allow + licenses to be specified by local files. + - :variable:`CPACK_NUGET_PACKAGE_LANGUAGE` and + :variable:`CPACK_NUGET_<compName>_PACKAGE_LANGUAGE` allow the locale + for a package to be specified, for example ``en_CA``. + + Some other variables have been deprecated to reflect changes in the + NuGet specification: + + - :variable:`CPACK_NUGET_PACKAGE_ICONURL` and + :variable:`CPACK_NUGET_<compName>_PACKAGE_ICONURL` have been deprecated; + replace with a reference to a local icon file. + - :variable:`CPACK_NUGET_PACKAGE_LICENSEURL` and + :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSEURL` have been deprecated; + replace with a reference to the project's license file or SPDX + license expression. + +.. _Software Package Data Exchange: https://spdx.org/ + +* :prop_tgt:`CXX_STANDARD`, :prop_tgt:`CUDA_STANDARD`, + :prop_tgt:`OBJCXX_STANDARD` and the + :manual:`Compile Features <cmake-compile-features(7)>` functionality gained + support for C++23. + +* :manual:`ctest(1)` gained a ``--test-dir`` option to specify the directory + in which to look for tests. + +* The :envvar:`CUDAARCHS` environment variable was added for initializing + :variable:`CMAKE_CUDA_ARCHITECTURES`. Useful in cases where the compiler + default is unsuitable for the machine's GPU. + +* ``CUDA`` language support now works when ``nvcc`` is a symbolic link, + for example due to a ``ccache`` or ``colornvcc`` wrapper script. + +* The :module:`FindCUDAToolkit` module gained support for finding CUDA + toolkits when ``nvcc`` is a symbolic link, + for example due to a ``ccache`` or ``colornvcc`` wrapper script. + +* :command:`add_custom_command` and :command:`add_custom_target` now + support :manual:`generator expressions <cmake-generator-expressions(7)>` + in their ``OUTPUT`` and ``BYPRODUCTS`` options. + + Their ``COMMAND``, ``WORKING_DIRECTORY``, and ``DEPENDS`` options gained + support for new generator expressions ``$<COMMAND_CONFIG:...>`` and + ``$<OUTPUT_CONFIG:...>`` that control cross-config handling when using + the :generator:`Ninja Multi-Config` generator. + +* The :prop_sf:`LANGUAGE` source file property now forces compilation + as the specified language. See policy :policy:`CMP0119`. + +* Source file extensions must now be explicit. See policy :policy:`CMP0115` for + details. + +* The :prop_tgt:`EXPORT_COMPILE_COMMANDS` target property was added + for the associated :variable:`CMAKE_EXPORT_COMPILE_COMMANDS` variable + to allow for configuration of exporting compile commands per target. + +* The :module:`ExternalData` module ``ExternalData_add_target`` now supports a + ``SHOW_PROGRESS <bool>`` argument to suppress progress output during the + build. + +* The :module:`ExternalProject` function ``ExternalProject_Add`` learned a new + ``CONFIGURE_HANDLED_BY_BUILD`` option to have subsequent runs of the configure + step be triggered by the build step when an external project dependency + rebuilds instead of always rerunning the configure step when an external + project dependency rebuilds. + +* The implementation of the :module:`ExternalProject` module was + significantly refactored. The patch step gained support for + using the terminal with a new ``USES_TERMINAL_PATCH`` keyword + as a by-product of that work. +* The :module:`FetchContent` module no longer creates a separate + sub-build to implement the content population. It now invokes + the step scripts directly from within the main project's + configure stage. This significantly speeds up the configure + phase when the required content is already populated and + up-to-date. + +* The :manual:`cmake-file-api(7)` gained a new "toolchains" object + kind that describes the compiler used for each enabled language. + +* The :command:`file(GENERATE)` command gained ``NEWLINE_STYLE`` option to + support newline style of the generated file. + +* The :command:`file(GENERATE)` command gained ``NO_SOURCE_PERMISSIONS``, + ``USE_SOURCE_PERMISSIONS``, and ``FILE_PERMISSIONS`` options to support + permissions of the generated file. + +* The :module:`FindBoost` module gained a ``Boost_NO_WARN_NEW_VERSIONS`` + option to silence the warning about unknown dependencies for new + Boost versions. + +* The :module:`FindIntl` module now provides an imported target. + +* :module:`FindOpenSSL` module gains the capability to manage a version range. + +* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython` + gain the capability to control how interpreter unversioned names are + searched. + +* The :command:`install(FILES)` command ``RENAME`` option learned to + support :manual:`generator expressions <cmake-generator-expressions(7)>`. + +* The Intel oneAPI NextGen LLVM compilers are now supported with + compiler id ``IntelLLVM``: + + * The ``icx``/``icpx`` C/C++ compilers on Linux, and the ``icx`` + C/C++ compiler on Windows, are fully supported as of oneAPI 2021.1. + + * The ``ifx`` Fortran compiler on Linux is partially supported. + As of oneAPI 2021.1, ``ifx`` does not define several identification + macros, so CMake identifies it as the classic ``Intel`` compiler. + This works in many cases because ``ifx`` accepts the same command line + parameters as ``ifort``. + + * The ``ifx`` Fortran compiler on Windows is not yet supported. + + The Intel oneAPI Classic compilers (``icc``, ``icpc``, and ``ifort``) + continue to be supported with compiler id ``Intel``. + +* ``add_jar()`` command, from :module:`UseJava` module, gains new capabilities + for ``GENERATE_NATIVE_HEADERS`` option. These capabilities facilitate the + exportation of the generated target. + +* The :command:`add_custom_command` command gained ``DEPFILE`` support on + :ref:`Makefile Generators`. + +* The :ref:`Makefile Generators` gained the capability, for a selection of + compilers, to use the compiler itself to generate implicit dependencies. + +* The :prop_sf:`GENERATED` source-file property is now visible + from any directory scope, regardles in which scope or for what + scope it was set. + See policy :policy:`CMP0118`. + +* With MSVC-like compilers the value of + :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` no longer contains + the ``/GR`` flag for runtime type information by default. + See policy :policy:`CMP0117`. + +* Ninja generators now transform ``DEPFILE`` s from + :command:`add_custom_command`. See policy :policy:`CMP0116` for details. + +* The NVIDIA HPC SDK compilers are now supported with compiler id ``NVHPC``. + +* The :command:`add_library` command previously prohibited imported object + libraries when using potentially multi-architecture configurations. + This mostly affected the :generator:`Xcode` generator, e.g. when targeting + iOS or one of the other device platforms. This restriction has now been + removed. + +* The variables :variable:`CMAKE_RUNTIME_OUTPUT_DIRECTORY`, + :variable:`CMAKE_LIBRARY_OUTPUT_DIRECTORY`, and + :variable:`CMAKE_ARCHIVE_OUTPUT_DIRECTORY` now support target-dependent + generator expressions. + +* The :ref:`Qt AUTOMOC` feature now works with per-config sources. + +* The precompiled Linux binaries provided on ``cmake.org`` have changed + their naming pattern to ``cmake-$ver-linux-$arch``, where ``$arch`` + is either ``x86_64`` or ``aarch64``. + +* The precompiled Windows binaries provided on ``cmake.org`` have changed + their naming pattern to ``cmake-$ver-windows-$arch``, where ``$arch`` + is either ``x86_64`` or ``i386``. + +* The :manual:`cmake-server(7)` mode has been removed. + Clients should use the :manual:`cmake-file-api(7)` instead. + +* The :module:`WriteCompilerDetectionHeader` module has been deprecated + via policy :policy:`CMP0120`. Projects should be ported away from it. + +* The :command:`target_sources` now supports custom targets. + +* The :module:`TestBigEndian` module has been deprecated in favor + of the :variable:`CMAKE_<LANG>_BYTE_ORDER` variable. + +* The :command:`try_run` command gained a ``WORKING_DIRECTORY`` option to + support setting of working directory. + +* The :prop_tgt:`UNITY_BUILD_UNIQUE_ID` target property + was added to support generation of an identifier that is + unique per source file in unity builds. It can help to + resolve duplicate symbol problems with anonymous namespaces. + +* :module:`UseSWIG` module gained the capability, for + :ref:`Makefile <Makefile Generators>` and :ref:`Ninja <Ninja Generators>` + generators, to use ``swig`` tool to generate implicit dependencies. + +* When using the Xcode generator, it is now possible to embed frameworks + using the new :prop_tgt:`XCODE_EMBED_FRAMEWORKS <XCODE_EMBED_<type>>` + target property. Aspects of the embedding can be customized with the + :prop_tgt:`XCODE_EMBED_FRAMEWORKS_PATH <XCODE_EMBED_<type>>`, + :prop_tgt:`XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY` and + :prop_tgt:`XCODE_EMBED_FRAMEWORKS_REMOVE_HEADERS_ON_COPY` target properties. diff --git a/Help/release/dev/AddFileDependencies-deprecate.rst b/Help/release/dev/AddFileDependencies-deprecate.rst deleted file mode 100644 index d3946a5..0000000 --- a/Help/release/dev/AddFileDependencies-deprecate.rst +++ /dev/null @@ -1,5 +0,0 @@ -AddFileDependencies-deprecate ------------------------------ - -* The :module:`AddFileDependencies` module is deprecated. - Port projects to use :command:`set_property` directly. diff --git a/Help/release/dev/ExternalData-suppress-progress.rst b/Help/release/dev/ExternalData-suppress-progress.rst deleted file mode 100644 index bf4183f..0000000 --- a/Help/release/dev/ExternalData-suppress-progress.rst +++ /dev/null @@ -1,6 +0,0 @@ -ExternalData-suppress-progress ------------------------------- - -* The :module:`ExternalData` module ``ExternalData_add_target`` now supports a - ``SHOW_PROGRESS <bool>`` argument to suppress progress output during the - build. diff --git a/Help/release/dev/FindBoost-no-warn.rst b/Help/release/dev/FindBoost-no-warn.rst deleted file mode 100644 index f459f2b..0000000 --- a/Help/release/dev/FindBoost-no-warn.rst +++ /dev/null @@ -1,6 +0,0 @@ -FindBoost-no-warn ------------------ - -* The :module:`FindBoost` module gained a ``Boost_NO_WARN_NEW_VERSIONS`` - option to silence the warning about unknown dependencies for new - Boost versions. diff --git a/Help/release/dev/FindIntl-imported-target.rst b/Help/release/dev/FindIntl-imported-target.rst deleted file mode 100644 index 5770f21..0000000 --- a/Help/release/dev/FindIntl-imported-target.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindIntl-imported-target ------------------------- - -* The :module:`FindIntl` module now provides an imported target. diff --git a/Help/release/dev/FindOpenSSL-version-range.rst b/Help/release/dev/FindOpenSSL-version-range.rst deleted file mode 100644 index 660bc75..0000000 --- a/Help/release/dev/FindOpenSSL-version-range.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindOpenSSL-version-range -------------------------- - -* :module:`FindOpenSSL` module gains the capability to manage a version range. diff --git a/Help/release/dev/FindPython-FIND_UNVERSIONED_NAMES.rst b/Help/release/dev/FindPython-FIND_UNVERSIONED_NAMES.rst deleted file mode 100644 index a0b5838..0000000 --- a/Help/release/dev/FindPython-FIND_UNVERSIONED_NAMES.rst +++ /dev/null @@ -1,6 +0,0 @@ -FindPython-FIND_UNVERSIONED_NAMES ---------------------------------- - -* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython` - gain the capability to control how interpreter unversioned names are - searched. diff --git a/Help/release/dev/Java-export-native_headers-target.rst b/Help/release/dev/Java-export-native_headers-target.rst deleted file mode 100644 index 13b6dfb..0000000 --- a/Help/release/dev/Java-export-native_headers-target.rst +++ /dev/null @@ -1,6 +0,0 @@ -Java-export-native_headers-target ---------------------------------- - -* ``add_jar()`` command, from :module:`UseJava` module, gains new capabilities - for ``GENERATE_NATIVE_HEADERS`` option. These capabilities facilitate the - exportation of the generated target. diff --git a/Help/release/dev/OUTPUT_DIRECTORY.rst b/Help/release/dev/OUTPUT_DIRECTORY.rst deleted file mode 100644 index 0a1ddb7..0000000 --- a/Help/release/dev/OUTPUT_DIRECTORY.rst +++ /dev/null @@ -1,7 +0,0 @@ -OUTPUT_DIRECTORY ----------------- - -* The variables :variable:`CMAKE_RUNTIME_OUTPUT_DIRECTORY`, - :variable:`CMAKE_LIBRARY_OUTPUT_DIRECTORY`, and - :variable:`CMAKE_ARCHIVE_OUTPUT_DIRECTORY` now support target-dependent - generator expressions. diff --git a/Help/release/dev/TestBigEndian-use-abi-result.rst b/Help/release/dev/TestBigEndian-use-abi-result.rst deleted file mode 100644 index 1a5bf7f..0000000 --- a/Help/release/dev/TestBigEndian-use-abi-result.rst +++ /dev/null @@ -1,5 +0,0 @@ -TestBigEndian-use-abi-result ----------------------------- - -* The :module:`TestBigEndian` module has been deprecated in favor - of the :variable:`CMAKE_<LANG>_BYTE_ORDER` variable. diff --git a/Help/release/dev/UseSWIG-dependencies.rst b/Help/release/dev/UseSWIG-dependencies.rst deleted file mode 100644 index 805ac8a..0000000 --- a/Help/release/dev/UseSWIG-dependencies.rst +++ /dev/null @@ -1,6 +0,0 @@ -UseSWIG-dependencies --------------------- - -* :module:`UseSWIG` module gained the capability, for - :ref:`Makefile <Makefile Generators>` and :ref:`Ninja <Ninja Generators>` - generators, to use ``swig`` tool to generate implicit dependencies. diff --git a/Help/release/dev/abi-byte-order.rst b/Help/release/dev/abi-byte-order.rst deleted file mode 100644 index e8beebc..0000000 --- a/Help/release/dev/abi-byte-order.rst +++ /dev/null @@ -1,5 +0,0 @@ -abi-byte-order --------------- - -* The :variable:`CMAKE_<LANG>_BYTE_ORDER` variable was added to provide the - target architecture byte order detected from the toolchain. diff --git a/Help/release/dev/after-option-in-target_include-directories.rst b/Help/release/dev/after-option-in-target_include-directories.rst deleted file mode 100644 index f61026c..0000000 --- a/Help/release/dev/after-option-in-target_include-directories.rst +++ /dev/null @@ -1,5 +0,0 @@ -after-option-in-target_include-directories.rst ----------------------------------------------- - -* The :command:`target_include_directories` command gained a new option - ``AFTER``. diff --git a/Help/release/dev/aix-xcoff-edit.rst b/Help/release/dev/aix-xcoff-edit.rst deleted file mode 100644 index be3143d..0000000 --- a/Help/release/dev/aix-xcoff-edit.rst +++ /dev/null @@ -1,8 +0,0 @@ -aix-xcoff-edit --------------- - -* On AIX, installation of XCOFF executables and shared libraries - no longer requires relinking to change the runtime search path - from the build-tree RPATH to the install-tree RPATH. CMake now - edits the XCOFF binaries directly during installation, as has - long been done on ELF platforms. diff --git a/Help/release/dev/android-ndk.rst b/Help/release/dev/android-ndk.rst deleted file mode 100644 index ee4ea5b..0000000 --- a/Help/release/dev/android-ndk.rst +++ /dev/null @@ -1,12 +0,0 @@ -android-ndk ------------ - -* CMake's support for :ref:`Cross Compiling for Android` - is now merged with the Android NDK's toolchain file. - They now have similar behavior, though some variable names differ. - User-facing changes include: - - - ``find_*`` functions will search NDK ABI / API specific paths by default. - - - The default :variable:`CMAKE_BUILD_TYPE` for Android is - now ``RelWithDebInfo``. diff --git a/Help/release/dev/build-test-presets.rst b/Help/release/dev/build-test-presets.rst deleted file mode 100644 index 71d14bf..0000000 --- a/Help/release/dev/build-test-presets.rst +++ /dev/null @@ -1,4 +0,0 @@ -build-test-presets ------------------- - -* :manual:`cmake-presets(7)` gained support for build and test presets. diff --git a/Help/release/dev/clang-tidy-objc.rst b/Help/release/dev/clang-tidy-objc.rst deleted file mode 100644 index c899257..0000000 --- a/Help/release/dev/clang-tidy-objc.rst +++ /dev/null @@ -1,5 +0,0 @@ -clang-tidy-objc ---------------- - -* The target property :prop_tgt:`<LANG>_CLANG_TIDY` and the associated - variable :variable:`CMAKE_<LANG>_CLANG_TIDY` learned to support OBJC and OBJCXX. diff --git a/Help/release/dev/clang-win32-subsystem.rst b/Help/release/dev/clang-win32-subsystem.rst deleted file mode 100644 index c970f53..0000000 --- a/Help/release/dev/clang-win32-subsystem.rst +++ /dev/null @@ -1,4 +0,0 @@ -clang-win32-subsystem ---------------------- - -* :prop_tgt:`WIN32_EXECUTABLE` now works on Windows with Clang. diff --git a/Help/release/dev/cmake_path.rst b/Help/release/dev/cmake_path.rst deleted file mode 100644 index 9d252ae..0000000 --- a/Help/release/dev/cmake_path.rst +++ /dev/null @@ -1,5 +0,0 @@ -cmake_path ----------- - -* The :command:`cmake_path` command was added for operations on - filesystem paths. diff --git a/Help/release/dev/configure_file-user-permissions.rst b/Help/release/dev/configure_file-user-permissions.rst deleted file mode 100644 index b757fb1..0000000 --- a/Help/release/dev/configure_file-user-permissions.rst +++ /dev/null @@ -1,6 +0,0 @@ -configure_file-user-permissions -------------------------------- - -* The :command:`configure_file` command gained a ``USE_SOURCE_PERMISSIONS`` - and ``FILE_PERMISSIONS`` option to support copying of permissions of source - file and specifying user defined permissions. diff --git a/Help/release/dev/cpack-compression-threads.rst b/Help/release/dev/cpack-compression-threads.rst deleted file mode 100644 index 214e1e7..0000000 --- a/Help/release/dev/cpack-compression-threads.rst +++ /dev/null @@ -1,6 +0,0 @@ -cpack-compression-threads -------------------------- - -* :module:`CPack` gained the :variable:`CPACK_THREADS` variable to - control the number of threads used for parallelized operations, - such as compressing the installer package. diff --git a/Help/release/dev/cpack-deb-shlibdeps-private-search-dirs.rst b/Help/release/dev/cpack-deb-shlibdeps-private-search-dirs.rst deleted file mode 100644 index c4a4797..0000000 --- a/Help/release/dev/cpack-deb-shlibdeps-private-search-dirs.rst +++ /dev/null @@ -1,8 +0,0 @@ -cpack-deb-shlibdeps-resolving-private-dependencies --------------------------------------------------- - -* The :module:`CPackDeb` module learned a new - :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS` - variable to specify additional search directories for - resolving private library dependencies when using - ``dpkg-shlibdeps``. diff --git a/Help/release/dev/cpack-nsis-branding-text.rst b/Help/release/dev/cpack-nsis-branding-text.rst deleted file mode 100644 index 28a80ce..0000000 --- a/Help/release/dev/cpack-nsis-branding-text.rst +++ /dev/null @@ -1,7 +0,0 @@ -cpack-nsis-branding-text ------------------------- - -* The :cpack_gen:`CPack NSIS Generator` gained new variables - :variable:`CPACK_NSIS_BRANDING_TEXT` and - :variable:`CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION` to change the - text at the bottom of the install window and change its trim position diff --git a/Help/release/dev/cpack-nsis-utf-8-bom.rst b/Help/release/dev/cpack-nsis-utf-8-bom.rst deleted file mode 100644 index b2a20ce..0000000 --- a/Help/release/dev/cpack-nsis-utf-8-bom.rst +++ /dev/null @@ -1,6 +0,0 @@ -cpack-nsis-utf8-bom -------------------- - -* The :cpack_gen:`CPack NSIS Generator` now handles correctly Unicode characters. - If you want to have a ``CPACK_RESOURCE_FILE_LICENSE`` with UTF-8 characters - it needs to be encoded in UTF-8 BOM. diff --git a/Help/release/dev/cpack-nuget.rst b/Help/release/dev/cpack-nuget.rst deleted file mode 100644 index 2c28b59..0000000 --- a/Help/release/dev/cpack-nuget.rst +++ /dev/null @@ -1,31 +0,0 @@ -cpack-nuget ------------ - -* The :cpack_gen:`CPack NuGet Generator` gained options: - - - :variable:`CPACK_NUGET_PACKAGE_ICON` and - :variable:`CPACK_NUGET_<compName>_PACKAGE_ICON` - allow package icons to be specified by local files. - - :variable:`CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION` and - :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSE_EXPRESSION` add - support for specifying licenses recognized by the - `Software Package Data Exchange`_ (SPDX). - - :variable:`CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME` and - :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSE_FILE_NAME` allow - licenses to be specified by local files. - - :variable:`CPACK_NUGET_PACKAGE_LANGUAGE` and - :variable:`CPACK_NUGET_<compName>_PACKAGE_LANGUAGE` allow the locale - for a package to be specified, for example ``en_CA``. - - Some other variables have been deprecated to reflect changes in the - NuGet specification: - - - :variable:`CPACK_NUGET_PACKAGE_ICONURL` and - :variable:`CPACK_NUGET_<compName>_PACKAGE_ICONURL` have been deprecated; - replace with a reference to a local icon file. - - :variable:`CPACK_NUGET_PACKAGE_LICENSEURL` and - :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSEURL` have been deprecated; - replace with a reference to the project's license file or SPDX - license expression. - -.. _Software Package Data Exchange: https://spdx.org/ diff --git a/Help/release/dev/cpackifw-package-wizard-show-page-list.rst b/Help/release/dev/cpackifw-package-wizard-show-page-list.rst deleted file mode 100644 index ede69f5..0000000 --- a/Help/release/dev/cpackifw-package-wizard-show-page-list.rst +++ /dev/null @@ -1,7 +0,0 @@ -cpackifw-package-wizard-show-page-list --------------------------------------- - -* The :cpack_gen:`CPack IFW Generator` gained new - :variable:`CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST` variable to - control visibility of the widget listing installer pages on the left side - of the wizard. This feature available only since QtIFW 4.0. diff --git a/Help/release/dev/cpp-cuda-23.rst b/Help/release/dev/cpp-cuda-23.rst deleted file mode 100644 index dc7c3b1..0000000 --- a/Help/release/dev/cpp-cuda-23.rst +++ /dev/null @@ -1,7 +0,0 @@ -cpp-cuda-23 ------------ - -* :prop_tgt:`CXX_STANDARD`, :prop_tgt:`CUDA_STANDARD`, - :prop_tgt:`OBJCXX_STANDARD` and the - :manual:`Compile Features <cmake-compile-features(7)>` functionality gained - support for C++23. diff --git a/Help/release/dev/ctest-test-dir.rst b/Help/release/dev/ctest-test-dir.rst deleted file mode 100644 index ab8d618..0000000 --- a/Help/release/dev/ctest-test-dir.rst +++ /dev/null @@ -1,5 +0,0 @@ -ctest-test-dir.rst ------------------- - -* :manual:`ctest(1)` gained a ``--test-dir`` option to specify the directory - in which to look for tests. diff --git a/Help/release/dev/cuda-archs-env.rst b/Help/release/dev/cuda-archs-env.rst deleted file mode 100644 index a2afcbe..0000000 --- a/Help/release/dev/cuda-archs-env.rst +++ /dev/null @@ -1,6 +0,0 @@ -cuda-archs-env --------------- - -* The :envvar:`CUDAARCHS` environment variable was added for initializing - :variable:`CMAKE_CUDA_ARCHITECTURES`. Useful in cases where the compiler - default is unsuitable for the machine's GPU. diff --git a/Help/release/dev/cuda-nvcc-ccache-symlink.rst b/Help/release/dev/cuda-nvcc-ccache-symlink.rst deleted file mode 100644 index 4d38047..0000000 --- a/Help/release/dev/cuda-nvcc-ccache-symlink.rst +++ /dev/null @@ -1,9 +0,0 @@ -cuda-nvcc-ccache-symlink ------------------------- - -* ``CUDA`` language support now works when ``nvcc`` is a symbolic link, - for example due to a ``ccache`` or ``colornvcc`` wrapper script. - -* The :module:`FindCUDAToolkit` module gained support for finding CUDA - toolkits when ``nvcc`` is a symbolic link, - for example due to a ``ccache`` or ``colornvcc`` wrapper script. diff --git a/Help/release/dev/custom-command-output-genex.rst b/Help/release/dev/custom-command-output-genex.rst deleted file mode 100644 index 471713a..0000000 --- a/Help/release/dev/custom-command-output-genex.rst +++ /dev/null @@ -1,11 +0,0 @@ -custom-command-output-genex ---------------------------- - -* :command:`add_custom_command` and :command:`add_custom_target` now - support :manual:`generator expressions <cmake-generator-expressions(7)>` - in their ``OUTPUT`` and ``BYPRODUCTS`` options. - - Their ``COMMAND``, ``WORKING_DIRECTORY``, and ``DEPENDS`` options gained - support for new generator expressions ``$<COMMAND_CONFIG:...>`` and - ``$<OUTPUT_CONFIG:...>`` that control cross-config handling when using - the :generator:`Ninja Multi-Config` generator. diff --git a/Help/release/dev/explicit-LANGUAGE-flag.rst b/Help/release/dev/explicit-LANGUAGE-flag.rst deleted file mode 100644 index 4de4a47..0000000 --- a/Help/release/dev/explicit-LANGUAGE-flag.rst +++ /dev/null @@ -1,5 +0,0 @@ -explicit-LANGUAGE-flag ----------------------- - -* The :prop_sf:`LANGUAGE` source file property now forces compilation - as the specified language. See policy :policy:`CMP0119`. diff --git a/Help/release/dev/explicit-source-extensions.rst b/Help/release/dev/explicit-source-extensions.rst deleted file mode 100644 index ccd9339..0000000 --- a/Help/release/dev/explicit-source-extensions.rst +++ /dev/null @@ -1,5 +0,0 @@ -explicit-source-extensions --------------------------- - -* Source file extensions must now be explicit. See policy :policy:`CMP0115` for - details. diff --git a/Help/release/dev/export-compile-commands-per-target.rst b/Help/release/dev/export-compile-commands-per-target.rst deleted file mode 100644 index 7063547..0000000 --- a/Help/release/dev/export-compile-commands-per-target.rst +++ /dev/null @@ -1,6 +0,0 @@ -export-compile-commands-per-target ----------------------------------- - -* The :prop_tgt:`EXPORT_COMPILE_COMMANDS` target property was added - for the associated :variable:`CMAKE_EXPORT_COMPILE_COMMANDS` variable - to allow for configuration of exporting compile commands per target. diff --git a/Help/release/dev/external-project-configure-handled-by-build.rst b/Help/release/dev/external-project-configure-handled-by-build.rst deleted file mode 100644 index 4a1fac8..0000000 --- a/Help/release/dev/external-project-configure-handled-by-build.rst +++ /dev/null @@ -1,8 +0,0 @@ -external-project-configure-handled-by-build -------------------------------------------- - -* The :module:`ExternalProject` function ``ExternalProject_Add`` learned a new - ``CONFIGURE_HANDLED_BY_BUILD`` option to have subsequent runs of the configure - step be triggered by the build step when an external project dependency - rebuilds instead of always rerunning the configure step when an external - project dependency rebuilds. diff --git a/Help/release/dev/fetchcontent-performance.rst b/Help/release/dev/fetchcontent-performance.rst deleted file mode 100644 index fcb68a1..0000000 --- a/Help/release/dev/fetchcontent-performance.rst +++ /dev/null @@ -1,13 +0,0 @@ -fetchcontent-performance ------------------------- - -* The implementation of the :module:`ExternalProject` module was - significantly refactored. The patch step gained support for - using the terminal with a new ``USES_TERMINAL_PATCH`` keyword - as a by-product of that work. -* The :module:`FetchContent` module no longer creates a separate - sub-build to implement the content population. It now invokes - the step scripts directly from within the main project's - configure stage. This significantly speeds up the configure - phase when the required content is already populated and - up-to-date. diff --git a/Help/release/dev/file-generate-new-line-style.rst b/Help/release/dev/file-generate-new-line-style.rst deleted file mode 100644 index b629b46..0000000 --- a/Help/release/dev/file-generate-new-line-style.rst +++ /dev/null @@ -1,5 +0,0 @@ -file-generate-new-line-style ----------------------------- - -* The :command:`file(GENERATE)` command gained ``NEWLINE_STYLE`` option to - support newline style of the generated file. diff --git a/Help/release/dev/file-generate-permissions.rst b/Help/release/dev/file-generate-permissions.rst deleted file mode 100644 index d1a4d42..0000000 --- a/Help/release/dev/file-generate-permissions.rst +++ /dev/null @@ -1,6 +0,0 @@ -file-generate-permissions -------------------------- - -* The :command:`file(GENERATE)` command gained ``NO_SOURCE_PERMISSIONS``, - ``USE_SOURCE_PERMISSIONS``, and ``FILE_PERMISSIONS`` options to support - permissions of the generated file. diff --git a/Help/release/dev/fileapi-toolchains.rst b/Help/release/dev/fileapi-toolchains.rst deleted file mode 100644 index 1a096bf..0000000 --- a/Help/release/dev/fileapi-toolchains.rst +++ /dev/null @@ -1,5 +0,0 @@ -fileapi-toolchains ------------------- - -* The :manual:`cmake-file-api(7)` gained a new "toolchains" object - kind that describes the compiler used for each enabled language. diff --git a/Help/release/dev/install-files-rename-genex.rst b/Help/release/dev/install-files-rename-genex.rst deleted file mode 100644 index f735e24..0000000 --- a/Help/release/dev/install-files-rename-genex.rst +++ /dev/null @@ -1,5 +0,0 @@ -install-files-rename-genex --------------------------- - -* The :command:`install(FILES)` command ``RENAME`` option learned to - support :manual:`generator expressions <cmake-generator-expressions(7)>`. diff --git a/Help/release/dev/intel-llvm-compilers.rst b/Help/release/dev/intel-llvm-compilers.rst deleted file mode 100644 index 604070b..0000000 --- a/Help/release/dev/intel-llvm-compilers.rst +++ /dev/null @@ -1,19 +0,0 @@ -intel-llvm-compilers --------------------- - -* The Intel oneAPI NextGen LLVM compilers are now supported with - compiler id ``IntelLLVM``: - - * The ``icx``/``icpx`` C/C++ compilers on Linux, and the ``icx`` - C/C++ compiler on Windows, are fully supported as of oneAPI 2021.1. - - * The ``ifx`` Fortran compiler on Linux is partially supported. - As of oneAPI 2021.1, ``ifx`` does not define several identification - macros, so CMake identifies it as the classic ``Intel`` compiler. - This works in many cases because ``ifx`` accepts the same command line - parameters as ``ifort``. - - * The ``ifx`` Fortran compiler on Windows is not yet supported. - - The Intel oneAPI Classic compilers (``icc``, ``icpc``, and ``ifort``) - continue to be supported with compiler id ``Intel``. diff --git a/Help/release/dev/make-GENERATED-visible-from-any-scope.rst b/Help/release/dev/make-GENERATED-visible-from-any-scope.rst deleted file mode 100644 index 7757175..0000000 --- a/Help/release/dev/make-GENERATED-visible-from-any-scope.rst +++ /dev/null @@ -1,7 +0,0 @@ -make-GENERATED-visible-from-any-scope -------------------------------------- - -* The :prop_sf:`GENERATED` source-file property is now visible - from any directory scope, regardles in which scope or for what - scope it was set. - See policy :policy:`CMP0118`. diff --git a/Help/release/dev/makefile-depfile.rst b/Help/release/dev/makefile-depfile.rst deleted file mode 100644 index 4a3e5fb..0000000 --- a/Help/release/dev/makefile-depfile.rst +++ /dev/null @@ -1,5 +0,0 @@ -makefile-depfile ----------------- - -* The :command:`add_custom_command` command gained ``DEPFILE`` support on - :ref:`Makefile Generators`. diff --git a/Help/release/dev/makefiles-dependencies-use-compiler.rst b/Help/release/dev/makefiles-dependencies-use-compiler.rst deleted file mode 100644 index 8170cda..0000000 --- a/Help/release/dev/makefiles-dependencies-use-compiler.rst +++ /dev/null @@ -1,5 +0,0 @@ -makefiles-dependencies-use-compiler ------------------------------------ - -* The :ref:`Makefile Generators` gained the capability, for a selection of - compilers, to use the compiler itself to generate implicit dependencies. diff --git a/Help/release/dev/msvc-no-GR.rst b/Help/release/dev/msvc-no-GR.rst deleted file mode 100644 index e5ca850..0000000 --- a/Help/release/dev/msvc-no-GR.rst +++ /dev/null @@ -1,7 +0,0 @@ -msvc-no-GR ----------- - -* With MSVC-like compilers the value of - :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` no longer contains - the ``/GR`` flag for runtime type information by default. - See policy :policy:`CMP0117`. diff --git a/Help/release/dev/ninja-depfile-transformation.rst b/Help/release/dev/ninja-depfile-transformation.rst deleted file mode 100644 index edf7f58..0000000 --- a/Help/release/dev/ninja-depfile-transformation.rst +++ /dev/null @@ -1,5 +0,0 @@ -ninja-depfile-transformation ----------------------------- - -* Ninja generators now transform ``DEPFILE`` s from - :command:`add_custom_command`. See policy :policy:`CMP0116` for details. diff --git a/Help/release/dev/nvhpc-compiler.rst b/Help/release/dev/nvhpc-compiler.rst deleted file mode 100644 index f1f60ae..0000000 --- a/Help/release/dev/nvhpc-compiler.rst +++ /dev/null @@ -1,4 +0,0 @@ -nvhpc-compiler --------------- - -* The NVIDIA HPC SDK compilers are now supported with compiler id ``NVHPC``. diff --git a/Help/release/dev/object-lib-multiarch.rst b/Help/release/dev/object-lib-multiarch.rst deleted file mode 100644 index 0d309d6..0000000 --- a/Help/release/dev/object-lib-multiarch.rst +++ /dev/null @@ -1,8 +0,0 @@ -object-lib-multiarch --------------------- - -* The :command:`add_library` command previously prohibited imported object - libraries when using potentially multi-architecture configurations. - This mostly affected the :generator:`Xcode` generator, e.g. when targeting - iOS or one of the other device platforms. This restriction has now been - removed. diff --git a/Help/release/dev/qt-autogen-per-config.rst b/Help/release/dev/qt-autogen-per-config.rst deleted file mode 100644 index 6ba929d..0000000 --- a/Help/release/dev/qt-autogen-per-config.rst +++ /dev/null @@ -1,4 +0,0 @@ -qt-autogen-per-config ---------------------- - -* The :ref:`Qt AUTOMOC` feature now works with per-config sources. diff --git a/Help/release/dev/rel-package-names.rst b/Help/release/dev/rel-package-names.rst deleted file mode 100644 index 83f5ea2..0000000 --- a/Help/release/dev/rel-package-names.rst +++ /dev/null @@ -1,10 +0,0 @@ -rel-package-names ------------------ - -* The precompiled Linux binaries provided on ``cmake.org`` have changed - their naming pattern to ``cmake-$ver-linux-$arch``, where ``$arch`` - is either ``x86_64`` or ``aarch64``. - -* The precompiled Windows binaries provided on ``cmake.org`` have changed - their naming pattern to ``cmake-$ver-windows-$arch``, where ``$arch`` - is either ``x86_64`` or ``i386``. diff --git a/Help/release/dev/remove-WCDH-module.rst b/Help/release/dev/remove-WCDH-module.rst deleted file mode 100644 index 4ea951a..0000000 --- a/Help/release/dev/remove-WCDH-module.rst +++ /dev/null @@ -1,5 +0,0 @@ -remove-WCDH-module ------------------- - -* The :module:`WriteCompilerDetectionHeader` module has been deprecated - via policy :policy:`CMP0120`. Projects should be ported away from it. diff --git a/Help/release/dev/remove-server-mode.rst b/Help/release/dev/remove-server-mode.rst deleted file mode 100644 index 7c986b1..0000000 --- a/Help/release/dev/remove-server-mode.rst +++ /dev/null @@ -1,5 +0,0 @@ -remove-server-mode ------------------- - -* The :manual:`cmake-server(7)` mode has been removed. - Clients should use the :manual:`cmake-file-api(7)` instead. diff --git a/Help/release/dev/target-sources-supports-custom-target.rst b/Help/release/dev/target-sources-supports-custom-target.rst deleted file mode 100644 index 131fb3a..0000000 --- a/Help/release/dev/target-sources-supports-custom-target.rst +++ /dev/null @@ -1,4 +0,0 @@ -target-sources-supports-custom-target -------------------------------------- - -* The :command:`target_sources` now supports custom targets. diff --git a/Help/release/dev/try_run-allow-to-set-working-directory.rst b/Help/release/dev/try_run-allow-to-set-working-directory.rst deleted file mode 100644 index a97e46d..0000000 --- a/Help/release/dev/try_run-allow-to-set-working-directory.rst +++ /dev/null @@ -1,5 +0,0 @@ -try_run-allow-to-set-working-directory --------------------------------------- - -* The :command:`try_run` command gained a ``WORKING_DIRECTORY`` option to - support setting of working directory. diff --git a/Help/release/dev/unity-build-anonymous-macros.rst b/Help/release/dev/unity-build-anonymous-macros.rst deleted file mode 100644 index ed8fb1a..0000000 --- a/Help/release/dev/unity-build-anonymous-macros.rst +++ /dev/null @@ -1,7 +0,0 @@ -unity-build-anonymous-macros ----------------------------- - -* The :prop_tgt:`UNITY_BUILD_UNIQUE_ID` target property - was added to support generation of an identifier that is - unique per source file in unity builds. It can help to - resolve duplicate symbol problems with anonymous namespaces. diff --git a/Help/release/dev/xcode-embed-frameworks.rst b/Help/release/dev/xcode-embed-frameworks.rst deleted file mode 100644 index 5573fcb..0000000 --- a/Help/release/dev/xcode-embed-frameworks.rst +++ /dev/null @@ -1,9 +0,0 @@ -xcode-embed-frameworks ----------------------- - -* When using the Xcode generator, it is now possible to embed frameworks - using the new :prop_tgt:`XCODE_EMBED_FRAMEWORKS <XCODE_EMBED_<type>>` - target property. Aspects of the embedding can be customized with the - :prop_tgt:`XCODE_EMBED_FRAMEWORKS_PATH <XCODE_EMBED_<type>>`, - :prop_tgt:`XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY` and - :prop_tgt:`XCODE_EMBED_FRAMEWORKS_REMOVE_HEADERS_ON_COPY` target properties. diff --git a/Help/release/index.rst b/Help/release/index.rst index a8329a6..5dfca05 100644 --- a/Help/release/index.rst +++ b/Help/release/index.rst @@ -15,6 +15,7 @@ Releases .. toctree:: :maxdepth: 1 + 3.20 <3.20> 3.19 <3.19> 3.18 <3.18> 3.17 <3.17> |