From b81cb27f20b4163e6f2f6945242434c5b20121c5 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 7 Oct 2020 07:53:12 -0400 Subject: Help: Consolidate 3.19 release notes Run the `Utilities/Release/consolidate-relnotes.bash` script to move notes from `Help/release/dev/*` into `Help/release/3.19.rst`. --- Help/release/3.19.rst | 287 +++++++++++++++++++++ .../CMakePackageConfigHelpers-version_range.rst | 4 - Help/release/dev/CPACK_EXTERNAL_BUILT_PACKAGES.rst | 4 - Help/release/dev/EXCLUDE_FROM_ALL-genex.rst | 5 - .../dev/ExternalProject-steps-refinement.rst | 5 - Help/release/dev/FPHSA-version_range.rst | 7 - Help/release/dev/FindCUDAToolkit-no-nvcc.rst | 5 - Help/release/dev/FindPython-version_range.rst | 5 - Help/release/dev/FindSDL-update.rst | 11 - Help/release/dev/FindSWIG-version-range.rst | 4 - Help/release/dev/FindTIFF-tiffxx.rst | 5 - Help/release/dev/FindVulkan-glslc.rst | 10 - Help/release/dev/PCH_INSTANTIATE_TEMPLATES.rst | 7 - .../dev/UseSWIG-output-source-properties.rst | 5 - .../release/dev/add_test-special-chars-in-name.rst | 6 - Help/release/dev/asm-osx-architectures.rst | 5 - Help/release/dev/binary-dir-props.rst | 7 - Help/release/dev/build-interface-targets.rst | 6 - Help/release/dev/check-source-modules.rst | 14 - Help/release/dev/clang-cl-vfs.rst | 6 - Help/release/dev/clang-windows-system-includes.rst | 5 - Help/release/dev/cmake-E-create_hardlink.rst | 5 - Help/release/dev/cmake-gui-environment.rst | 4 - Help/release/dev/cmake-presets.rst | 5 - Help/release/dev/cmake_language-DEFER.rst | 5 - Help/release/dev/cmake_path-command.rst | 5 - Help/release/dev/compiler_flags.rst | 9 - .../dev/configure_file-permission-control.rst | 5 - .../dev/cpack-pre-and-post-build-scripts.rst | 5 - Help/release/dev/cpack-wix-custom-xmlns.rst | 5 - Help/release/dev/ctest-cuda-memcheck.rst | 8 - Help/release/dev/cuda-check-support.rst | 14 - .../dev/cuda-clang-separable-compilation.rst | 4 - Help/release/dev/cuda-fail-fast.rst | 6 - Help/release/dev/cuda-nvcc-werror-abi.rst | 4 - Help/release/dev/cuda-scattered-cross.rst | 7 - Help/release/dev/custom-command-dedup.rst | 5 - Help/release/dev/deprecate-policy-old.rst | 13 - .../dev/execute-process-command-error-is-fatal.rst | 5 - .../release/dev/file-ARCHIVE-compression-level.rst | 5 - Help/release/dev/file-CHMOD.rst | 5 - Help/release/dev/file-REAL_PATH.rst | 5 - Help/release/dev/file-download-optional-file.rst | 5 - Help/release/dev/file-generate-target.rst | 5 - Help/release/dev/fileapi-codemodel-2.2.rst | 7 - Help/release/dev/find_package-version_range.rst | 4 - Help/release/dev/find_program-exe-no-read.rst | 5 - Help/release/dev/genexpr-for-mfc-flag.rst | 4 - Help/release/dev/ide-integration-guide.rst | 4 - .../dev/imported-target-location-required.rst | 5 - .../dev/install-default-directory-permissions.rst | 5 - Help/release/dev/ispc-check-support.rst | 8 - Help/release/dev/ispc-language-support.rst | 11 - Help/release/dev/macOS-sdk-latest.rst | 10 - Help/release/dev/optimize-link-dependencies.rst | 7 - ...et-generator-expression-dependency-addition.rst | 17 -- Help/release/dev/remove-cmake-gui-qt4.rst | 5 - Help/release/dev/remove-warn-unused-vars.rst | 6 - Help/release/dev/separate_arguments-PROGRAM.rst | 5 - Help/release/dev/string-json-support.rst | 5 - Help/release/dev/visual-studio-android.rst | 7 - Help/release/dev/vs-win-sdk-custom-max.rst | 6 - Help/release/dev/win32-executable-genex.rst | 5 - Help/release/dev/xcode-12-new-build-system.rst | 7 - Help/release/dev/xcode-link-phase-all.rst | 9 - Help/release/index.rst | 1 + 66 files changed, 288 insertions(+), 407 deletions(-) create mode 100644 Help/release/3.19.rst delete mode 100644 Help/release/dev/CMakePackageConfigHelpers-version_range.rst delete mode 100644 Help/release/dev/CPACK_EXTERNAL_BUILT_PACKAGES.rst delete mode 100644 Help/release/dev/EXCLUDE_FROM_ALL-genex.rst delete mode 100644 Help/release/dev/ExternalProject-steps-refinement.rst delete mode 100644 Help/release/dev/FPHSA-version_range.rst delete mode 100644 Help/release/dev/FindCUDAToolkit-no-nvcc.rst delete mode 100644 Help/release/dev/FindPython-version_range.rst delete mode 100644 Help/release/dev/FindSDL-update.rst delete mode 100644 Help/release/dev/FindSWIG-version-range.rst delete mode 100644 Help/release/dev/FindTIFF-tiffxx.rst delete mode 100644 Help/release/dev/FindVulkan-glslc.rst delete mode 100644 Help/release/dev/PCH_INSTANTIATE_TEMPLATES.rst delete mode 100644 Help/release/dev/UseSWIG-output-source-properties.rst delete mode 100644 Help/release/dev/add_test-special-chars-in-name.rst delete mode 100644 Help/release/dev/asm-osx-architectures.rst delete mode 100644 Help/release/dev/binary-dir-props.rst delete mode 100644 Help/release/dev/build-interface-targets.rst delete mode 100644 Help/release/dev/check-source-modules.rst delete mode 100644 Help/release/dev/clang-cl-vfs.rst delete mode 100644 Help/release/dev/clang-windows-system-includes.rst delete mode 100644 Help/release/dev/cmake-E-create_hardlink.rst delete mode 100644 Help/release/dev/cmake-gui-environment.rst delete mode 100644 Help/release/dev/cmake-presets.rst delete mode 100644 Help/release/dev/cmake_language-DEFER.rst delete mode 100644 Help/release/dev/cmake_path-command.rst delete mode 100644 Help/release/dev/compiler_flags.rst delete mode 100644 Help/release/dev/configure_file-permission-control.rst delete mode 100644 Help/release/dev/cpack-pre-and-post-build-scripts.rst delete mode 100644 Help/release/dev/cpack-wix-custom-xmlns.rst delete mode 100644 Help/release/dev/ctest-cuda-memcheck.rst delete mode 100644 Help/release/dev/cuda-check-support.rst delete mode 100644 Help/release/dev/cuda-clang-separable-compilation.rst delete mode 100644 Help/release/dev/cuda-fail-fast.rst delete mode 100644 Help/release/dev/cuda-nvcc-werror-abi.rst delete mode 100644 Help/release/dev/cuda-scattered-cross.rst delete mode 100644 Help/release/dev/custom-command-dedup.rst delete mode 100644 Help/release/dev/deprecate-policy-old.rst delete mode 100644 Help/release/dev/execute-process-command-error-is-fatal.rst delete mode 100644 Help/release/dev/file-ARCHIVE-compression-level.rst delete mode 100644 Help/release/dev/file-CHMOD.rst delete mode 100644 Help/release/dev/file-REAL_PATH.rst delete mode 100644 Help/release/dev/file-download-optional-file.rst delete mode 100644 Help/release/dev/file-generate-target.rst delete mode 100644 Help/release/dev/fileapi-codemodel-2.2.rst delete mode 100644 Help/release/dev/find_package-version_range.rst delete mode 100644 Help/release/dev/find_program-exe-no-read.rst delete mode 100644 Help/release/dev/genexpr-for-mfc-flag.rst delete mode 100644 Help/release/dev/ide-integration-guide.rst delete mode 100644 Help/release/dev/imported-target-location-required.rst delete mode 100644 Help/release/dev/install-default-directory-permissions.rst delete mode 100644 Help/release/dev/ispc-check-support.rst delete mode 100644 Help/release/dev/ispc-language-support.rst delete mode 100644 Help/release/dev/macOS-sdk-latest.rst delete mode 100644 Help/release/dev/optimize-link-dependencies.rst delete mode 100644 Help/release/dev/relax-target-generator-expression-dependency-addition.rst delete mode 100644 Help/release/dev/remove-cmake-gui-qt4.rst delete mode 100644 Help/release/dev/remove-warn-unused-vars.rst delete mode 100644 Help/release/dev/separate_arguments-PROGRAM.rst delete mode 100644 Help/release/dev/string-json-support.rst delete mode 100644 Help/release/dev/visual-studio-android.rst delete mode 100644 Help/release/dev/vs-win-sdk-custom-max.rst delete mode 100644 Help/release/dev/win32-executable-genex.rst delete mode 100644 Help/release/dev/xcode-12-new-build-system.rst delete mode 100644 Help/release/dev/xcode-link-phase-all.rst diff --git a/Help/release/3.19.rst b/Help/release/3.19.rst new file mode 100644 index 0000000..38c3e63 --- /dev/null +++ b/Help/release/3.19.rst @@ -0,0 +1,287 @@ +CMake 3.19 Release Notes +************************ + +.. only:: html + + .. contents:: + +Changes made since CMake 3.18 include the following. + +* The :command:`add_test` command now (officially) supports whitespace and + other special characters in the name for the test it creates. + See policy :policy:`CMP0110`. + +* The :prop_tgt:`OSX_ARCHITECTURES` target property is now respected for the + ``ASM`` language. + +* The :command:`set_property`, :command:`get_property`, + and :command:`get_directory_property` commands' ``DIRECTORY`` + options now accept references to binary directory paths, + such as the value of :variable:`CMAKE_CURRENT_BINARY_DIR`. + +* :ref:`Interface Libraries` may now have source files added via + :command:`add_library` or :command:`target_sources`. Those + with sources will be generated as part of the build system. + +* The :module:`CheckSourceCompiles` module has been added to + generalize :module:`CheckCSourceCompiles` and + :module:`CheckCXXSourceCompiles` to more languages. + +* The :module:`CheckSourceRuns` module has been added to + generalize :module:`CheckCSourceRuns` and + :module:`CheckCXXSourceRuns` to more languages. + +* The :module:`CheckCompilerFlag` module has been added to + generalize :module:`CheckCCompilerFlag` and + :module:`CheckCXXCompilerFlag` to more languages. + +* A :variable:`CMAKE_CLANG_VFS_OVERLAY` variable was added to tell + Clang to use a VFS overlay to support the Windows SDK when + cross-compiling from hosts with case-sensitive filesystems. + +* The ``Clang`` compiler gained support for handling system include directories + when running on Windows. + +* The :manual:`cmake(1)` gained a ``-E create_hardlink`` command-line tool + that can be used to create hardlinks between files. + +* The :manual:`CMake GUI ` now has an environment variable editor. + +* The :command:`cmake_language` command gained a ``DEFER`` mode to + schedule command calls to occur at the end of processing a directory. + +* :module:`CMakePackageConfigHelpers` module learned to manage version range. + +* The :command:`cmake_path` command was added for operations on + filesystem paths. + +* :manual:`cmake(1)` and :manual:`cmake-gui(1)` now recognize + ``CMakePresets.json`` and ``CMakeUserPresets.json`` files. + +* The :variable:`CMAKE__COMPILER` variable may now be used to + store "mandatory" compiler flags like the :envvar:`CC` and other environment variables. + +* The :variable:`CMAKE__FLAGS_INIT` variable will now be considered during + the compiler indentification check if other sources like :variable:`CMAKE__FLAGS` + or :envvar:`CFLAGS` are not set. + +* The :command:`configure_file` command gained a ``NO_SOURCE_PERMISSIONS`` + option to suppress copying the input file's permissions to the output file. + +* :cpack_gen:`CPack External Generator` learned the :variable:`CPACK_EXTERNAL_BUILT_PACKAGES` variable. + +* CPack learned the :variable:`CPACK_PRE_BUILD_SCRIPTS`, :variable:`CPACK_POST_BUILD_SCRIPTS`, + and :variable:`CPACK_PACKAGE_FILES` variables. + +* The :cpack_gen:`CPack WIX Generator` gained a + :variable:`CPACK_WIX_CUSTOM_XMLNS` option to specify custom XML namespaces. + +* :manual:`ctest(1)` gained support for cuda-memcheck as ``CTEST_MEMORYCHECK_COMMAND``. + The different tools (memcheck, racecheck, synccheck, initcheck) supplied by + cuda-memcheck can be selected by setting the appropriate flags using the + ``CTEST_MEMORYCHECK_COMMAND_OPTIONS`` variable. + The default flags are `--tool memcheck --leak-check full`. + +* The :module:`CheckCompilerFlag` module was extended to + support 'CUDA'. + +* The :module:`CheckSourceCompiles` module was extended to + support 'CUDA'. + +* The :module:`CheckSourceRuns` module was extended to + support 'CUDA'. + +* The :module:`CheckLinkerFlag` module has been extended to + support the validity of CUDA link flags. + +* :prop_tgt:`CUDA_SEPARABLE_COMPILATION` is now supported when using Clang. + +* If ``CUDA`` compiler detection fails with user-specified + :variable:`CMAKE_CUDA_ARCHITECTURES` or :variable:`CMAKE_CUDA_HOST_COMPILER` + an error is raised. + +* Compiler ABI detection now handles NVCC-style ``-Werror`` flags. + +* Scattered toolkit installations are now recognized when crosscompiling + ``CUDA`` using Clang. +* :module:`FindCUDAToolkit` now finds scattered toolkit installations when + crosscompiling. + +* :ref:`Makefile Generators` no longer repeat custom commands from target + dependencies. See policy :policy:`CMP0113`. + +* An explicit deprecation diagnostic was added for policy ``CMP0071`` + (``CMP0071`` and below were already deprecated). + The :manual:`cmake-policies(7)` manual explains that the OLD behaviors + of all policies are deprecated and that projects should port to the + NEW behaviors. + +* Compatibility with versions of CMake older than 2.8.12 is now deprecated + and will be removed from a future version. Calls to + :command:`cmake_minimum_required` or :command:`cmake_policy` that set + the policy version to an older value now issue a deprecation diagnostic. + +* The :prop_tgt:`EXCLUDE_FROM_ALL` target property gained support for + :manual:`generator expressions `. + +* The :command:`execute_process` command gained a ``COMMAND_ERROR_IS_FATAL`` + option to specify a fatal error. + +* The :module:`ExternalProject` module handling of step target dependencies + has been revised. See policy :policy:`CMP0114`. + +* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has + been updated to 2.2. +* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object gained + a new ``languageStandard`` field in the ``compileGroups`` objects. + +* The :command:`file(ARCHIVE_CREATE)` command gained a ``COMPRESSION_LEVEL`` + option to specify the compression level. + +* Add :command:`file(CHMOD)` and :command:`file(CHMOD_RECURSE)` to + set permissions of files and directories. + +* The ```` argument is now optional for :command:`file(DOWNLOAD)`. If it + is not specified, the file is not saved. + +* The :command:`file(GENERATE)` command gained a new ``TARGET`` keyword to + support resolving target-dependent generator expressions. + +* The :command:`file` gained sub-command `REAL_PATH` to compute a path with + symlinks resolved. + +* The :module:`FindCUDAToolkit` module gained support for finding CUDA toolkits + that do not contain ``nvcc``. + +* The :command:`find_package` command learned to handle a version range. + +* The :command:`find_program` command now requires permission to execute + but not to read the file found. See policy :policy:`CMP0109`. + +* The :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython` + modules gained the capability to manage a version range. + +* The :module:`FindSDL` module now provides: + + * imported target ``SDL::SDL``, + + * result variables ``SDL_LIBRARIES`` and ``SDL_INCLUDE_DIRS``, + + * version variables ``SDL_VERSION``, ``SDL_VERSION_MAJOR`` + ``SDL_VERSION_MINOR``, and ``SDL_VERSION_PATCH``. + +* :module:`FindSWIG` module gains the capability to manage a version range. + +* The :module:`FindTIFF` module gained a ``CXX`` component to + find the ``tiffxx`` library containing C++ bindings. + +* The :module:`FindVulkan` module gained a new output variable + ``Vulkan_GLSLC_EXECUTABLE`` which contains the path to the + GLSL SPIR-V compiler. + +* The :module:`FindVulkan` module gained a new target + ``Vulkan::glslc`` which contains the path to the + GLSL SPIR-V compiler. + +* The :module:`FindPackageHandleStandardArgs` module learned to handle + version range. It also gained the ``find_package_check_version()`` command to + check the validity of a version against version-related arguments of + :command:`find_package` command. + +* The :variable:`CMAKE_MFC_FLAG` variable now supports generator expressions. + +* A new guide on :guide:`IDE integration ` has been added. + +* An imported target with a missing location now fails during generation if the + location is used. See policy :policy:`CMP0111`. + +* The ``--install`` argument of the :manual:`cmake(1)` command line tool gained a + ``--default-directory-permissions`` argument. + +* The :module:`CheckCompilerFlag` module was extended to + support 'ISPC'. + +* The :module:`CheckSourceCompiles` module was extended to + support 'ISPC'. + + +* CMake learned to support ``ISPC`` as a first-class language that can be + enabled via the :command:`project` and :command:`enable_language` commands. + +* ``ISPC`` is currently supported by the :ref:`Makefile Generators` + and the :generator:`Ninja` generator on Linux, macOS, and Windows. + +* The Intel ISPC compiler (``ispc``) is supported. + +* Building for macOS will now use the latest SDK available on the system, + unless the user has explicitly chosen a SDK using :variable:`CMAKE_OSX_SYSROOT`. + + The deployment target or system macOS version will not affect + the choice of SDK. + +* macOS SDKs older than 10.5 are no longer supported. + +* A new target property, :prop_tgt:`OPTIMIZE_DEPENDENCIES`, was added to + avoid unnecessarily building dependencies for a static library. +* A new variable, :variable:`CMAKE_OPTIMIZE_DEPENDENCIES`, was added to + initialize the :prop_tgt:`OPTIMIZE_DEPENDENCIES` target property. + +* The :prop_tgt:`PCH_INSTANTIATE_TEMPLATES` target property was added to enable + template instantiation in the precompiled header. This is enabled by default + and offers a roughly 20% compile time improvement. Currently only supported + by Clang 11. + +* The following target-based generator expressions that query for directory or + file name components no longer add a dependency on the evaluated target. + See policy :policy:`CMP0112`. + + - ``TARGET_FILE_DIR`` + - ``TARGET_LINKER_FILE_BASE_NAME`` + - ``TARGET_LINKER_FILE_NAME`` + - ``TARGET_LINKER_FILE_DIR`` + - ``TARGET_SONAME_FILE_NAME`` + - ``TARGET_SONAME_FILE_DIR`` + - ``TARGET_PDB_FILE_NAME`` + - ``TARGET_PDB_FILE_DIR`` + - ``TARGET_BUNDLE_DIR`` + - ``TARGET_BUNDLE_CONTENT_DIR`` + +* :manual:`cmake-gui(1)` now requires Qt5. Support for compiling with Qt4 has + been removed. + +* The :manual:`cmake(1)` command-line option ``--warn-unused-vars`` has + been removed and is now silently ignored. The option has not worked + correctly since CMake 3.3. + +* The :command:`separate_arguments` command gained new ``PROGRAM`` option to + search program. + +* The :command:`string` command gained set of new ``JSON`` sub commands to provide JSON + parsing capabilities. + +* :module:`UseSWIG` module gains new source file properties ``OUTPUT_DIR`` and + ``OUTFILE_DIR`` to manage output directories on per source basis. + +* The :ref:`Visual Studio Generators` for Visual Studio 2015 and above gained + support for the Visual Studio Tools for Android. This allows you to set + :variable:`CMAKE_SYSTEM_NAME` to `Android` to generate `.vcxproj` files for + the Android tools. + +* A :variable:`CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM` variable + was added to tell the :ref:`Visual Studio Generators` what maximumm + version of the Windows SDK to choose. + +* The :prop_tgt:`WIN32_EXECUTABLE` target property now supports + :manual:`generator expressions `. + +* The :generator:`Xcode` generator now uses the Xcode "new build system" + when generating for Xcode 12.0 or higher. + See the :variable:`CMAKE_XCODE_BUILD_SYSTEM` variable. + One may use ``-T buildsystem=1`` to switch to the legacy build system. + +* The Xcode generator gained support for linking libraries and frameworks + via the *Link Binaries With Libraries* build phase instead of always by + embedding linker flags directly. This behavior is controlled by a new + :prop_tgt:`XCODE_LINK_BUILD_PHASE_MODE` target property, which is + initialized by a new :variable:`CMAKE_XCODE_LINK_BUILD_PHASE_MODE` + variable. diff --git a/Help/release/dev/CMakePackageConfigHelpers-version_range.rst b/Help/release/dev/CMakePackageConfigHelpers-version_range.rst deleted file mode 100644 index 6900529..0000000 --- a/Help/release/dev/CMakePackageConfigHelpers-version_range.rst +++ /dev/null @@ -1,4 +0,0 @@ -CMakePackageConfigHelpers-version_range ---------------------------------------- - -* :module:`CMakePackageConfigHelpers` module learned to manage version range. diff --git a/Help/release/dev/CPACK_EXTERNAL_BUILT_PACKAGES.rst b/Help/release/dev/CPACK_EXTERNAL_BUILT_PACKAGES.rst deleted file mode 100644 index af446d2..0000000 --- a/Help/release/dev/CPACK_EXTERNAL_BUILT_PACKAGES.rst +++ /dev/null @@ -1,4 +0,0 @@ -CPACK_EXTERNAL_BUILT_PACKAGES ------------------------------ - -* :cpack_gen:`CPack External Generator` learned the :variable:`CPACK_EXTERNAL_BUILT_PACKAGES` variable. diff --git a/Help/release/dev/EXCLUDE_FROM_ALL-genex.rst b/Help/release/dev/EXCLUDE_FROM_ALL-genex.rst deleted file mode 100644 index 4d5a83c..0000000 --- a/Help/release/dev/EXCLUDE_FROM_ALL-genex.rst +++ /dev/null @@ -1,5 +0,0 @@ -EXCLUDE_FROM_ALL-genex ----------------------- - -* The :prop_tgt:`EXCLUDE_FROM_ALL` target property gained support for - :manual:`generator expressions `. diff --git a/Help/release/dev/ExternalProject-steps-refinement.rst b/Help/release/dev/ExternalProject-steps-refinement.rst deleted file mode 100644 index 9762927..0000000 --- a/Help/release/dev/ExternalProject-steps-refinement.rst +++ /dev/null @@ -1,5 +0,0 @@ -ExternalProject-steps-refinement --------------------------------- - -* The :module:`ExternalProject` module handling of step target dependencies - has been revised. See policy :policy:`CMP0114`. diff --git a/Help/release/dev/FPHSA-version_range.rst b/Help/release/dev/FPHSA-version_range.rst deleted file mode 100644 index 18996c4..0000000 --- a/Help/release/dev/FPHSA-version_range.rst +++ /dev/null @@ -1,7 +0,0 @@ -FPHSA-version_range -------------------- - -* The :module:`FindPackageHandleStandardArgs` module learned to handle - version range. It also gained the ``find_package_check_version()`` command to - check the validity of a version against version-related arguments of - :command:`find_package` command. diff --git a/Help/release/dev/FindCUDAToolkit-no-nvcc.rst b/Help/release/dev/FindCUDAToolkit-no-nvcc.rst deleted file mode 100644 index e815876..0000000 --- a/Help/release/dev/FindCUDAToolkit-no-nvcc.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindCUDAToolkit-no-nvcc ------------------------ - -* The :module:`FindCUDAToolkit` module gained support for finding CUDA toolkits - that do not contain ``nvcc``. diff --git a/Help/release/dev/FindPython-version_range.rst b/Help/release/dev/FindPython-version_range.rst deleted file mode 100644 index 06318b4..0000000 --- a/Help/release/dev/FindPython-version_range.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindPython-version_range ------------------------- - -* The :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython` - modules gained the capability to manage a version range. diff --git a/Help/release/dev/FindSDL-update.rst b/Help/release/dev/FindSDL-update.rst deleted file mode 100644 index a85d2b9..0000000 --- a/Help/release/dev/FindSDL-update.rst +++ /dev/null @@ -1,11 +0,0 @@ -FindSDL-update --------------- - -* The :module:`FindSDL` module now provides: - - * imported target ``SDL::SDL``, - - * result variables ``SDL_LIBRARIES`` and ``SDL_INCLUDE_DIRS``, - - * version variables ``SDL_VERSION``, ``SDL_VERSION_MAJOR`` - ``SDL_VERSION_MINOR``, and ``SDL_VERSION_PATCH``. diff --git a/Help/release/dev/FindSWIG-version-range.rst b/Help/release/dev/FindSWIG-version-range.rst deleted file mode 100644 index 37567d3..0000000 --- a/Help/release/dev/FindSWIG-version-range.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindSWIG-version-range ----------------------- - -* :module:`FindSWIG` module gains the capability to manage a version range. diff --git a/Help/release/dev/FindTIFF-tiffxx.rst b/Help/release/dev/FindTIFF-tiffxx.rst deleted file mode 100644 index 656d38f..0000000 --- a/Help/release/dev/FindTIFF-tiffxx.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindTIFF-tiffxx ---------------- - -* The :module:`FindTIFF` module gained a ``CXX`` component to - find the ``tiffxx`` library containing C++ bindings. diff --git a/Help/release/dev/FindVulkan-glslc.rst b/Help/release/dev/FindVulkan-glslc.rst deleted file mode 100644 index 246bc8f..0000000 --- a/Help/release/dev/FindVulkan-glslc.rst +++ /dev/null @@ -1,10 +0,0 @@ -FindVulkan-glslc ----------------- - -* The :module:`FindVulkan` module gained a new output variable - ``Vulkan_GLSLC_EXECUTABLE`` which contains the path to the - GLSL SPIR-V compiler. - -* The :module:`FindVulkan` module gained a new target - ``Vulkan::glslc`` which contains the path to the - GLSL SPIR-V compiler. diff --git a/Help/release/dev/PCH_INSTANTIATE_TEMPLATES.rst b/Help/release/dev/PCH_INSTANTIATE_TEMPLATES.rst deleted file mode 100644 index 0334204..0000000 --- a/Help/release/dev/PCH_INSTANTIATE_TEMPLATES.rst +++ /dev/null @@ -1,7 +0,0 @@ -PCH_INSTANTIATE_TEMPLATES -------------------------- - -* The :prop_tgt:`PCH_INSTANTIATE_TEMPLATES` target property was added to enable - template instantiation in the precompiled header. This is enabled by default - and offers a roughly 20% compile time improvement. Currently only supported - by Clang 11. diff --git a/Help/release/dev/UseSWIG-output-source-properties.rst b/Help/release/dev/UseSWIG-output-source-properties.rst deleted file mode 100644 index 62796a2..0000000 --- a/Help/release/dev/UseSWIG-output-source-properties.rst +++ /dev/null @@ -1,5 +0,0 @@ -UseSwig-output-source-properties --------------------------------- - -* :module:`UseSWIG` module gains new source file properties ``OUTPUT_DIR`` and - ``OUTFILE_DIR`` to manage output directories on per source basis. diff --git a/Help/release/dev/add_test-special-chars-in-name.rst b/Help/release/dev/add_test-special-chars-in-name.rst deleted file mode 100644 index 5bb9a23..0000000 --- a/Help/release/dev/add_test-special-chars-in-name.rst +++ /dev/null @@ -1,6 +0,0 @@ -add_test-special-chars-in-name ------------------------------- - -* The :command:`add_test` command now (officially) supports whitespace and - other special characters in the name for the test it creates. - See policy :policy:`CMP0110`. diff --git a/Help/release/dev/asm-osx-architectures.rst b/Help/release/dev/asm-osx-architectures.rst deleted file mode 100644 index d8d0660..0000000 --- a/Help/release/dev/asm-osx-architectures.rst +++ /dev/null @@ -1,5 +0,0 @@ -asm-osx-architectures ---------------------- - -* The :prop_tgt:`OSX_ARCHITECTURES` target property is now respected for the - ``ASM`` language. diff --git a/Help/release/dev/binary-dir-props.rst b/Help/release/dev/binary-dir-props.rst deleted file mode 100644 index b36d86d..0000000 --- a/Help/release/dev/binary-dir-props.rst +++ /dev/null @@ -1,7 +0,0 @@ -binary-dir-props ----------------- - -* The :command:`set_property`, :command:`get_property`, - and :command:`get_directory_property` commands' ``DIRECTORY`` - options now accept references to binary directory paths, - such as the value of :variable:`CMAKE_CURRENT_BINARY_DIR`. diff --git a/Help/release/dev/build-interface-targets.rst b/Help/release/dev/build-interface-targets.rst deleted file mode 100644 index 37bded4..0000000 --- a/Help/release/dev/build-interface-targets.rst +++ /dev/null @@ -1,6 +0,0 @@ -build-interface-targets ------------------------ - -* :ref:`Interface Libraries` may now have source files added via - :command:`add_library` or :command:`target_sources`. Those - with sources will be generated as part of the build system. diff --git a/Help/release/dev/check-source-modules.rst b/Help/release/dev/check-source-modules.rst deleted file mode 100644 index e6cccbe..0000000 --- a/Help/release/dev/check-source-modules.rst +++ /dev/null @@ -1,14 +0,0 @@ -check-source-modules -^^^^^^^^^^^^^^^^^^^^ - -* The :module:`CheckSourceCompiles` module has been added to - generalize :module:`CheckCSourceCompiles` and - :module:`CheckCXXSourceCompiles` to more languages. - -* The :module:`CheckSourceRuns` module has been added to - generalize :module:`CheckCSourceRuns` and - :module:`CheckCXXSourceRuns` to more languages. - -* The :module:`CheckCompilerFlag` module has been added to - generalize :module:`CheckCCompilerFlag` and - :module:`CheckCXXCompilerFlag` to more languages. diff --git a/Help/release/dev/clang-cl-vfs.rst b/Help/release/dev/clang-cl-vfs.rst deleted file mode 100644 index 40b19ef..0000000 --- a/Help/release/dev/clang-cl-vfs.rst +++ /dev/null @@ -1,6 +0,0 @@ -clang-cl-vfs ------------- - -* A :variable:`CMAKE_CLANG_VFS_OVERLAY` variable was added to tell - Clang to use a VFS overlay to support the Windows SDK when - cross-compiling from hosts with case-sensitive filesystems. diff --git a/Help/release/dev/clang-windows-system-includes.rst b/Help/release/dev/clang-windows-system-includes.rst deleted file mode 100644 index d1a3be2..0000000 --- a/Help/release/dev/clang-windows-system-includes.rst +++ /dev/null @@ -1,5 +0,0 @@ -clang-windows-system-includes ------------------------------ - -* The ``Clang`` compiler gained support for handling system include directories - when running on Windows. diff --git a/Help/release/dev/cmake-E-create_hardlink.rst b/Help/release/dev/cmake-E-create_hardlink.rst deleted file mode 100644 index 66cdc87..0000000 --- a/Help/release/dev/cmake-E-create_hardlink.rst +++ /dev/null @@ -1,5 +0,0 @@ -cmake-E-create_hardlink ------------------------ - -* The :manual:`cmake(1)` gained a ``-E create_hardlink`` command-line tool - that can be used to create hardlinks between files. diff --git a/Help/release/dev/cmake-gui-environment.rst b/Help/release/dev/cmake-gui-environment.rst deleted file mode 100644 index 1c8485e..0000000 --- a/Help/release/dev/cmake-gui-environment.rst +++ /dev/null @@ -1,4 +0,0 @@ -cmake-gui-environment ---------------------- - -* The :manual:`CMake GUI ` now has an environment variable editor. diff --git a/Help/release/dev/cmake-presets.rst b/Help/release/dev/cmake-presets.rst deleted file mode 100644 index a901f10..0000000 --- a/Help/release/dev/cmake-presets.rst +++ /dev/null @@ -1,5 +0,0 @@ -cmake-presets -------------- - -* :manual:`cmake(1)` and :manual:`cmake-gui(1)` now recognize - ``CMakePresets.json`` and ``CMakeUserPresets.json`` files. diff --git a/Help/release/dev/cmake_language-DEFER.rst b/Help/release/dev/cmake_language-DEFER.rst deleted file mode 100644 index 8bd0ee9..0000000 --- a/Help/release/dev/cmake_language-DEFER.rst +++ /dev/null @@ -1,5 +0,0 @@ -cmake_language-DEFER --------------------- - -* The :command:`cmake_language` command gained a ``DEFER`` mode to - schedule command calls to occur at the end of processing a directory. diff --git a/Help/release/dev/cmake_path-command.rst b/Help/release/dev/cmake_path-command.rst deleted file mode 100644 index f4d9f27..0000000 --- a/Help/release/dev/cmake_path-command.rst +++ /dev/null @@ -1,5 +0,0 @@ -cmake_path-command ------------------- - -* The :command:`cmake_path` command was added for operations on - filesystem paths. diff --git a/Help/release/dev/compiler_flags.rst b/Help/release/dev/compiler_flags.rst deleted file mode 100644 index 7138e80..0000000 --- a/Help/release/dev/compiler_flags.rst +++ /dev/null @@ -1,9 +0,0 @@ -compiler_flags ------------------ - -* The :variable:`CMAKE__COMPILER` variable may now be used to - store "mandatory" compiler flags like the :envvar:`CC` and other environment variables. - -* The :variable:`CMAKE__FLAGS_INIT` variable will now be considered during - the compiler indentification check if other sources like :variable:`CMAKE__FLAGS` - or :envvar:`CFLAGS` are not set. diff --git a/Help/release/dev/configure_file-permission-control.rst b/Help/release/dev/configure_file-permission-control.rst deleted file mode 100644 index 54b52b7..0000000 --- a/Help/release/dev/configure_file-permission-control.rst +++ /dev/null @@ -1,5 +0,0 @@ -configure_file-permission-control ---------------------------------- - -* The :command:`configure_file` command gained a ``NO_SOURCE_PERMISSIONS`` - option to suppress copying the input file's permissions to the output file. diff --git a/Help/release/dev/cpack-pre-and-post-build-scripts.rst b/Help/release/dev/cpack-pre-and-post-build-scripts.rst deleted file mode 100644 index bf7958b..0000000 --- a/Help/release/dev/cpack-pre-and-post-build-scripts.rst +++ /dev/null @@ -1,5 +0,0 @@ -cpack-pre-and-post-build-scripts --------------------------------- - -* CPack learned the :variable:`CPACK_PRE_BUILD_SCRIPTS`, :variable:`CPACK_POST_BUILD_SCRIPTS`, - and :variable:`CPACK_PACKAGE_FILES` variables. diff --git a/Help/release/dev/cpack-wix-custom-xmlns.rst b/Help/release/dev/cpack-wix-custom-xmlns.rst deleted file mode 100644 index 84934cb..0000000 --- a/Help/release/dev/cpack-wix-custom-xmlns.rst +++ /dev/null @@ -1,5 +0,0 @@ -cpack-wix-custom-xmlns ----------------------- - -* The :cpack_gen:`CPack WIX Generator` gained a - :variable:`CPACK_WIX_CUSTOM_XMLNS` option to specify custom XML namespaces. diff --git a/Help/release/dev/ctest-cuda-memcheck.rst b/Help/release/dev/ctest-cuda-memcheck.rst deleted file mode 100644 index f8f861a..0000000 --- a/Help/release/dev/ctest-cuda-memcheck.rst +++ /dev/null @@ -1,8 +0,0 @@ -CTest ------ - -* :manual:`ctest(1)` gained support for cuda-memcheck as ``CTEST_MEMORYCHECK_COMMAND``. - The different tools (memcheck, racecheck, synccheck, initcheck) supplied by - cuda-memcheck can be selected by setting the appropriate flags using the - ``CTEST_MEMORYCHECK_COMMAND_OPTIONS`` variable. - The default flags are `--tool memcheck --leak-check full`. diff --git a/Help/release/dev/cuda-check-support.rst b/Help/release/dev/cuda-check-support.rst deleted file mode 100644 index d88ef94..0000000 --- a/Help/release/dev/cuda-check-support.rst +++ /dev/null @@ -1,14 +0,0 @@ -cuda-check-support ------------------- - -* The :module:`CheckCompilerFlag` module was extended to - support 'CUDA'. - -* The :module:`CheckSourceCompiles` module was extended to - support 'CUDA'. - -* The :module:`CheckSourceRuns` module was extended to - support 'CUDA'. - -* The :module:`CheckLinkerFlag` module has been extended to - support the validity of CUDA link flags. diff --git a/Help/release/dev/cuda-clang-separable-compilation.rst b/Help/release/dev/cuda-clang-separable-compilation.rst deleted file mode 100644 index 8ff4cf4..0000000 --- a/Help/release/dev/cuda-clang-separable-compilation.rst +++ /dev/null @@ -1,4 +0,0 @@ -cuda-clang-separable-compilation --------------------------------- - -* :prop_tgt:`CUDA_SEPARABLE_COMPILATION` is now supported when using Clang. diff --git a/Help/release/dev/cuda-fail-fast.rst b/Help/release/dev/cuda-fail-fast.rst deleted file mode 100644 index d857eb2..0000000 --- a/Help/release/dev/cuda-fail-fast.rst +++ /dev/null @@ -1,6 +0,0 @@ -cuda-fail-fast --------------- - -* If ``CUDA`` compiler detection fails with user-specified - :variable:`CMAKE_CUDA_ARCHITECTURES` or :variable:`CMAKE_CUDA_HOST_COMPILER` - an error is raised. diff --git a/Help/release/dev/cuda-nvcc-werror-abi.rst b/Help/release/dev/cuda-nvcc-werror-abi.rst deleted file mode 100644 index 73e6ee6..0000000 --- a/Help/release/dev/cuda-nvcc-werror-abi.rst +++ /dev/null @@ -1,4 +0,0 @@ -cuda-nvcc-werror-abi --------------------- - -* Compiler ABI detection now handles NVCC-style ``-Werror`` flags. diff --git a/Help/release/dev/cuda-scattered-cross.rst b/Help/release/dev/cuda-scattered-cross.rst deleted file mode 100644 index a76407c..0000000 --- a/Help/release/dev/cuda-scattered-cross.rst +++ /dev/null @@ -1,7 +0,0 @@ -cuda-scattered-cross --------------------- - -* Scattered toolkit installations are now recognized when crosscompiling - ``CUDA`` using Clang. -* :module:`FindCUDAToolkit` now finds scattered toolkit installations when - crosscompiling. diff --git a/Help/release/dev/custom-command-dedup.rst b/Help/release/dev/custom-command-dedup.rst deleted file mode 100644 index 65fa303..0000000 --- a/Help/release/dev/custom-command-dedup.rst +++ /dev/null @@ -1,5 +0,0 @@ -custom-command-dedup --------------------- - -* :ref:`Makefile Generators` no longer repeat custom commands from target - dependencies. See policy :policy:`CMP0113`. diff --git a/Help/release/dev/deprecate-policy-old.rst b/Help/release/dev/deprecate-policy-old.rst deleted file mode 100644 index 1dc01cc..0000000 --- a/Help/release/dev/deprecate-policy-old.rst +++ /dev/null @@ -1,13 +0,0 @@ -deprecate-policy-old --------------------- - -* An explicit deprecation diagnostic was added for policy ``CMP0071`` - (``CMP0071`` and below were already deprecated). - The :manual:`cmake-policies(7)` manual explains that the OLD behaviors - of all policies are deprecated and that projects should port to the - NEW behaviors. - -* Compatibility with versions of CMake older than 2.8.12 is now deprecated - and will be removed from a future version. Calls to - :command:`cmake_minimum_required` or :command:`cmake_policy` that set - the policy version to an older value now issue a deprecation diagnostic. diff --git a/Help/release/dev/execute-process-command-error-is-fatal.rst b/Help/release/dev/execute-process-command-error-is-fatal.rst deleted file mode 100644 index fbc54bf..0000000 --- a/Help/release/dev/execute-process-command-error-is-fatal.rst +++ /dev/null @@ -1,5 +0,0 @@ -execute-process-command-error-is-fatal --------------------------------------- - -* The :command:`execute_process` command gained a ``COMMAND_ERROR_IS_FATAL`` - option to specify a fatal error. diff --git a/Help/release/dev/file-ARCHIVE-compression-level.rst b/Help/release/dev/file-ARCHIVE-compression-level.rst deleted file mode 100644 index 719b694..0000000 --- a/Help/release/dev/file-ARCHIVE-compression-level.rst +++ /dev/null @@ -1,5 +0,0 @@ -file-ARCHIVE-compression-level ------------------------------- - -* The :command:`file(ARCHIVE_CREATE)` command gained a ``COMPRESSION_LEVEL`` - option to specify the compression level. diff --git a/Help/release/dev/file-CHMOD.rst b/Help/release/dev/file-CHMOD.rst deleted file mode 100644 index 994b529..0000000 --- a/Help/release/dev/file-CHMOD.rst +++ /dev/null @@ -1,5 +0,0 @@ -file-CHMOD ----------- - -* Add :command:`file(CHMOD)` and :command:`file(CHMOD_RECURSE)` to - set permissions of files and directories. diff --git a/Help/release/dev/file-REAL_PATH.rst b/Help/release/dev/file-REAL_PATH.rst deleted file mode 100644 index 32768ca..0000000 --- a/Help/release/dev/file-REAL_PATH.rst +++ /dev/null @@ -1,5 +0,0 @@ -file-REAL_PATH --------------- - -* The :command:`file` gained sub-command `REAL_PATH` to compute a path with - symlinks resolved. diff --git a/Help/release/dev/file-download-optional-file.rst b/Help/release/dev/file-download-optional-file.rst deleted file mode 100644 index f3dc24c..0000000 --- a/Help/release/dev/file-download-optional-file.rst +++ /dev/null @@ -1,5 +0,0 @@ -file-download-optional-file ---------------------------- - -* The ```` argument is now optional for :command:`file(DOWNLOAD)`. If it - is not specified, the file is not saved. diff --git a/Help/release/dev/file-generate-target.rst b/Help/release/dev/file-generate-target.rst deleted file mode 100644 index 09fb460..0000000 --- a/Help/release/dev/file-generate-target.rst +++ /dev/null @@ -1,5 +0,0 @@ -file-generate-target --------------------- - -* The :command:`file(GENERATE)` command gained a new ``TARGET`` keyword to - support resolving target-dependent generator expressions. diff --git a/Help/release/dev/fileapi-codemodel-2.2.rst b/Help/release/dev/fileapi-codemodel-2.2.rst deleted file mode 100644 index 5954df6..0000000 --- a/Help/release/dev/fileapi-codemodel-2.2.rst +++ /dev/null @@ -1,7 +0,0 @@ -fileapi-codemodel-2.2 ---------------------- - -* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has - been updated to 2.2. -* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object gained - a new ``languageStandard`` field in the ``compileGroups`` objects. diff --git a/Help/release/dev/find_package-version_range.rst b/Help/release/dev/find_package-version_range.rst deleted file mode 100644 index 5305518..0000000 --- a/Help/release/dev/find_package-version_range.rst +++ /dev/null @@ -1,4 +0,0 @@ -find_package-version_range --------------------------- - -* The :command:`find_package` command learned to handle a version range. diff --git a/Help/release/dev/find_program-exe-no-read.rst b/Help/release/dev/find_program-exe-no-read.rst deleted file mode 100644 index 161b5db..0000000 --- a/Help/release/dev/find_program-exe-no-read.rst +++ /dev/null @@ -1,5 +0,0 @@ -find_program-exe-no-read ------------------------- - -* The :command:`find_program` command now requires permission to execute - but not to read the file found. See policy :policy:`CMP0109`. diff --git a/Help/release/dev/genexpr-for-mfc-flag.rst b/Help/release/dev/genexpr-for-mfc-flag.rst deleted file mode 100644 index c56a290..0000000 --- a/Help/release/dev/genexpr-for-mfc-flag.rst +++ /dev/null @@ -1,4 +0,0 @@ -genexpr-for-mfc-flag --------------------- - -* The :variable:`CMAKE_MFC_FLAG` variable now supports generator expressions. diff --git a/Help/release/dev/ide-integration-guide.rst b/Help/release/dev/ide-integration-guide.rst deleted file mode 100644 index f11fadd..0000000 --- a/Help/release/dev/ide-integration-guide.rst +++ /dev/null @@ -1,4 +0,0 @@ -ide-integration-guide ---------------------- - -* A new guide on :guide:`IDE integration ` has been added. diff --git a/Help/release/dev/imported-target-location-required.rst b/Help/release/dev/imported-target-location-required.rst deleted file mode 100644 index 3625242..0000000 --- a/Help/release/dev/imported-target-location-required.rst +++ /dev/null @@ -1,5 +0,0 @@ -imported-target-location-required ---------------------------------- - -* An imported target with a missing location now fails during generation if the - location is used. See policy :policy:`CMP0111`. diff --git a/Help/release/dev/install-default-directory-permissions.rst b/Help/release/dev/install-default-directory-permissions.rst deleted file mode 100644 index 27cffee..0000000 --- a/Help/release/dev/install-default-directory-permissions.rst +++ /dev/null @@ -1,5 +0,0 @@ -install-default-directory-permissions -------------------------------------- - -* The ``--install`` argument of the :manual:`cmake(1)` command line tool gained a - ``--default-directory-permissions`` argument. diff --git a/Help/release/dev/ispc-check-support.rst b/Help/release/dev/ispc-check-support.rst deleted file mode 100644 index 0023f0c..0000000 --- a/Help/release/dev/ispc-check-support.rst +++ /dev/null @@ -1,8 +0,0 @@ -ispc-check-support ------------------- - -* The :module:`CheckCompilerFlag` module was extended to - support 'ISPC'. - -* The :module:`CheckSourceCompiles` module was extended to - support 'ISPC'. diff --git a/Help/release/dev/ispc-language-support.rst b/Help/release/dev/ispc-language-support.rst deleted file mode 100644 index 254442e..0000000 --- a/Help/release/dev/ispc-language-support.rst +++ /dev/null @@ -1,11 +0,0 @@ -cmake-ispc-support ------------------- - - -* CMake learned to support ``ISPC`` as a first-class language that can be - enabled via the :command:`project` and :command:`enable_language` commands. - -* ``ISPC`` is currently supported by the :ref:`Makefile Generators` - and the :generator:`Ninja` generator on Linux, macOS, and Windows. - -* The Intel ISPC compiler (``ispc``) is supported. diff --git a/Help/release/dev/macOS-sdk-latest.rst b/Help/release/dev/macOS-sdk-latest.rst deleted file mode 100644 index c5ac3a6..0000000 --- a/Help/release/dev/macOS-sdk-latest.rst +++ /dev/null @@ -1,10 +0,0 @@ -macOS-sdk-latest ----------------- - -* Building for macOS will now use the latest SDK available on the system, - unless the user has explicitly chosen a SDK using :variable:`CMAKE_OSX_SYSROOT`. - - The deployment target or system macOS version will not affect - the choice of SDK. - -* macOS SDKs older than 10.5 are no longer supported. diff --git a/Help/release/dev/optimize-link-dependencies.rst b/Help/release/dev/optimize-link-dependencies.rst deleted file mode 100644 index cfda826..0000000 --- a/Help/release/dev/optimize-link-dependencies.rst +++ /dev/null @@ -1,7 +0,0 @@ -optimize-link-dependencies --------------------------- - -* A new target property, :prop_tgt:`OPTIMIZE_DEPENDENCIES`, was added to - avoid unnecessarily building dependencies for a static library. -* A new variable, :variable:`CMAKE_OPTIMIZE_DEPENDENCIES`, was added to - initialize the :prop_tgt:`OPTIMIZE_DEPENDENCIES` target property. diff --git a/Help/release/dev/relax-target-generator-expression-dependency-addition.rst b/Help/release/dev/relax-target-generator-expression-dependency-addition.rst deleted file mode 100644 index 6d30596..0000000 --- a/Help/release/dev/relax-target-generator-expression-dependency-addition.rst +++ /dev/null @@ -1,17 +0,0 @@ -relax-target-generator-expression-dependency-addition ------------------------------------------------------ - -* The following target-based generator expressions that query for directory or - file name components no longer add a dependency on the evaluated target. - See policy :policy:`CMP0112`. - - - ``TARGET_FILE_DIR`` - - ``TARGET_LINKER_FILE_BASE_NAME`` - - ``TARGET_LINKER_FILE_NAME`` - - ``TARGET_LINKER_FILE_DIR`` - - ``TARGET_SONAME_FILE_NAME`` - - ``TARGET_SONAME_FILE_DIR`` - - ``TARGET_PDB_FILE_NAME`` - - ``TARGET_PDB_FILE_DIR`` - - ``TARGET_BUNDLE_DIR`` - - ``TARGET_BUNDLE_CONTENT_DIR`` diff --git a/Help/release/dev/remove-cmake-gui-qt4.rst b/Help/release/dev/remove-cmake-gui-qt4.rst deleted file mode 100644 index 2b29b75..0000000 --- a/Help/release/dev/remove-cmake-gui-qt4.rst +++ /dev/null @@ -1,5 +0,0 @@ -remove-cmake-gui-qt4 --------------------- - -* :manual:`cmake-gui(1)` now requires Qt5. Support for compiling with Qt4 has - been removed. diff --git a/Help/release/dev/remove-warn-unused-vars.rst b/Help/release/dev/remove-warn-unused-vars.rst deleted file mode 100644 index 7a06e91..0000000 --- a/Help/release/dev/remove-warn-unused-vars.rst +++ /dev/null @@ -1,6 +0,0 @@ -remove-warn-unused-vars ------------------------ - -* The :manual:`cmake(1)` command-line option ``--warn-unused-vars`` has - been removed and is now silently ignored. The option has not worked - correctly since CMake 3.3. diff --git a/Help/release/dev/separate_arguments-PROGRAM.rst b/Help/release/dev/separate_arguments-PROGRAM.rst deleted file mode 100644 index 428bfda..0000000 --- a/Help/release/dev/separate_arguments-PROGRAM.rst +++ /dev/null @@ -1,5 +0,0 @@ -separate_arguments-PROGRAM --------------------------- - -* The :command:`separate_arguments` command gained new ``PROGRAM`` option to - search program. diff --git a/Help/release/dev/string-json-support.rst b/Help/release/dev/string-json-support.rst deleted file mode 100644 index bd75328..0000000 --- a/Help/release/dev/string-json-support.rst +++ /dev/null @@ -1,5 +0,0 @@ -string-json-support -------------------- - -* The :command:`string` command gained set of new ``JSON`` sub commands to provide JSON - parsing capabilities. diff --git a/Help/release/dev/visual-studio-android.rst b/Help/release/dev/visual-studio-android.rst deleted file mode 100644 index 4e1a110..0000000 --- a/Help/release/dev/visual-studio-android.rst +++ /dev/null @@ -1,7 +0,0 @@ -visual-studio-android ---------------------- - -* The :ref:`Visual Studio Generators` for Visual Studio 2015 and above gained - support for the Visual Studio Tools for Android. This allows you to set - :variable:`CMAKE_SYSTEM_NAME` to `Android` to generate `.vcxproj` files for - the Android tools. diff --git a/Help/release/dev/vs-win-sdk-custom-max.rst b/Help/release/dev/vs-win-sdk-custom-max.rst deleted file mode 100644 index bd19fc8..0000000 --- a/Help/release/dev/vs-win-sdk-custom-max.rst +++ /dev/null @@ -1,6 +0,0 @@ -vs-win-sdk-custom-max ---------------------- - -* A :variable:`CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM` variable - was added to tell the :ref:`Visual Studio Generators` what maximumm - version of the Windows SDK to choose. diff --git a/Help/release/dev/win32-executable-genex.rst b/Help/release/dev/win32-executable-genex.rst deleted file mode 100644 index f03203d..0000000 --- a/Help/release/dev/win32-executable-genex.rst +++ /dev/null @@ -1,5 +0,0 @@ -win32-executable-genex ----------------------- - -* The :prop_tgt:`WIN32_EXECUTABLE` target property now supports - :manual:`generator expressions `. diff --git a/Help/release/dev/xcode-12-new-build-system.rst b/Help/release/dev/xcode-12-new-build-system.rst deleted file mode 100644 index 7a497b0..0000000 --- a/Help/release/dev/xcode-12-new-build-system.rst +++ /dev/null @@ -1,7 +0,0 @@ -xcode-12-new-build-system -------------------------- - -* The :generator:`Xcode` generator now uses the Xcode "new build system" - when generating for Xcode 12.0 or higher. - See the :variable:`CMAKE_XCODE_BUILD_SYSTEM` variable. - One may use ``-T buildsystem=1`` to switch to the legacy build system. diff --git a/Help/release/dev/xcode-link-phase-all.rst b/Help/release/dev/xcode-link-phase-all.rst deleted file mode 100644 index a38f70c..0000000 --- a/Help/release/dev/xcode-link-phase-all.rst +++ /dev/null @@ -1,9 +0,0 @@ -xcode-link-phase-all --------------------- - -* The Xcode generator gained support for linking libraries and frameworks - via the *Link Binaries With Libraries* build phase instead of always by - embedding linker flags directly. This behavior is controlled by a new - :prop_tgt:`XCODE_LINK_BUILD_PHASE_MODE` target property, which is - initialized by a new :variable:`CMAKE_XCODE_LINK_BUILD_PHASE_MODE` - variable. diff --git a/Help/release/index.rst b/Help/release/index.rst index cdc3e8b..a8329a6 100644 --- a/Help/release/index.rst +++ b/Help/release/index.rst @@ -15,6 +15,7 @@ Releases .. toctree:: :maxdepth: 1 + 3.19 <3.19> 3.18 <3.18> 3.17 <3.17> 3.16 <3.16> -- cgit v0.12 From 1b6c0b375ef7cff9c05ddf49f8cf9342e1dc32d8 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 7 Oct 2020 07:53:51 -0400 Subject: Help: Organize and revise 3.19 release notes Add section headers similar to the 3.18 release notes and move each individual bullet into an appropriate section. Revise a few bullets. --- Help/release/3.19.rst | 400 +++++++++++++++++++++++++++----------------------- 1 file changed, 217 insertions(+), 183 deletions(-) diff --git a/Help/release/3.19.rst b/Help/release/3.19.rst index 38c3e63..d2ae9df 100644 --- a/Help/release/3.19.rst +++ b/Help/release/3.19.rst @@ -7,156 +7,184 @@ CMake 3.19 Release Notes Changes made since CMake 3.18 include the following. -* The :command:`add_test` command now (officially) supports whitespace and - other special characters in the name for the test it creates. - See policy :policy:`CMP0110`. +New Features +============ -* The :prop_tgt:`OSX_ARCHITECTURES` target property is now respected for the - ``ASM`` language. +Presets +------- -* The :command:`set_property`, :command:`get_property`, - and :command:`get_directory_property` commands' ``DIRECTORY`` - options now accept references to binary directory paths, - such as the value of :variable:`CMAKE_CURRENT_BINARY_DIR`. +* :manual:`cmake(1)` and :manual:`cmake-gui(1)` now recognize + ``CMakePresets.json`` and ``CMakeUserPresets.json`` files. -* :ref:`Interface Libraries` may now have source files added via - :command:`add_library` or :command:`target_sources`. Those - with sources will be generated as part of the build system. +Generators +---------- -* The :module:`CheckSourceCompiles` module has been added to - generalize :module:`CheckCSourceCompiles` and - :module:`CheckCXXSourceCompiles` to more languages. +* The :generator:`Xcode` generator now uses the Xcode "new build system" + when generating for Xcode 12.0 or higher. + See the :variable:`CMAKE_XCODE_BUILD_SYSTEM` variable. + One may use ``-T buildsystem=1`` to switch to the legacy build system. -* The :module:`CheckSourceRuns` module has been added to - generalize :module:`CheckCSourceRuns` and - :module:`CheckCXXSourceRuns` to more languages. +* The :generator:`Xcode` generator gained support for linking libraries and + frameworks via the *Link Binaries With Libraries* build phase instead of + always by embedding linker flags directly. This behavior is controlled by + a new :prop_tgt:`XCODE_LINK_BUILD_PHASE_MODE` target property, which is + initialized by a new :variable:`CMAKE_XCODE_LINK_BUILD_PHASE_MODE` + variable. -* The :module:`CheckCompilerFlag` module has been added to - generalize :module:`CheckCCompilerFlag` and - :module:`CheckCXXCompilerFlag` to more languages. +* The :ref:`Visual Studio Generators` for VS 2015 and above gained support + for the Visual Studio Tools for Android. One may now set + :variable:`CMAKE_SYSTEM_NAME` to ``Android`` to generate ``.vcxproj`` files + for the Android tools. -* A :variable:`CMAKE_CLANG_VFS_OVERLAY` variable was added to tell - Clang to use a VFS overlay to support the Windows SDK when - cross-compiling from hosts with case-sensitive filesystems. +Languages +--------- + +* CMake learned to support ``ISPC`` as a first-class language that can be + enabled via the :command:`project` and :command:`enable_language` commands. + ``ISPC`` is currently supported by the :ref:`Makefile Generators` + and the :generator:`Ninja` generator on Linux, macOS, and Windows + using the Intel ISPC compiler. + +* ``CUDA`` language support for Clang now includes: + + - separable compilation (:prop_tgt:`CUDA_SEPARABLE_COMPILATION`), and + - finding scattered toolkit installations when cross-compiling. + +File-Based API +-------------- + +* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has + been updated to 2.2. + +* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object + gained a new ``languageStandard`` field in the ``compileGroups`` objects. -* The ``Clang`` compiler gained support for handling system include directories - when running on Windows. +Command-Line +------------ -* The :manual:`cmake(1)` gained a ``-E create_hardlink`` command-line tool +* The :manual:`cmake(1)` command-line tool's ``--install`` mode gained a + ``--default-directory-permissions`` option. + +* :manual:`cmake(1)` gained a ``-E create_hardlink`` command-line tool that can be used to create hardlinks between files. -* The :manual:`CMake GUI ` now has an environment variable editor. +GUI +--- + +* The :manual:`CMake GUI ` now has an environment variable + editor. + +Commands +-------- + +* The :command:`add_test` command now (officially) supports whitespace and + other special characters in the name for the test it creates. + See policy :policy:`CMP0110`. * The :command:`cmake_language` command gained a ``DEFER`` mode to schedule command calls to occur at the end of processing a directory. -* :module:`CMakePackageConfigHelpers` module learned to manage version range. - * The :command:`cmake_path` command was added for operations on filesystem paths. -* :manual:`cmake(1)` and :manual:`cmake-gui(1)` now recognize - ``CMakePresets.json`` and ``CMakeUserPresets.json`` files. - -* The :variable:`CMAKE__COMPILER` variable may now be used to - store "mandatory" compiler flags like the :envvar:`CC` and other environment variables. - -* The :variable:`CMAKE__FLAGS_INIT` variable will now be considered during - the compiler indentification check if other sources like :variable:`CMAKE__FLAGS` - or :envvar:`CFLAGS` are not set. - * The :command:`configure_file` command gained a ``NO_SOURCE_PERMISSIONS`` option to suppress copying the input file's permissions to the output file. -* :cpack_gen:`CPack External Generator` learned the :variable:`CPACK_EXTERNAL_BUILT_PACKAGES` variable. +* The :command:`execute_process` command gained a ``COMMAND_ERROR_IS_FATAL`` + option to specify a fatal error. -* CPack learned the :variable:`CPACK_PRE_BUILD_SCRIPTS`, :variable:`CPACK_POST_BUILD_SCRIPTS`, - and :variable:`CPACK_PACKAGE_FILES` variables. +* The :command:`file(ARCHIVE_CREATE)` command gained a ``COMPRESSION_LEVEL`` + option to specify the compression level. -* The :cpack_gen:`CPack WIX Generator` gained a - :variable:`CPACK_WIX_CUSTOM_XMLNS` option to specify custom XML namespaces. +* The :command:`file(CHMOD)` and :command:`file(CHMOD_RECURSE)` subcommands + were added to set permissions of files and directories. -* :manual:`ctest(1)` gained support for cuda-memcheck as ``CTEST_MEMORYCHECK_COMMAND``. - The different tools (memcheck, racecheck, synccheck, initcheck) supplied by - cuda-memcheck can be selected by setting the appropriate flags using the - ``CTEST_MEMORYCHECK_COMMAND_OPTIONS`` variable. - The default flags are `--tool memcheck --leak-check full`. +* The :command:`file(DOWNLOAD)` command ```` argument is now + optional. If it is not specified, the file is not saved. -* The :module:`CheckCompilerFlag` module was extended to - support 'CUDA'. +* The :command:`file(GENERATE)` command gained a new ``TARGET`` keyword to + support resolving target-dependent generator expressions. -* The :module:`CheckSourceCompiles` module was extended to - support 'CUDA'. +* The :command:`file` gained sub-command `REAL_PATH` to compute a path with + symlinks resolved. -* The :module:`CheckSourceRuns` module was extended to - support 'CUDA'. +* The :command:`find_package` command learned to handle a version range. -* The :module:`CheckLinkerFlag` module has been extended to - support the validity of CUDA link flags. +* The :command:`separate_arguments` command gained new ``PROGRAM`` option to + search program. -* :prop_tgt:`CUDA_SEPARABLE_COMPILATION` is now supported when using Clang. +* The :command:`set_property`, :command:`get_property`, + and :command:`get_directory_property` commands' ``DIRECTORY`` + options now accept references to binary directory paths, + such as the value of :variable:`CMAKE_CURRENT_BINARY_DIR`. -* If ``CUDA`` compiler detection fails with user-specified - :variable:`CMAKE_CUDA_ARCHITECTURES` or :variable:`CMAKE_CUDA_HOST_COMPILER` - an error is raised. +* The :command:`string` command gained set of new ``JSON`` sub commands + to provide JSON parsing capabilities. -* Compiler ABI detection now handles NVCC-style ``-Werror`` flags. +Variables +--------- -* Scattered toolkit installations are now recognized when crosscompiling - ``CUDA`` using Clang. -* :module:`FindCUDAToolkit` now finds scattered toolkit installations when - crosscompiling. +* The :variable:`CMAKE_CLANG_VFS_OVERLAY` variable was added to tell + Clang to use a VFS overlay to support the Windows SDK when + cross-compiling from hosts with case-sensitive filesystems. -* :ref:`Makefile Generators` no longer repeat custom commands from target - dependencies. See policy :policy:`CMP0113`. +* The :variable:`CMAKE_MFC_FLAG` variable now supports generator expressions. -* An explicit deprecation diagnostic was added for policy ``CMP0071`` - (``CMP0071`` and below were already deprecated). - The :manual:`cmake-policies(7)` manual explains that the OLD behaviors - of all policies are deprecated and that projects should port to the - NEW behaviors. +* The :variable:`CMAKE_OPTIMIZE_DEPENDENCIES` variable was added to + initialize the new :prop_tgt:`OPTIMIZE_DEPENDENCIES` target property and + avoid unnecessarily building dependencies for a static library. -* Compatibility with versions of CMake older than 2.8.12 is now deprecated - and will be removed from a future version. Calls to - :command:`cmake_minimum_required` or :command:`cmake_policy` that set - the policy version to an older value now issue a deprecation diagnostic. +* The :variable:`CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM` variable + was added to tell the :ref:`Visual Studio Generators` what maximum + version of the Windows SDK to choose. + +Properties +---------- -* The :prop_tgt:`EXCLUDE_FROM_ALL` target property gained support for +* The :prop_tgt:`EXCLUDE_FROM_ALL` target property now supports :manual:`generator expressions `. -* The :command:`execute_process` command gained a ``COMMAND_ERROR_IS_FATAL`` - option to specify a fatal error. +* The :prop_tgt:`OPTIMIZE_DEPENDENCIES` target property was added to + avoid unnecessarily building dependencies for a static library. -* The :module:`ExternalProject` module handling of step target dependencies - has been revised. See policy :policy:`CMP0114`. +* The :prop_tgt:`PCH_INSTANTIATE_TEMPLATES` target property was added to enable + template instantiation in the precompiled header. This is enabled by default + and offers a roughly 20% compile time improvement. Currently only supported + by Clang 11. -* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has - been updated to 2.2. -* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object gained - a new ``languageStandard`` field in the ``compileGroups`` objects. +* The :prop_tgt:`WIN32_EXECUTABLE` target property now supports + :manual:`generator expressions `. -* The :command:`file(ARCHIVE_CREATE)` command gained a ``COMPRESSION_LEVEL`` - option to specify the compression level. +Modules +------- -* Add :command:`file(CHMOD)` and :command:`file(CHMOD_RECURSE)` to - set permissions of files and directories. +* The :module:`CheckCompilerFlag` module has been added to + generalize :module:`CheckCCompilerFlag` and + :module:`CheckCXXCompilerFlag` to more languages. + It also supports the ``CUDA`` and ``ISPC`` languages. -* The ```` argument is now optional for :command:`file(DOWNLOAD)`. If it - is not specified, the file is not saved. +* The :module:`CheckLinkerFlag` module now supports the ``CUDA`` language. -* The :command:`file(GENERATE)` command gained a new ``TARGET`` keyword to - support resolving target-dependent generator expressions. +* The :module:`CheckSourceCompiles` module has been added to + generalize :module:`CheckCSourceCompiles` and + :module:`CheckCXXSourceCompiles` to more languages. + It also supports the ``CUDA`` and ``ISPC`` languages. -* The :command:`file` gained sub-command `REAL_PATH` to compute a path with - symlinks resolved. +* The :module:`CheckSourceRuns` module has been added to + generalize :module:`CheckCSourceRuns` and + :module:`CheckCXXSourceRuns` to more languages. + It also supports the ``CUDA`` language. -* The :module:`FindCUDAToolkit` module gained support for finding CUDA toolkits - that do not contain ``nvcc``. +* :module:`CMakePackageConfigHelpers` module learned to manage version range. -* The :command:`find_package` command learned to handle a version range. +* The :module:`FindCUDAToolkit` module gained support for finding CUDA + toolkits that do not contain ``nvcc``, as well as for finding scattered + toolkit installations when cross-compiling. -* The :command:`find_program` command now requires permission to execute - but not to read the file found. See policy :policy:`CMP0109`. +* The :module:`FindPackageHandleStandardArgs` module learned to handle + version range. It also gained the ``find_package_check_version()`` command to + check the validity of a version against version-related arguments of + :command:`find_package` command. * The :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython` modules gained the capability to manage a version range. @@ -175,113 +203,119 @@ Changes made since CMake 3.18 include the following. * The :module:`FindTIFF` module gained a ``CXX`` component to find the ``tiffxx`` library containing C++ bindings. -* The :module:`FindVulkan` module gained a new output variable - ``Vulkan_GLSLC_EXECUTABLE`` which contains the path to the - GLSL SPIR-V compiler. +* The :module:`FindVulkan` module now provides a ``Vulkan::glslc`` imported + target and associated ``Vulkan_GLSLC_EXECUTABLE`` variable which contain + the path to the GLSL SPIR-V compiler. -* The :module:`FindVulkan` module gained a new target - ``Vulkan::glslc`` which contains the path to the - GLSL SPIR-V compiler. +* :module:`UseSWIG` module gains new source file properties ``OUTPUT_DIR`` and + ``OUTFILE_DIR`` to manage output directories on per source basis. -* The :module:`FindPackageHandleStandardArgs` module learned to handle - version range. It also gained the ``find_package_check_version()`` command to - check the validity of a version against version-related arguments of - :command:`find_package` command. +CTest +----- -* The :variable:`CMAKE_MFC_FLAG` variable now supports generator expressions. +* :manual:`ctest(1)` now supports ``compute-sanitizer`` (``cuda-memcheck``) as + ``CTEST_MEMORYCHECK_COMMAND``. The different tools (memcheck, racecheck, + synccheck, initcheck) supplied by ``compute-sanitizer`` can be selected by + adding appropriate flags to the ``CTEST_MEMORYCHECK_COMMAND_OPTIONS`` + variable. The default flags are ``--tool memcheck --leak-check full``. -* A new guide on :guide:`IDE integration ` has been added. +CPack +----- -* An imported target with a missing location now fails during generation if the - location is used. See policy :policy:`CMP0111`. +* CPack gained the :variable:`CPACK_PRE_BUILD_SCRIPTS`, + :variable:`CPACK_POST_BUILD_SCRIPTS`, and :variable:`CPACK_PACKAGE_FILES` + variables. -* The ``--install`` argument of the :manual:`cmake(1)` command line tool gained a - ``--default-directory-permissions`` argument. +* The :cpack_gen:`CPack External Generator` gained the + :variable:`CPACK_EXTERNAL_BUILT_PACKAGES` variable. -* The :module:`CheckCompilerFlag` module was extended to - support 'ISPC'. +* The :cpack_gen:`CPack WIX Generator` gained a + :variable:`CPACK_WIX_CUSTOM_XMLNS` option to specify custom XML namespaces. -* The :module:`CheckSourceCompiles` module was extended to - support 'ISPC'. +Other +----- +* :ref:`Interface Libraries` may now have source files added via + :command:`add_library` or :command:`target_sources`. Those + with sources will be generated as part of the build system. -* CMake learned to support ``ISPC`` as a first-class language that can be - enabled via the :command:`project` and :command:`enable_language` commands. +Deprecated and Removed Features +=============================== -* ``ISPC`` is currently supported by the :ref:`Makefile Generators` - and the :generator:`Ninja` generator on Linux, macOS, and Windows. +* Compatibility with versions of CMake older than 2.8.12 is now deprecated + and will be removed from a future version. Calls to + :command:`cmake_minimum_required` or :command:`cmake_policy` that set + the policy version to an older value now issue a deprecation diagnostic. -* The Intel ISPC compiler (``ispc``) is supported. +* An explicit deprecation diagnostic was added for policy ``CMP0071`` + (``CMP0071`` and below were already deprecated). + The :manual:`cmake-policies(7)` manual explains that the OLD behaviors + of all policies are deprecated and that projects should port to the + NEW behaviors. -* Building for macOS will now use the latest SDK available on the system, - unless the user has explicitly chosen a SDK using :variable:`CMAKE_OSX_SYSROOT`. +* macOS SDKs older than 10.5 are no longer supported. - The deployment target or system macOS version will not affect - the choice of SDK. +* :manual:`cmake-gui(1)` now requires Qt5. + Support for compiling with Qt4 has been removed. -* macOS SDKs older than 10.5 are no longer supported. +* The :manual:`cmake(1)` command-line option ``--warn-unused-vars`` has + been removed and is now silently ignored. The option has not worked + correctly since CMake 3.3. -* A new target property, :prop_tgt:`OPTIMIZE_DEPENDENCIES`, was added to - avoid unnecessarily building dependencies for a static library. -* A new variable, :variable:`CMAKE_OPTIMIZE_DEPENDENCIES`, was added to - initialize the :prop_tgt:`OPTIMIZE_DEPENDENCIES` target property. +Documentation +============= -* The :prop_tgt:`PCH_INSTANTIATE_TEMPLATES` target property was added to enable - template instantiation in the precompiled header. This is enabled by default - and offers a roughly 20% compile time improvement. Currently only supported - by Clang 11. +The following guides have been added: -* The following target-based generator expressions that query for directory or - file name components no longer add a dependency on the evaluated target. - See policy :policy:`CMP0112`. +* :guide:`IDE Integration Guide` +* :guide:`Importing and Exporting Guide` - - ``TARGET_FILE_DIR`` - - ``TARGET_LINKER_FILE_BASE_NAME`` - - ``TARGET_LINKER_FILE_NAME`` - - ``TARGET_LINKER_FILE_DIR`` - - ``TARGET_SONAME_FILE_NAME`` - - ``TARGET_SONAME_FILE_DIR`` - - ``TARGET_PDB_FILE_NAME`` - - ``TARGET_PDB_FILE_DIR`` - - ``TARGET_BUNDLE_DIR`` - - ``TARGET_BUNDLE_CONTENT_DIR`` +Other Changes +============= -* :manual:`cmake-gui(1)` now requires Qt5. Support for compiling with Qt4 has - been removed. +* Building for macOS will now use the latest SDK available on the system, + unless the user has explicitly chosen a SDK using + :variable:`CMAKE_OSX_SYSROOT`. The deployment target or system macOS + version will not affect the choice of SDK. -* The :manual:`cmake(1)` command-line option ``--warn-unused-vars`` has - been removed and is now silently ignored. The option has not worked - correctly since CMake 3.3. +* The :variable:`CMAKE__COMPILER` variable may now be used to + store "mandatory" compiler flags like the :envvar:`CC` and other environment + variables. -* The :command:`separate_arguments` command gained new ``PROGRAM`` option to - search program. +* The :variable:`CMAKE__FLAGS_INIT` variable will now be considered + during the compiler identification check if other sources like + :variable:`CMAKE__FLAGS` or :envvar:`CFLAGS` are not set. -* The :command:`string` command gained set of new ``JSON`` sub commands to provide JSON - parsing capabilities. +* The :command:`find_program` command now requires permission to execute + but not to read the file found. See policy :policy:`CMP0109`. -* :module:`UseSWIG` module gains new source file properties ``OUTPUT_DIR`` and - ``OUTFILE_DIR`` to manage output directories on per source basis. +* An imported target with a missing location now fails during generation + if the location is used. See policy :policy:`CMP0111`. -* The :ref:`Visual Studio Generators` for Visual Studio 2015 and above gained - support for the Visual Studio Tools for Android. This allows you to set - :variable:`CMAKE_SYSTEM_NAME` to `Android` to generate `.vcxproj` files for - the Android tools. +* The following target-based generator expressions that query for directory or + file name components no longer add a dependency on the evaluated target. + See policy :policy:`CMP0112`. -* A :variable:`CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM` variable - was added to tell the :ref:`Visual Studio Generators` what maximumm - version of the Windows SDK to choose. + - ``TARGET_FILE_DIR`` + - ``TARGET_LINKER_FILE_BASE_NAME`` + - ``TARGET_LINKER_FILE_NAME`` + - ``TARGET_LINKER_FILE_DIR`` + - ``TARGET_SONAME_FILE_NAME`` + - ``TARGET_SONAME_FILE_DIR`` + - ``TARGET_PDB_FILE_NAME`` + - ``TARGET_PDB_FILE_DIR`` + - ``TARGET_BUNDLE_DIR`` + - ``TARGET_BUNDLE_CONTENT_DIR`` -* The :prop_tgt:`WIN32_EXECUTABLE` target property now supports - :manual:`generator expressions `. +* :ref:`Makefile Generators` no longer repeat custom commands from target + dependencies. See policy :policy:`CMP0113`. -* The :generator:`Xcode` generator now uses the Xcode "new build system" - when generating for Xcode 12.0 or higher. - See the :variable:`CMAKE_XCODE_BUILD_SYSTEM` variable. - One may use ``-T buildsystem=1`` to switch to the legacy build system. +* The :module:`ExternalProject` module handling of step target dependencies + has been revised. See policy :policy:`CMP0114`. -* The Xcode generator gained support for linking libraries and frameworks - via the *Link Binaries With Libraries* build phase instead of always by - embedding linker flags directly. This behavior is controlled by a new - :prop_tgt:`XCODE_LINK_BUILD_PHASE_MODE` target property, which is - initialized by a new :variable:`CMAKE_XCODE_LINK_BUILD_PHASE_MODE` - variable. +* The :prop_tgt:`OSX_ARCHITECTURES` target property is now respected + for the ``ASM`` language. + +* If ``CUDA`` compiler detection fails with user-specified + :variable:`CMAKE_CUDA_ARCHITECTURES` or + :variable:`CMAKE_CUDA_HOST_COMPILER`, an error is raised. -- cgit v0.12 From e1ab55b4ca4cf6561c90a38dc8644cf3654e7b1d Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 7 Oct 2020 13:27:25 -0400 Subject: Help: Update Sphinx versionadded directives for 3.19 release Run the script: Utilities/Sphinx/update_versions.py --since v3.18.0 --overwrite --- Help/policy/CMP0110.rst | 2 ++ Help/prop_tgt/OPTIMIZE_DEPENDENCIES.rst | 2 ++ Help/prop_tgt/XCODE_LINK_BUILD_PHASE_MODE.rst | 2 ++ Help/variable/CMAKE_OPTIMIZE_DEPENDENCIES.rst | 2 ++ Help/variable/CMAKE_XCODE_BUILD_SYSTEM.rst | 2 ++ Help/variable/CMAKE_XCODE_LINK_BUILD_PHASE_MODE.rst | 2 ++ 6 files changed, 12 insertions(+) diff --git a/Help/policy/CMP0110.rst b/Help/policy/CMP0110.rst index bc198aa..25a0008 100644 --- a/Help/policy/CMP0110.rst +++ b/Help/policy/CMP0110.rst @@ -1,6 +1,8 @@ CMP0110 ------- +.. versionadded:: 3.19 + :command:`add_test` supports arbitrary characters in test names. :command:`add_test` can now (officially) create tests with whitespace and diff --git a/Help/prop_tgt/OPTIMIZE_DEPENDENCIES.rst b/Help/prop_tgt/OPTIMIZE_DEPENDENCIES.rst index 533cf6a..2fdf1a9 100644 --- a/Help/prop_tgt/OPTIMIZE_DEPENDENCIES.rst +++ b/Help/prop_tgt/OPTIMIZE_DEPENDENCIES.rst @@ -1,6 +1,8 @@ OPTIMIZE_DEPENDENCIES --------------------- +.. versionadded:: 3.19 + Activates dependency optimization of static and object libraries. When this property is set to true, some dependencies for a static or object diff --git a/Help/prop_tgt/XCODE_LINK_BUILD_PHASE_MODE.rst b/Help/prop_tgt/XCODE_LINK_BUILD_PHASE_MODE.rst index 10cdedc..2a79bca 100644 --- a/Help/prop_tgt/XCODE_LINK_BUILD_PHASE_MODE.rst +++ b/Help/prop_tgt/XCODE_LINK_BUILD_PHASE_MODE.rst @@ -1,6 +1,8 @@ XCODE_LINK_BUILD_PHASE_MODE --------------------------- +.. versionadded:: 3.19 + When using the :generator:`Xcode` generator, libraries to be linked will be specified in the Xcode project file using either the "Link Binary With Libraries" build phase or directly as linker flags. The former allows Xcode diff --git a/Help/variable/CMAKE_OPTIMIZE_DEPENDENCIES.rst b/Help/variable/CMAKE_OPTIMIZE_DEPENDENCIES.rst index eed352a..0ffb902 100644 --- a/Help/variable/CMAKE_OPTIMIZE_DEPENDENCIES.rst +++ b/Help/variable/CMAKE_OPTIMIZE_DEPENDENCIES.rst @@ -1,4 +1,6 @@ CMAKE_OPTIMIZE_DEPENDENCIES --------------------------- +.. versionadded:: 3.19 + Initializes the :prop_tgt:`OPTIMIZE_DEPENDENCIES` target property. diff --git a/Help/variable/CMAKE_XCODE_BUILD_SYSTEM.rst b/Help/variable/CMAKE_XCODE_BUILD_SYSTEM.rst index 587a5c9..d153061 100644 --- a/Help/variable/CMAKE_XCODE_BUILD_SYSTEM.rst +++ b/Help/variable/CMAKE_XCODE_BUILD_SYSTEM.rst @@ -1,6 +1,8 @@ CMAKE_XCODE_BUILD_SYSTEM ------------------------ +.. versionadded:: 3.19 + Xcode build system selection. The :generator:`Xcode` generator defines this variable to indicate which diff --git a/Help/variable/CMAKE_XCODE_LINK_BUILD_PHASE_MODE.rst b/Help/variable/CMAKE_XCODE_LINK_BUILD_PHASE_MODE.rst index ee4d37e..17189c0 100644 --- a/Help/variable/CMAKE_XCODE_LINK_BUILD_PHASE_MODE.rst +++ b/Help/variable/CMAKE_XCODE_LINK_BUILD_PHASE_MODE.rst @@ -1,6 +1,8 @@ CMAKE_XCODE_LINK_BUILD_PHASE_MODE --------------------------------- +.. versionadded:: 3.19 + This variable is used to initialize the :prop_tgt:`XCODE_LINK_BUILD_PHASE_MODE` property on targets. It affects the methods that the :generator:`Xcode` generator uses to link -- cgit v0.12