mirror of
https://github.com/crystalidea/qt-build-tools.git
synced 2025-07-01 23:21:46 +08:00
qt 6.5.3
This commit is contained in:
473
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.0.rst
Normal file
473
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.0.rst
Normal file
@ -0,0 +1,473 @@
|
||||
CMake 3.0 Release Notes
|
||||
***********************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 2.8.12 include the following.
|
||||
|
||||
Documentation Changes
|
||||
=====================
|
||||
|
||||
* The CMake documentation has been converted to reStructuredText and
|
||||
now transforms via Sphinx (`<https://www.sphinx-doc.org>`__) into man and
|
||||
html pages. This allows the documentation to be properly indexed
|
||||
and to contain cross-references.
|
||||
|
||||
Conversion from the old internal documentation format was done by
|
||||
an automatic process so some documents may still contain artifacts.
|
||||
They will be updated incrementally over time.
|
||||
|
||||
A basic reStructuredText processor has been implemented to support
|
||||
``cmake --help-command`` and similar command-line options.
|
||||
|
||||
* New manuals were added:
|
||||
|
||||
- :manual:`cmake-buildsystem(7)`
|
||||
- :manual:`cmake-commands(7)`, replacing ``cmakecommands(1)``
|
||||
and ``cmakecompat(1)``
|
||||
- :manual:`cmake-developer(7)`
|
||||
- :manual:`cmake-generator-expressions(7)`
|
||||
- :manual:`cmake-generators(7)`
|
||||
- :manual:`cmake-language(7)`
|
||||
- :manual:`cmake-modules(7)`, replacing ``cmakemodules(1)``
|
||||
- :manual:`cmake-packages(7)`
|
||||
- :manual:`cmake-policies(7)`, replacing ``cmakepolicies(1)``
|
||||
- :manual:`cmake-properties(7)`, replacing ``cmakeprops(1)``
|
||||
- :manual:`cmake-qt(7)`
|
||||
- :manual:`cmake-toolchains(7)`
|
||||
- :manual:`cmake-variables(7)`, replacing ``cmakevars(1)``
|
||||
|
||||
* Release notes for CMake 3.0.0 and above will now be included with
|
||||
the html documentation.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Syntax
|
||||
------
|
||||
|
||||
* The CMake language has been extended with
|
||||
:ref:`Bracket Argument` and :ref:`Bracket Comment`
|
||||
syntax inspired by Lua long brackets::
|
||||
|
||||
set(x [===[bracket argument]===] #[[bracket comment]])
|
||||
|
||||
Content between equal-length open- and close-brackets is taken
|
||||
literally with no variable replacements.
|
||||
|
||||
.. warning::
|
||||
This syntax change could not be made in a fully compatible
|
||||
way. No policy is possible because syntax parsing occurs before
|
||||
any chance to set a policy. Existing code using an unquoted
|
||||
argument that starts with an open bracket will be interpreted
|
||||
differently without any diagnostic. Fortunately the syntax is
|
||||
obscure enough that this problem is unlikely in practice.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* A new :generator:`CodeLite` extra generator is available
|
||||
for use with the Makefile or Ninja generators.
|
||||
|
||||
* A new :generator:`Kate` extra generator is available
|
||||
for use with the Makefile or Ninja generators.
|
||||
|
||||
* The :generator:`Ninja` generator learned to use ``ninja`` job pools
|
||||
when specified by a new :prop_gbl:`JOB_POOLS` global property.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_library` command learned a new ``INTERFACE``
|
||||
library type. Interface libraries have no build rules but may
|
||||
have properties defining
|
||||
:manual:`usage requirements <cmake-buildsystem(7)>`
|
||||
and may be installed, exported, and imported. This is useful to
|
||||
create header-only libraries that have concrete link dependencies
|
||||
on other libraries.
|
||||
|
||||
* The :command:`export()` command learned a new ``EXPORT`` mode that
|
||||
retrieves the list of targets to export from an export set configured
|
||||
by the :command:`install(TARGETS)` command ``EXPORT`` option. This
|
||||
makes it easy to export from the build tree the same targets that
|
||||
are exported from the install tree.
|
||||
|
||||
* The :command:`export` command learned to work with multiple dependent
|
||||
export sets, thus allowing multiple packages to be built and exported
|
||||
from a single tree. The feature requires CMake to wait until the
|
||||
generation step to write the output file. This means one should not
|
||||
:command:`include` the generated targets file later during project
|
||||
configuration because it will not be available.
|
||||
Use :ref:`Alias Targets` instead. See policy :policy:`CMP0024`.
|
||||
|
||||
* The :command:`install(FILES)` command learned to support
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`
|
||||
in the list of files.
|
||||
|
||||
* The :command:`project` command learned to set some version variables
|
||||
to values specified by the new ``VERSION`` option or to empty strings.
|
||||
See policy :policy:`CMP0048`.
|
||||
|
||||
* The :command:`string` command learned a new ``CONCAT`` mode.
|
||||
It is particularly useful in combination with the new
|
||||
:ref:`Bracket Argument` syntax.
|
||||
|
||||
* The :command:`unset` command learned a ``PARENT_SCOPE`` option
|
||||
matching that of the :command:`set` command.
|
||||
|
||||
* The :command:`include_external_msproject` command learned
|
||||
to handle non-C++ projects like ``.vbproj`` or ``.csproj``.
|
||||
|
||||
* The :command:`ctest_update` command learned to update work trees
|
||||
managed by the Perforce (p4) version control tool.
|
||||
|
||||
* The :command:`message` command learned a ``DEPRECATION`` mode. Such
|
||||
messages are not issued by default, but may be issued as a warning if
|
||||
:variable:`CMAKE_WARN_DEPRECATED` is enabled, or as an error if
|
||||
:variable:`CMAKE_ERROR_DEPRECATED` is enabled.
|
||||
|
||||
* The :command:`target_link_libraries` command now allows repeated use of
|
||||
the ``LINK_PUBLIC`` and ``LINK_PRIVATE`` keywords.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* Variable :variable:`CMAKE_FIND_NO_INSTALL_PREFIX` has been
|
||||
introduced to tell CMake not to add the value of
|
||||
:variable:`CMAKE_INSTALL_PREFIX` to the
|
||||
:variable:`CMAKE_SYSTEM_PREFIX_PATH` variable by default.
|
||||
This is useful when building a project that installs some
|
||||
of its own dependencies to avoid finding files it is about
|
||||
to replace.
|
||||
|
||||
* Variable :variable:`CMAKE_STAGING_PREFIX` was introduced for use
|
||||
when cross-compiling to specify an installation prefix on the
|
||||
host system that differs from a :variable:`CMAKE_INSTALL_PREFIX`
|
||||
value meant for the target system.
|
||||
|
||||
* Variable :variable:`CMAKE_SYSROOT` was introduced to specify the
|
||||
toolchain SDK installation prefix, typically for cross-compiling.
|
||||
This is used to pass a ``--sysroot`` option to the compiler and
|
||||
as a prefix searched by ``find_*`` commands.
|
||||
|
||||
* Variable :variable:`CMAKE_<LANG>_COMPILER_TARGET` was introduced
|
||||
for use when cross-compiling to specify the target platform in the
|
||||
:ref:`toolchain file <Cross Compiling Toolchain>` specified by the
|
||||
:variable:`CMAKE_TOOLCHAIN_FILE` variable.
|
||||
This is used to pass an option such as ``--target=<triple>`` to some
|
||||
cross-compiling compiler drivers.
|
||||
|
||||
* Variable :variable:`CMAKE_MAP_IMPORTED_CONFIG_<CONFIG>` has been
|
||||
introduced to optionally initialize the
|
||||
:prop_tgt:`MAP_IMPORTED_CONFIG_<CONFIG>` target property.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_dir:`ADDITIONAL_MAKE_CLEAN_FILES` directory property
|
||||
learned to support
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* A new directory property :prop_dir:`CMAKE_CONFIGURE_DEPENDS`
|
||||
was introduced to allow projects to specify additional
|
||||
files on which the configuration process depends. CMake will
|
||||
re-run at build time when one of these files is modified.
|
||||
Previously this was only possible to achieve by specifying
|
||||
such files as the input to a :command:`configure_file` command.
|
||||
|
||||
* A new :ref:`Qt AUTORCC` feature replaces the need to
|
||||
invoke ``qt4_add_resources()`` by allowing ``.qrc`` files to
|
||||
be listed as target sources.
|
||||
|
||||
* A new :ref:`Qt AUTOUIC` feature replaces the need to
|
||||
invoke ``qt4_wrap_ui()``.
|
||||
|
||||
* Test properties learned to support
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
This is useful to specify per-configuration values for test
|
||||
properties like :prop_test:`REQUIRED_FILES` and
|
||||
:prop_test:`WORKING_DIRECTORY`.
|
||||
|
||||
* A new :prop_test:`SKIP_RETURN_CODE` test property was introduced
|
||||
to tell :manual:`ctest(1)` to treat a particular test return code as
|
||||
if the test were not run. This is useful for test drivers to report
|
||||
that certain test requirements were not available.
|
||||
|
||||
* New types of :ref:`Compatible Interface Properties` were introduced,
|
||||
namely the :prop_tgt:`COMPATIBLE_INTERFACE_NUMBER_MAX` and
|
||||
:prop_tgt:`COMPATIBLE_INTERFACE_NUMBER_MIN` for calculating numeric
|
||||
maximum and minimum values respectively.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`CheckTypeSize` module ``check_type_size`` macro and
|
||||
the :module:`CheckStructHasMember` module ``check_struct_has_member``
|
||||
macro learned a new ``LANGUAGE`` option to optionally check C++ types.
|
||||
|
||||
* The :module:`ExternalData` module learned to work with no
|
||||
URL templates if a local store is available.
|
||||
|
||||
* The :module:`ExternalProject` function ``ExternalProject_Add``
|
||||
learned a new ``GIT_SUBMODULES`` option to specify a subset
|
||||
of available submodules to checkout.
|
||||
|
||||
* A new :module:`FindBacktrace` module has been added to support
|
||||
:command:`find_package(Backtrace)` calls.
|
||||
|
||||
* A new :module:`FindLua` module has been added to support
|
||||
:command:`find_package(Lua)` calls.
|
||||
|
||||
* The :module:`FindBoost` module learned a new ``Boost_NAMESPACE``
|
||||
option to change the ``boost`` prefix on library names.
|
||||
|
||||
* The :module:`FindBoost` module learned to control search
|
||||
for libraries with the ``g`` tag (for MS debug runtime) with
|
||||
a new ``Boost_USE_DEBUG_RUNTIME`` option. It is ``ON`` by
|
||||
default to preserve existing behavior.
|
||||
|
||||
* The :module:`FindJava` and :module:`FindJNI` modules learned
|
||||
to use a ``JAVA_HOME`` CMake variable or environment variable,
|
||||
and then try ``/usr/libexec/java_home`` on OS X.
|
||||
|
||||
* The :module:`UseJava` module ``add_jar`` function learned a new
|
||||
``MANIFEST`` option to pass the ``-m`` option to ``jar``.
|
||||
|
||||
* A new :module:`CMakeFindDependencyMacro` module was introduced with
|
||||
a ``find_dependency`` macro to find transitive dependencies in
|
||||
a :manual:`package configuration file <cmake-packages(7)>`. Such
|
||||
dependencies are omitted by the listing of the :module:`FeatureSummary`
|
||||
module.
|
||||
|
||||
* The :module:`FindQt4` module learned to create :ref:`Imported Targets`
|
||||
for Qt executables. This helps disambiguate when using multiple
|
||||
:manual:`Qt versions <cmake-qt(7)>` in the same buildsystem.
|
||||
|
||||
* The :module:`FindRuby` module learned to search for Ruby 2.0 and 2.1.
|
||||
|
||||
Generator Expressions
|
||||
---------------------
|
||||
|
||||
* New ``$<PLATFORM_ID>`` and ``$<PLATFORM_ID:...>``
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`
|
||||
have been added.
|
||||
|
||||
* The ``$<CONFIG>``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>` now has
|
||||
a variant which takes no argument. This is equivalent to the
|
||||
``$<CONFIGURATION>`` expression.
|
||||
|
||||
* New ``$<UPPER_CASE:...>`` and ``$<LOWER_CASE:...>``
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`
|
||||
generator expressions have been added.
|
||||
|
||||
* A new ``$<MAKE_C_IDENTIFIER:...>``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>` has
|
||||
been added.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* The :manual:`cmake(1)` ``-E`` option learned a new ``sleep`` command.
|
||||
|
||||
* The :manual:`ccmake(1)` dialog learned to honor the
|
||||
:prop_cache:`STRINGS` cache entry property to cycle through
|
||||
the enumerated list of possible values.
|
||||
|
||||
* The :manual:`cmake-gui(1)` dialog learned to remember window
|
||||
settings between sessions.
|
||||
|
||||
* The :manual:`cmake-gui(1)` dialog learned to remember the type
|
||||
of a cache entry for completion in the ``Add Entry`` dialog.
|
||||
|
||||
New Diagnostics
|
||||
===============
|
||||
|
||||
* Directories named in the :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES`
|
||||
target property of imported targets linked conditionally by a
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
were not checked for existence. Now they are checked.
|
||||
See policy :policy:`CMP0027`.
|
||||
|
||||
* Build target names must now match a validity pattern and may no longer
|
||||
conflict with CMake-defined targets. See policy :policy:`CMP0037`.
|
||||
|
||||
* Build targets that specify themselves as a link dependency were
|
||||
silently accepted but are now diagnosed. See :policy:`CMP0038`.
|
||||
|
||||
* The :command:`target_link_libraries` command used to silently ignore
|
||||
calls specifying as their first argument build targets created by
|
||||
:command:`add_custom_target` but now diagnoses this mistake.
|
||||
See policy :policy:`CMP0039`.
|
||||
|
||||
* The :command:`add_custom_command` command used to silently ignore
|
||||
calls specifying the ``TARGET`` option with a non-existent target
|
||||
but now diagnoses this mistake. See policy :policy:`CMP0040`.
|
||||
|
||||
* Relative paths in the :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES`
|
||||
target property used to be silently accepted if they contained a
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
but are now rejected. See policy :policy:`CMP0041`.
|
||||
|
||||
* The :command:`get_target_property` command learned to reject calls
|
||||
specifying a non-existent target. See policy :policy:`CMP0045`.
|
||||
|
||||
* The :command:`add_dependencies` command learned to reject calls
|
||||
specifying a dependency on a non-existent target.
|
||||
See policy :policy:`CMP0046`.
|
||||
|
||||
* Link dependency analysis learned to assume names containing ``::``
|
||||
refer to :ref:`Alias Targets` or :ref:`Imported Targets`. It will
|
||||
now produce an error if such a linked target is missing. Previously
|
||||
in this case CMake generated a link line that failed at build time.
|
||||
See policy :policy:`CMP0028`.
|
||||
|
||||
* When the :command:`project` or :command:`enable_language` commands
|
||||
initialize support for a language, it is now an error if the full
|
||||
path to the compiler cannot be found and stored in the corresponding
|
||||
:variable:`CMAKE_<LANG>_COMPILER` variable. This produces nicer error
|
||||
messages up front and stops processing when no working compiler
|
||||
is known to be available.
|
||||
|
||||
* Target sources specified with the :command:`add_library` or
|
||||
:command:`add_executable` command learned to reject items which
|
||||
require an undocumented extra layer of variable expansion.
|
||||
See policy :policy:`CMP0049`.
|
||||
|
||||
* Use of :command:`add_custom_command` undocumented ``SOURCE``
|
||||
signatures now results in an error. See policy :policy:`CMP0050`.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* Compatibility options supporting code written for CMake versions
|
||||
prior to 2.4 have been removed.
|
||||
|
||||
* Several long-outdated commands that should no longer be called
|
||||
have been disallowed in new code by policies:
|
||||
|
||||
- Policy :policy:`CMP0029` disallows :command:`subdir_depends`
|
||||
- Policy :policy:`CMP0030` disallows :command:`use_mangled_mesa`
|
||||
- Policy :policy:`CMP0031` disallows :command:`load_command`
|
||||
- Policy :policy:`CMP0032` disallows :command:`output_required_files`
|
||||
- Policy :policy:`CMP0033` disallows :command:`export_library_dependencies`
|
||||
- Policy :policy:`CMP0034` disallows :command:`utility_source`
|
||||
- Policy :policy:`CMP0035` disallows :command:`variable_requires`
|
||||
- Policy :policy:`CMP0036` disallows :command:`build_name`
|
||||
|
||||
* The :manual:`cmake(1)` ``-i`` wizard mode has been removed.
|
||||
Instead use an interactive dialog such as :manual:`ccmake(1)`
|
||||
or use the ``-D`` option to set cache values from the command line.
|
||||
|
||||
* The builtin documentation formatters that supported command-line
|
||||
options such as ``--help-man`` and ``--help-html`` have been removed
|
||||
in favor of the above-mentioned new documentation system. These and
|
||||
other command-line options that used to generate man- and html-
|
||||
formatted pages no longer work. The :manual:`cmake(1)`
|
||||
``--help-custom-modules`` option now produces a warning at runtime
|
||||
and generates a minimal document that reports the limitation.
|
||||
|
||||
* The :prop_dir:`COMPILE_DEFINITIONS_<CONFIG>` directory properties and the
|
||||
:prop_tgt:`COMPILE_DEFINITIONS_<CONFIG>` target properties have been
|
||||
deprecated. Instead set the corresponding :prop_dir:`COMPILE_DEFINITIONS`
|
||||
directory property or :prop_tgt:`COMPILE_DEFINITIONS` target property and
|
||||
use :manual:`generator expressions <cmake-generator-expressions(7)>` like
|
||||
``$<CONFIG:...>`` to specify per-configuration definitions.
|
||||
See policy :policy:`CMP0043`.
|
||||
|
||||
* The :prop_tgt:`LOCATION` target property should no longer be read from
|
||||
non-IMPORTED targets. It does not make sense in multi-configuration
|
||||
generators since the build configuration is not known while configuring
|
||||
the project. It has been superseded by the ``$<TARGET_FILE>`` generator
|
||||
expression. See policy :policy:`CMP0026`.
|
||||
|
||||
* The :prop_tgt:`COMPILE_FLAGS` target property is now documented
|
||||
as deprecated, though no warning is issued. Use the
|
||||
:prop_tgt:`COMPILE_OPTIONS` target property or the
|
||||
:command:`target_compile_options` command instead.
|
||||
|
||||
* The :module:`GenerateExportHeader` module ``add_compiler_export_flags``
|
||||
function is now deprecated. It has been superseded by the
|
||||
:prop_tgt:`<LANG>_VISIBILITY_PRESET` and
|
||||
:prop_tgt:`VISIBILITY_INLINES_HIDDEN` target properties.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The version scheme was changed to use only two components for
|
||||
the feature level instead of three. The third component will
|
||||
now be used for bug-fix releases or the date of development versions.
|
||||
See the :variable:`CMAKE_VERSION` variable documentation for details.
|
||||
|
||||
* The default install locations of CMake itself on Windows and
|
||||
OS X no longer contain the CMake version number. This allows
|
||||
for easy replacement without re-generating local build trees
|
||||
manually.
|
||||
|
||||
* Generators for Visual Studio 10 (2010) and later were renamed to
|
||||
include the product year like generators for older VS versions:
|
||||
|
||||
- ``Visual Studio 10`` -> :generator:`Visual Studio 10 2010`
|
||||
- ``Visual Studio 11`` -> :generator:`Visual Studio 11 2012`
|
||||
- ``Visual Studio 12`` -> :generator:`Visual Studio 12 2013`
|
||||
|
||||
This clarifies which generator goes with each Visual Studio
|
||||
version. The old names are recognized for compatibility.
|
||||
|
||||
* The :variable:`CMAKE_<LANG>_COMPILER_ID` value for Apple-provided
|
||||
Clang is now ``AppleClang``. It must be distinct from upstream
|
||||
Clang because the version numbers differ.
|
||||
See policy :policy:`CMP0025`.
|
||||
|
||||
* The :variable:`CMAKE_<LANG>_COMPILER_ID` value for ``qcc`` on QNX
|
||||
is now ``QCC``. It must be distinct from ``GNU`` because the
|
||||
command-line options differ. See policy :policy:`CMP0047`.
|
||||
|
||||
* On 64-bit OS X the :variable:`CMAKE_HOST_SYSTEM_PROCESSOR` value
|
||||
is now correctly detected as ``x86_64`` instead of ``i386``.
|
||||
|
||||
* On OS X, CMake learned to enable behavior specified by the
|
||||
:prop_tgt:`MACOSX_RPATH` target property by default. This activates
|
||||
use of ``@rpath`` for runtime shared library searches.
|
||||
See policy :policy:`CMP0042`.
|
||||
|
||||
* The :command:`build_command` command now returns a :manual:`cmake(1)`
|
||||
``--build`` command line instead of a direct invocation of the native
|
||||
build tool. When using ``Visual Studio`` generators, CMake and CTest
|
||||
no longer require :variable:`CMAKE_MAKE_PROGRAM` to be located up front.
|
||||
Selection of the proper msbuild or devenv tool is now performed as
|
||||
late as possible when the solution (``.sln``) file is available so
|
||||
it can depend on project content.
|
||||
|
||||
* The :manual:`cmake(1)` ``--build`` command now shares its own stdout
|
||||
and stderr pipes with the native build tool by default.
|
||||
The ``--use-stderr`` option that once activated this is now ignored.
|
||||
|
||||
* The ``$<C_COMPILER_ID:...>`` and ``$<CXX_COMPILER_ID:...>``
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`
|
||||
used to perform case-insensitive comparison but have now been
|
||||
corrected to perform case-sensitive comparison.
|
||||
See policy :policy:`CMP0044`.
|
||||
|
||||
* The builtin ``edit_cache`` target will no longer select
|
||||
:manual:`ccmake(1)` by default when no interactive terminal will
|
||||
be available (e.g. with :generator:`Ninja` or an IDE generator).
|
||||
Instead :manual:`cmake-gui(1)` will be preferred if available.
|
||||
|
||||
* The :module:`ExternalProject` download step learned to
|
||||
re-attempt download in certain cases to be more robust to
|
||||
temporary network failure.
|
||||
|
||||
* The :module:`FeatureSummary` no longer lists transitive
|
||||
dependencies since they were not directly requested by the
|
||||
current project.
|
||||
|
||||
* The ``cmake-mode.el`` major Emacs editing mode has been cleaned
|
||||
up and enhanced in several ways.
|
||||
|
||||
* Include directories specified in the
|
||||
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` of :ref:`Imported Targets`
|
||||
are treated as ``SYSTEM`` includes by default when handled as
|
||||
:ref:`usage requirements <Include Directories and Usage Requirements>`.
|
425
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.1.rst
Normal file
425
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.1.rst
Normal file
@ -0,0 +1,425 @@
|
||||
CMake 3.1 Release Notes
|
||||
***********************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.0 include the following.
|
||||
|
||||
Documentation Changes
|
||||
=====================
|
||||
|
||||
* A new :manual:`cmake-compile-features(7)` manual was added.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :generator:`Visual Studio 14 2015` generator was added.
|
||||
|
||||
Windows Phone and Windows Store
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
* Generators for Visual Studio 11 (2012) and above learned to generate
|
||||
projects for Windows Phone and Windows Store. One may set the
|
||||
:variable:`CMAKE_SYSTEM_NAME` variable to ``WindowsPhone``
|
||||
or ``WindowsStore`` on the :manual:`cmake(1)` command-line
|
||||
or in a :variable:`CMAKE_TOOLCHAIN_FILE` to activate these platforms.
|
||||
Also set :variable:`CMAKE_SYSTEM_VERSION` to ``8.0`` or ``8.1`` to
|
||||
specify the version of Windows to be targeted.
|
||||
|
||||
NVIDIA Nsight Tegra
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
* Generators for Visual Studio 10 (2010) and above learned to generate
|
||||
projects for NVIDIA Nsight Tegra Visual Studio Edition. One may set
|
||||
the :variable:`CMAKE_SYSTEM_NAME` variable to ``Android`` on the
|
||||
:manual:`cmake(1)` command-line or in a :variable:`CMAKE_TOOLCHAIN_FILE`
|
||||
to activate this platform.
|
||||
|
||||
Syntax
|
||||
------
|
||||
|
||||
* The :manual:`cmake-language(7)` syntax for :ref:`Variable References` and
|
||||
:ref:`Escape Sequences` was simplified in order to allow a much faster
|
||||
implementation. See policy :policy:`CMP0053`.
|
||||
|
||||
* The :command:`if` command no longer automatically dereferences
|
||||
variables named in quoted or bracket arguments. See policy
|
||||
:policy:`CMP0054`.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_custom_command` command learned to interpret
|
||||
:manual:`cmake-generator-expressions(7)` in arguments to ``DEPENDS``.
|
||||
|
||||
* The :command:`export(PACKAGE)` command learned to check the
|
||||
:variable:`CMAKE_EXPORT_NO_PACKAGE_REGISTRY` variable to skip
|
||||
exporting the package.
|
||||
|
||||
* The :command:`file(STRINGS)` command gained a new ``ENCODING``
|
||||
option to enable extraction of ``UTF-8`` strings.
|
||||
|
||||
* The :command:`find_package` command learned to check the
|
||||
:variable:`CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY` and
|
||||
:variable:`CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY`
|
||||
variables to skip searching the package registries.
|
||||
|
||||
* The :command:`get_property` command learned a new ``INSTALL`` scope
|
||||
for properties.
|
||||
|
||||
* The :command:`install` command learned a ``MESSAGE_NEVER`` option
|
||||
to avoid output during installation.
|
||||
|
||||
* The :command:`set_property` command learned a new ``INSTALL`` scope
|
||||
for properties.
|
||||
|
||||
* The :command:`string` command learned a new ``GENEX_STRIP`` subcommand
|
||||
which removes
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :command:`string` command learned a new ``UUID`` subcommand
|
||||
to generate a universally unique identifier.
|
||||
|
||||
* New :command:`target_compile_features` command allows populating the
|
||||
:prop_tgt:`COMPILE_FEATURES` target property, just like any other
|
||||
build variable.
|
||||
|
||||
* The :command:`target_sources` command was added to add to the
|
||||
:prop_tgt:`SOURCES` target property.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The Visual Studio generators for versions 8 (2005) and above
|
||||
learned to read the target platform name from a new
|
||||
:variable:`CMAKE_GENERATOR_PLATFORM` variable when it is
|
||||
not specified as part of the generator name. The platform
|
||||
name may be specified on the :manual:`cmake(1)` command line
|
||||
with the ``-A`` option, e.g. ``-G "Visual Studio 12 2013" -A x64``.
|
||||
|
||||
* The :variable:`CMAKE_GENERATOR_TOOLSET` variable may now be
|
||||
initialized in a toolchain file specified by the
|
||||
:variable:`CMAKE_TOOLCHAIN_FILE` variable. This is useful
|
||||
when cross-compiling with the Xcode or Visual Studio
|
||||
generators.
|
||||
|
||||
* The :variable:`CMAKE_INSTALL_MESSAGE` variable was introduced to
|
||||
optionally reduce output installation.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* New :prop_tgt:`CXX_STANDARD` and :prop_tgt:`CXX_EXTENSIONS` target
|
||||
properties may specify values which CMake uses to compute required
|
||||
compile options such as ``-std=c++11`` or ``-std=gnu++11``. The
|
||||
:variable:`CMAKE_CXX_STANDARD` and :variable:`CMAKE_CXX_EXTENSIONS`
|
||||
variables may be set to initialize the target properties.
|
||||
|
||||
* New :prop_tgt:`C_STANDARD` and :prop_tgt:`C_EXTENSIONS` target
|
||||
properties may specify values which CMake uses to compute required
|
||||
compile options such as ``-std=c11`` or ``-std=gnu11``. The
|
||||
:variable:`CMAKE_C_STANDARD` and :variable:`CMAKE_C_EXTENSIONS`
|
||||
variables may be set to initialize the target properties.
|
||||
|
||||
* New :prop_tgt:`COMPILE_FEATURES` target property may contain a list
|
||||
of features required to compile a target. CMake uses this
|
||||
information to ensure that the compiler in use is capable of building
|
||||
the target, and to add any necessary compile flags to support language
|
||||
features.
|
||||
|
||||
* New :prop_tgt:`COMPILE_PDB_NAME` and
|
||||
:prop_tgt:`COMPILE_PDB_OUTPUT_DIRECTORY` target properties
|
||||
were introduced to specify the MSVC compiler program database
|
||||
file location (``cl /Fd``). This complements the existing
|
||||
:prop_tgt:`PDB_NAME` and :prop_tgt:`PDB_OUTPUT_DIRECTORY`
|
||||
target properties that specify the linker program database
|
||||
file location (``link /pdb``).
|
||||
|
||||
* The :prop_tgt:`INTERFACE_LINK_LIBRARIES` target property now supports
|
||||
a ``$<LINK_ONLY:...>``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`.
|
||||
|
||||
* A new :prop_tgt:`INTERFACE_SOURCES` target property was introduced. This is
|
||||
consumed by dependent targets, which compile and link the listed sources.
|
||||
|
||||
* The :prop_tgt:`SOURCES` target property now contains
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
such as ``TARGET_OBJECTS`` when read at configure time, if
|
||||
policy :policy:`CMP0051` is ``NEW``.
|
||||
|
||||
* The :prop_tgt:`SOURCES` target property now generally supports
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`. The
|
||||
generator expressions may be used in the :command:`add_library` and
|
||||
:command:`add_executable` commands.
|
||||
|
||||
* It is now possible to write and append to the :prop_tgt:`SOURCES` target
|
||||
property. The :variable:`CMAKE_DEBUG_TARGET_PROPERTIES` variable may be
|
||||
used to trace the origin of sources.
|
||||
|
||||
* A :prop_sf:`VS_DEPLOYMENT_CONTENT` source file property was added
|
||||
to tell the Visual Studio generators to mark content for deployment
|
||||
in Windows Phone and Windows Store projects.
|
||||
|
||||
* A :prop_sf:`VS_DEPLOYMENT_LOCATION` source file property was added
|
||||
to tell the Visual Studio generators the relative location of content
|
||||
marked for deployment in Windows Phone and Windows Store projects.
|
||||
|
||||
* The :prop_tgt:`VS_WINRT_COMPONENT` target property was created to
|
||||
tell Visual Studio generators to compile a shared library as a
|
||||
Windows Runtime (WinRT) component.
|
||||
|
||||
* The :generator:`Xcode` generator learned to check source
|
||||
file properties :prop_sf:`XCODE_EXPLICIT_FILE_TYPE` and
|
||||
:prop_sf:`XCODE_LAST_KNOWN_FILE_TYPE` for a custom Xcode
|
||||
file reference type.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`BundleUtilities` module learned to resolve and replace
|
||||
``@rpath`` placeholders on OS X to correctly bundle applications
|
||||
using them.
|
||||
|
||||
* The :module:`CMakePackageConfigHelpers` module
|
||||
:command:`configure_package_config_file` command learned a new
|
||||
``INSTALL_PREFIX`` option to generate package configuration files
|
||||
meant for a prefix other than :variable:`CMAKE_INSTALL_PREFIX`.
|
||||
|
||||
* The :module:`CheckFortranSourceCompiles` module was added to
|
||||
provide a ``CHECK_Fortran_SOURCE_COMPILES`` macro.
|
||||
|
||||
* The :module:`ExternalData` module learned to tolerate a ``DATA{}``
|
||||
reference to a missing source file with a warning instead of
|
||||
rejecting it with an error. This helps developers write new
|
||||
``DATA{}`` references to test reference outputs that have not
|
||||
yet been created.
|
||||
|
||||
* The :module:`ExternalProject` module learned to support lzma-compressed
|
||||
source tarballs with ``.7z``, ``.tar.xz``, and ``.txz`` extensions.
|
||||
|
||||
* The :module:`ExternalProject` module ``ExternalProject_Add`` command
|
||||
learned a new ``BUILD_ALWAYS`` option to cause the external project
|
||||
build step to run every time the host project is built.
|
||||
|
||||
* The :module:`ExternalProject` module ``ExternalProject_Add`` command
|
||||
learned a new ``EXCLUDE_FROM_ALL`` option to cause the external
|
||||
project target to have the :prop_tgt:`EXCLUDE_FROM_ALL` target
|
||||
property set.
|
||||
|
||||
* The :module:`ExternalProject` module ``ExternalProject_Add_Step`` command
|
||||
learned a new ``EXCLUDE_FROM_MAIN`` option to cause the step to not be
|
||||
a direct dependency of the main external project target.
|
||||
|
||||
* The :module:`ExternalProject` module ``ExternalProject_Add`` command
|
||||
learned a new ``DOWNLOAD_NO_PROGRESS`` option to disable progress
|
||||
output while downloading the source tarball.
|
||||
|
||||
* The :module:`FeatureSummary` module ``feature_summary`` API
|
||||
learned to accept multiple values for the ``WHAT`` option and
|
||||
combine them appropriately.
|
||||
|
||||
* The :module:`FindCUDA` module learned to support ``fatbin`` and ``cubin``
|
||||
modules.
|
||||
|
||||
* The :module:`FindGTest` module ``gtest_add_tests`` macro learned
|
||||
a new ``AUTO`` option to automatically read the :prop_tgt:`SOURCES`
|
||||
target property of the test executable and scan the source files
|
||||
for tests to be added.
|
||||
|
||||
* The :module:`FindGLEW` module now provides imported targets.
|
||||
|
||||
* The :module:`FindGLUT` module now provides imported targets.
|
||||
|
||||
* The :module:`FindHg` module gained a new ``Hg_WC_INFO`` macro to
|
||||
help run ``hg`` to extract information about a Mercurial work copy.
|
||||
|
||||
* The :module:`FindOpenCL` module was introduced.
|
||||
|
||||
* The :module:`FindOpenMP` module learned to support Fortran.
|
||||
|
||||
* The :module:`FindPkgConfig` module learned to use the ``PKG_CONFIG``
|
||||
environment variable value as the ``pkg-config`` executable, if set.
|
||||
|
||||
* The :module:`FindXercesC` module was introduced.
|
||||
|
||||
* The :module:`FindZLIB` module now provides imported targets.
|
||||
|
||||
* The :module:`GenerateExportHeader` module ``generate_export_header``
|
||||
function learned to allow use with :ref:`Object Libraries`.
|
||||
|
||||
* The :module:`InstallRequiredSystemLibraries` module gained a new
|
||||
``CMAKE_INSTALL_OPENMP_LIBRARIES`` option to install MSVC OpenMP
|
||||
runtime libraries.
|
||||
|
||||
* The :module:`UseSWIG` module learned to detect the module name
|
||||
from ``.i`` source files if possible to avoid the need to set
|
||||
the ``SWIG_MODULE_NAME`` source file property explicitly.
|
||||
|
||||
* The :module:`WriteCompilerDetectionHeader` module was added to allow
|
||||
creation of a portable header file for compiler optional feature detection.
|
||||
|
||||
Generator Expressions
|
||||
---------------------
|
||||
|
||||
* New ``COMPILE_FEATURES``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>` allows
|
||||
setting build properties based on available compiler features.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :command:`ctest_coverage` command learned to read variable
|
||||
``CTEST_COVERAGE_EXTRA_FLAGS`` to set ``CoverageExtraFlags``.
|
||||
|
||||
* The :command:`ctest_coverage` command learned to support
|
||||
Intel coverage files with the ``codecov`` tool.
|
||||
|
||||
* The :command:`ctest_memcheck` command learned to support sanitizer
|
||||
modes, including ``AddressSanitizer``, ``MemorySanitizer``,
|
||||
``ThreadSanitizer``, and ``UndefinedBehaviorSanitizer``.
|
||||
Options may be set using the new
|
||||
:variable:`CTEST_MEMORYCHECK_SANITIZER_OPTIONS` variable.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* :manual:`cpack(1)` gained an ``IFW`` generator to package using
|
||||
Qt Framework Installer tools. See the :cpack_gen:`CPack IFW Generator`.
|
||||
|
||||
* :manual:`cpack(1)` gained ``7Z`` and ``TXZ`` generators supporting
|
||||
lzma-compressed archives.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned a new
|
||||
:variable:`CPACK_DEBIAN_COMPRESSION_TYPE` variable to set the
|
||||
tarball compression type.
|
||||
|
||||
* The :cpack_gen:`CPack WIX Generator` learned to support
|
||||
a :prop_inst:`CPACK_WIX_ACL` installed file property to
|
||||
specify an Access Control List.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* The :manual:`cmake(1)` ``-E`` option learned a new ``env`` command.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` command learned to support
|
||||
lzma-compressed files.
|
||||
|
||||
* :ref:`Object Libraries` may now have extra sources that do not
|
||||
compile to object files so long as they would not affect linking
|
||||
of a normal library (e.g. ``.dat`` is okay but not ``.def``).
|
||||
|
||||
* Visual Studio generators for VS 8 and later learned to support
|
||||
the ``ASM_MASM`` language.
|
||||
|
||||
* The Visual Studio generators learned to treat ``.hlsl`` source
|
||||
files as High Level Shading Language sources (using ``FXCompile``
|
||||
in ``.vcxproj`` files). Source file properties
|
||||
:prop_sf:`VS_SHADER_TYPE`, :prop_sf:`VS_SHADER_MODEL`, and
|
||||
:prop_sf:`VS_SHADER_ENTRYPOINT` were added added to specify the
|
||||
shader type, model, and entry point name.
|
||||
|
||||
New Diagnostics
|
||||
===============
|
||||
|
||||
* Policy :policy:`CMP0052` introduced to control directories in the
|
||||
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` of exported targets.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* In CMake 3.0 the :command:`target_link_libraries` command
|
||||
accidentally began allowing unquoted arguments to use
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`
|
||||
containing a (``;`` separated) list within them. For example::
|
||||
|
||||
set(libs B C)
|
||||
target_link_libraries(A PUBLIC $<BUILD_INTERFACE:${libs}>)
|
||||
|
||||
This is equivalent to writing::
|
||||
|
||||
target_link_libraries(A PUBLIC $<BUILD_INTERFACE:B C>)
|
||||
|
||||
and was never intended to work. It did not work in CMake 2.8.12.
|
||||
Such generator expressions should be in quoted arguments::
|
||||
|
||||
set(libs B C)
|
||||
target_link_libraries(A PUBLIC "$<BUILD_INTERFACE:${libs}>")
|
||||
|
||||
CMake 3.1 again requires the quotes for this to work correctly.
|
||||
|
||||
* Prior to CMake 3.1 the Makefile generators did not escape ``#``
|
||||
correctly inside make variable assignments used in generated
|
||||
makefiles, causing them to be treated as comments. This made
|
||||
code like::
|
||||
|
||||
add_compile_options(-Wno-#pragma-messages)
|
||||
|
||||
not work in Makefile generators, but work in other generators.
|
||||
Now it is escaped correctly, making the behavior consistent
|
||||
across generators. However, some projects may have tried to
|
||||
workaround the original bug with code like::
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-\\#pragma-messages")
|
||||
|
||||
This added the needed escape for Makefile generators but also
|
||||
caused other generators to pass ``-Wno-\#pragma-messages`` to
|
||||
the shell, which would work only in POSIX shells.
|
||||
Unfortunately the escaping fix could not be made in a compatible
|
||||
way so this platform- and generator-specific workaround no
|
||||
longer works. Project code may test the :variable:`CMAKE_VERSION`
|
||||
variable value to make the workaround version-specific too.
|
||||
|
||||
* Callbacks established by the :command:`variable_watch` command will no
|
||||
longer receive the ``ALLOWED_UNKNOWN_READ_ACCESS`` access type when
|
||||
the undocumented ``CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS`` variable is
|
||||
set. Uninitialized variable accesses will always be reported as
|
||||
``UNKNOWN_READ_ACCESS``.
|
||||
|
||||
* The :module:`CMakeDetermineVSServicePack` module now warns that
|
||||
it is deprecated and should not longer be used. Use the
|
||||
:variable:`CMAKE_<LANG>_COMPILER_VERSION` variable instead.
|
||||
|
||||
* The :module:`FindITK` module has been removed altogether.
|
||||
It was a thin-wrapper around ``find_package(ITK ... NO_MODULE)``.
|
||||
This produces much clearer error messages when ITK is not found.
|
||||
|
||||
* The :module:`FindVTK` module has been removed altogether.
|
||||
It was a thin-wrapper around ``find_package(VTK ... NO_MODULE)``.
|
||||
This produces much clearer error messages when VTK is not found.
|
||||
|
||||
The module also provided compatibility support for finding VTK 4.0.
|
||||
This capability has been dropped.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The :manual:`cmake-gui(1)` learned to capture output from child
|
||||
processes started by the :command:`execute_process` command
|
||||
and display it in the output window.
|
||||
|
||||
* The :manual:`cmake-language(7)` internal implementation of generator
|
||||
expression and list expansion parsers have been optimized and shows
|
||||
non-trivial speedup on large projects.
|
||||
|
||||
* The Makefile generators learned to use response files with GNU tools
|
||||
on Windows to pass library directories and names to the linker.
|
||||
|
||||
* When generating linker command-lines, CMake now avoids repeating
|
||||
items corresponding to SHARED library targets.
|
||||
|
||||
* Support for the Open Watcom compiler has been overhauled.
|
||||
The :variable:`CMAKE_<LANG>_COMPILER_ID` is now ``OpenWatcom``,
|
||||
and the :variable:`CMAKE_<LANG>_COMPILER_VERSION` now uses
|
||||
the Open Watcom external version numbering. The external
|
||||
version numbers are lower than the internal version number
|
||||
by 11.
|
||||
|
||||
* The ``cmake-mode.el`` major Emacs editing mode no longer
|
||||
treats ``_`` as part of words, making it more consistent
|
||||
with other major modes.
|
282
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.10.rst
Normal file
282
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.10.rst
Normal file
@ -0,0 +1,282 @@
|
||||
CMake 3.10 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.9 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* The `flang`_ Fortran compiler is now supported, with compiler id ``Flang``.
|
||||
|
||||
* A new minimal platform file for ``Midipix`` was added.
|
||||
|
||||
* Support for the MSVC ARM64 architecture was added.
|
||||
Visual Studio 2017 Update 4 and above offer an ARM64 toolchain.
|
||||
|
||||
* Support for the IAR ARM Compiler was improved.
|
||||
|
||||
.. _`flang`: https://github.com/flang-compiler/flang
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :ref:`Makefile Generators` and the :generator:`Ninja` generator learned
|
||||
to add compiler launcher tools like ccache along with the compiler for the
|
||||
``CUDA`` language (``C`` and ``CXX`` were supported previously). See the
|
||||
:variable:`CMAKE_<LANG>_COMPILER_LAUNCHER` variable and
|
||||
:prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property for details.
|
||||
|
||||
* The :generator:`CodeBlocks` extra generator learned to optionally exclude
|
||||
files from outside the project root directory from the generated project.
|
||||
See the :variable:`CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES` variable.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`cmake_host_system_information` command learned more keys
|
||||
to get information about the processor capabilities and the host OS
|
||||
version.
|
||||
|
||||
* The :command:`configure_file` command learned to support indented
|
||||
``# cmakedefine`` and ``# cmakedefine01``. Spaces and/or tabs between
|
||||
the ``#`` character and the ``cmakedefine``/``cmakedefine01`` words
|
||||
are now understood and preserved in the output.
|
||||
|
||||
* The :command:`execute_process` command gained a ``RESULTS_VARIABLE``
|
||||
option to collect a list of results from all children in a pipeline
|
||||
of processes when multiple ``COMMAND`` arguments are given.
|
||||
|
||||
* The :command:`include_guard` command was introduced to allow guarding
|
||||
CMake scripts from being included more than once. The command supports
|
||||
``DIRECTORY`` and ``GLOBAL`` options to adjust the corresponding include guard
|
||||
scope. If no options given, include guard is similar to basic variable-based
|
||||
check.
|
||||
|
||||
* The :command:`string` command learned a new ``PREPEND`` subcommand.
|
||||
|
||||
* The :command:`string(TIMESTAMP)` command now supports ``%A``
|
||||
for full weekday name and ``%B`` for full month name.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* A :variable:`CMAKE_DIRECTORY_LABELS` variable was added to specify
|
||||
labels for all tests in a directory.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* A :prop_tgt:`<LANG>_CPPCHECK` target property and supporting
|
||||
:variable:`CMAKE_<LANG>_CPPCHECK` variable were introduced to tell
|
||||
the :ref:`Makefile Generators` and the :generator:`Ninja` generator to
|
||||
run ``cppcheck`` with the compiler for ``C`` and ``CXX`` languages.
|
||||
|
||||
* A :prop_dir:`LABELS` directory property was added to specify labels
|
||||
for all targets and tests in a directory.
|
||||
|
||||
* A :prop_dir:`TEST_INCLUDE_FILES` directory property was added to
|
||||
list any number of files to be included when running tests with
|
||||
:manual:`ctest(1)`. This generalizes the :prop_dir:`TEST_INCLUDE_FILE`
|
||||
property.
|
||||
|
||||
* The :prop_tgt:`VS_DOTNET_REFERENCEPROP_<refname>_TAG_<tagname>`
|
||||
target property was added to support custom XML tags for reference
|
||||
assemblies in C# targets.
|
||||
|
||||
* Source file properties :prop_sf:`VS_SHADER_OUTPUT_HEADER_FILE` and
|
||||
:prop_sf:`VS_SHADER_VARIABLE_NAME` have been added to specify more
|
||||
details of ``.hlsl`` sources with :ref:`Visual Studio Generators`.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`FindCurses` module gained a ``CURSES_NEED_WIDE`` option
|
||||
to request the wide-character variant.
|
||||
|
||||
* The :module:`FindEXPAT` module now provides imported targets.
|
||||
|
||||
* The :module:`FindFreetype` module now provides imported targets.
|
||||
|
||||
* :module:`FindMPI` gained a number of new features, including:
|
||||
|
||||
* Language-specific components have been added to the module.
|
||||
* Many more MPI environments are now supported.
|
||||
* The environmental support for Fortran has been improved.
|
||||
* A user now has fine-grained control over the MPI selection process,
|
||||
including passing custom parameters to the MPI compiler.
|
||||
* The version of the implemented MPI standard is now being exposed.
|
||||
* MPI-2 C++ bindings can now be detected and also suppressed if so desired.
|
||||
* The available Fortran bindings are now being detected and verified.
|
||||
* Various MPI-3 information can be requested, including the library version
|
||||
and Fortran capabilities of the individual bindings.
|
||||
* Statically linked MPI implementations are supported.
|
||||
|
||||
* A :module:`FindOpenACC` module was added to detect compiler support
|
||||
for OpenACC. Currently only supports PGI, GNU and Cray compilers.
|
||||
|
||||
* The :module:`FindOpenGL` module gained support for GLVND on Linux.
|
||||
|
||||
* The :module:`FindOpenMP` module gained support for
|
||||
language-specific components.
|
||||
|
||||
* A :module:`FindPatch` module was added to find the ``patch``
|
||||
command-line executable.
|
||||
|
||||
* The :module:`FindProtobuf` module :command:`protobuf_generate_cpp` command
|
||||
gained a ``DESCRIPTORS`` option to generate descriptor files.
|
||||
|
||||
* The :module:`GoogleTest` module gained a new command
|
||||
:command:`gtest_discover_tests` implementing dynamic (build-time) test
|
||||
discovery. Unlike the source parsing approach, dynamic discovery executes
|
||||
the test (in 'list available tests' mode) at build time to discover tests.
|
||||
This is robust against unusual ways of labeling tests, provides much better
|
||||
support for advanced features such as parameterized tests, and does not
|
||||
require re-running CMake to discover added or removed tests within a test
|
||||
executable. Note that a breaking change was made in CMake 3.10.3 to address
|
||||
an ambiguity of the ``TIMEOUT`` keyword (see :ref:`Release Notes 3.10.3`).
|
||||
|
||||
* The :module:`InstallRequiredSystemLibraries` module gained support
|
||||
for installing Intel compiler runtimes.
|
||||
|
||||
Autogen
|
||||
-------
|
||||
|
||||
* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` with a
|
||||
multi configuration generator (e.g. :generator:`Xcode`),
|
||||
included ``*.moc``, ``moc_*.cpp`` and ``ui_*.h`` files are generated in
|
||||
``<AUTOGEN_BUILD_DIR>/include_<CONFIG>`` instead of
|
||||
``<AUTOGEN_BUILD_DIR>/include``.
|
||||
|
||||
* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC`,
|
||||
source files that are :prop_sf:`GENERATED` will be processed as well.
|
||||
They were ignored by :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`
|
||||
in earlier releases.
|
||||
See policy :policy:`CMP0071`.
|
||||
|
||||
* When using :prop_tgt:`AUTOMOC`, CMake searches for the strings ``Q_OBJECT``,
|
||||
``Q_GADGET`` or ``Q_NAMESPACE`` in a source file to determine if it needs
|
||||
to be ``moc`` processed. The new :variable:`CMAKE_AUTOMOC_MACRO_NAMES`
|
||||
variable and :prop_tgt:`AUTOMOC_MACRO_NAMES` target property may be set
|
||||
to register additional strings (macro names) to search for.
|
||||
|
||||
* When using :prop_tgt:`AUTOMOC`, the new
|
||||
:variable:`CMAKE_AUTOMOC_COMPILER_PREDEFINES` variable and
|
||||
:prop_tgt:`AUTOMOC_COMPILER_PREDEFINES` target property specify whether
|
||||
to enable or disable the generation of the compiler pre definitions file
|
||||
``moc_predefs.h``.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* A :variable:`CTEST_LABELS_FOR_SUBPROJECTS` CTest module variable and CTest
|
||||
script variable were added to specify a list of labels that should be
|
||||
treated as subprojects by CDash. To use this value in both the CTest module
|
||||
and the ctest command line :ref:`Dashboard Client` mode (e.g. ``ctest -S``)
|
||||
set it in the ``CTestConfig.cmake`` config file.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* A :cpack_gen:`CPack FreeBSD Generator` was added for FreeBSD ``pkg(8)``.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` was enabled on Windows. While not
|
||||
fully featured (due to the lack of external UNIX tools) this will allow
|
||||
building basic cross-platform Debian packages.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned to set package release
|
||||
version in ``Version`` info property.
|
||||
See the :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` variable.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned more strict package
|
||||
version checking that complies with Debian rules.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
|
||||
:command:`cpack_ifw_configure_component_group` commands gained a new
|
||||
``REPLACES`` and ``CHECKABLE`` options.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained new
|
||||
:variable:`CPACK_IFW_PACKAGE_FILE_EXTENSION` variable to customize
|
||||
target binary format.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained new
|
||||
:variable:`CPACK_IFW_REPOSITORIES_DIRECTORIES` variable to specify
|
||||
additional repositories dirs that will be used to resolve and
|
||||
repack dependent components. This feature is only available when
|
||||
using QtIFW 3.1 or later.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` and :cpack_gen:`CPack DEB Generator`
|
||||
learned to set the package epoch version.
|
||||
See :variable:`CPACK_RPM_PACKAGE_EPOCH` and
|
||||
:variable:`CPACK_DEBIAN_PACKAGE_EPOCH` variables.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* The :manual:`cmake(1)` ``-E`` mode gained support for ``sha1sum``,
|
||||
``sha224sum``, ``sha256sum``, ``sha384sum``, and ``sha512sum``.
|
||||
|
||||
* The graphviz output now distinguishes among the different dependency types
|
||||
``PUBLIC``, ``PRIVATE`` and ``INTERFACE`` and represents them in the output
|
||||
graph as solid, dashed and dotted edges.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* Support for building CMake itself with C++98 compilers was dropped.
|
||||
CMake is now implemented using C++11.
|
||||
|
||||
* Support for building CMake on HP-UX has been dropped pending better
|
||||
support for C++11 and a port of libuv. See `CMake Issue 17137`_.
|
||||
Use CMake 3.9 or lower instead for HP-UX support.
|
||||
|
||||
.. _`CMake Issue 17137`: https://gitlab.kitware.com/cmake/cmake/-/issues/17137
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* On FreeBSD the C++ compiler named ``c++`` is now the preferred default.
|
||||
|
||||
* The :command:`file(GENERATE)` command now interprets relative paths
|
||||
given to its ``OUTPUT`` and ``INPUT`` arguments with respect to the
|
||||
caller's current binary and source directories, respectively.
|
||||
See policy :policy:`CMP0070`.
|
||||
|
||||
* The :command:`get_filename_component` ``PROGRAM`` mode semantics
|
||||
have been revised to not tolerate unquoted spaces in the path
|
||||
to the program while also accepting arguments. While technically
|
||||
incompatible with the old behavior, it is expected that behavior
|
||||
under typical use cases with properly-quoted command-lines has
|
||||
not changed.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.10.0 include the following.
|
||||
|
||||
3.10.1
|
||||
------
|
||||
|
||||
* The :manual:`cmake-server(7)` ``codemodel`` response ``crossReferences``
|
||||
field added by 3.10.0 has been dropped due to excessive memory usage.
|
||||
Another approach will be needed to provide backtrace information.
|
||||
|
||||
.. _`Release Notes 3.10.3`:
|
||||
|
||||
3.10.3
|
||||
------
|
||||
|
||||
* CMake 3.10.1 added a ``TIMEOUT`` option to :command:`gtest_discover_tests`
|
||||
from the :module:`GoogleTest` module. That keyword clashed with the
|
||||
``TIMEOUT`` test property, which is one of the common properties that
|
||||
would be set with the command's ``PROPERTIES`` keyword, usually leading
|
||||
to legal but unintended behavior. The keyword was changed to
|
||||
``DISCOVERY_TIMEOUT`` in CMake 3.10.3 to address this problem. The
|
||||
ambiguous behavior of the :command:`gtest_discover_tests` command's
|
||||
``TIMEOUT`` keyword in 3.10.1 and 3.10.2 has not been preserved.
|
307
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.11.rst
Normal file
307
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.11.rst
Normal file
@ -0,0 +1,307 @@
|
||||
CMake 3.11 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.10 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* TI C/C++ compilers are now supported by the :generator:`Ninja` generator.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :generator:`CodeBlocks` extra generator learned to check a
|
||||
:variable:`CMAKE_CODEBLOCKS_COMPILER_ID` variable for a custom
|
||||
compiler identification value to place in the project file.
|
||||
|
||||
* The :ref:`Makefile Generators` and the :generator:`Ninja` generator learned
|
||||
to add compiler launcher tools along with the compiler for the ``Fortran``
|
||||
language (``C``, ``CXX``, and ``CUDA`` were supported previously).
|
||||
See the :variable:`CMAKE_<LANG>_COMPILER_LAUNCHER` variable and
|
||||
:prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property for details.
|
||||
|
||||
* :ref:`Visual Studio Generators` learned to support the ``COMPILE_LANGUAGE``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>` in
|
||||
target-wide :prop_tgt:`COMPILE_DEFINITIONS`,
|
||||
:prop_tgt:`INCLUDE_DIRECTORIES`, :prop_tgt:`COMPILE_OPTIONS`, and
|
||||
:command:`file(GENERATE)`. See generator expression documentation
|
||||
for caveats.
|
||||
|
||||
* The :generator:`Xcode` generator learned to support the ``COMPILE_LANGUAGE``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>` in
|
||||
target-wide :prop_tgt:`COMPILE_DEFINITIONS` and
|
||||
:prop_tgt:`INCLUDE_DIRECTORIES`. It previously supported only
|
||||
:prop_tgt:`COMPILE_OPTIONS` and :command:`file(GENERATE)`.
|
||||
See generator expression documentation for caveats.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* :command:`add_library` and :command:`add_executable` commands can now be
|
||||
called without any sources and will not complain as long as sources are
|
||||
added later via the :command:`target_sources` command.
|
||||
|
||||
* The :command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands
|
||||
gained ``NETRC`` and ``NETRC_FILE`` options to specify use of a
|
||||
``.netrc`` file.
|
||||
|
||||
* The :command:`target_compile_definitions` command learned to set the
|
||||
:prop_tgt:`INTERFACE_COMPILE_DEFINITIONS` property on
|
||||
:ref:`Imported Targets`.
|
||||
|
||||
* The :command:`target_compile_features` command learned to set the
|
||||
:prop_tgt:`INTERFACE_COMPILE_FEATURES` property on :ref:`Imported Targets`.
|
||||
|
||||
* The :command:`target_compile_options` command learned to set the
|
||||
:prop_tgt:`INTERFACE_COMPILE_OPTIONS` property on :ref:`Imported Targets`.
|
||||
|
||||
* The :command:`target_include_directories` command learned to set the
|
||||
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` property on
|
||||
:ref:`Imported Targets`.
|
||||
|
||||
* The :command:`target_sources` command learned to set the
|
||||
:prop_tgt:`INTERFACE_SOURCES` property on :ref:`Imported Targets`.
|
||||
|
||||
* The :command:`target_link_libraries` command learned to set the
|
||||
:prop_tgt:`INTERFACE_LINK_LIBRARIES` property on :ref:`Imported Targets`.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* A :variable:`CMAKE_GENERATOR_INSTANCE` variable was introduced
|
||||
to hold the selected instance of the generator's corresponding
|
||||
native tools if multiple are available. This is used by the
|
||||
:generator:`Visual Studio 15 2017` generator to hold the
|
||||
selected instance of Visual Studio persistently.
|
||||
|
||||
* A :variable:`CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS` variable was added
|
||||
to enable setting of default permissions for directories created implicitly
|
||||
during installation of files by :command:`install` and
|
||||
:command:`file(INSTALL)`, e.g. during ``make install``.
|
||||
|
||||
* A :variable:`CMAKE_JOB_POOLS` variable was added specify a value to use for
|
||||
the :prop_gbl:`JOB_POOLS` property. This enables control over build
|
||||
parallelism with command line configuration parameters when using the Ninja
|
||||
generator.
|
||||
|
||||
* The :variable:`CMAKE_NETRC` and :variable:`CMAKE_NETRC_FILE` variables
|
||||
were added to specify use of a ``.netrc`` file by the
|
||||
:command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands and
|
||||
the :module:`ExternalProject` module.
|
||||
|
||||
* A :variable:`CMAKE_CUDA_SEPARABLE_COMPILATION` variable was added to
|
||||
initialize the :prop_tgt:`CUDA_SEPARABLE_COMPILATION` target property
|
||||
on targets when they are created.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_sf:`COMPILE_DEFINITIONS` source file property learned to support
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* A :prop_sf:`COMPILE_OPTIONS` source file property was added to manage list
|
||||
of options to pass to the compiler.
|
||||
|
||||
* An :prop_tgt:`IMPORTED_GLOBAL` target property was added to indicate
|
||||
whether an :ref:`IMPORTED target <Imported Targets>` is globally visible.
|
||||
It is automatically set to a true value for targets created with the
|
||||
``GLOBAL`` option to :command:`add_library` or :command:`add_executable`.
|
||||
Additionally, project code may now *promote* a local imported target
|
||||
to be globally visible by setting this property to ``TRUE``.
|
||||
|
||||
* An :prop_sf:`INCLUDE_DIRECTORIES` source file property was added to specify
|
||||
list of preprocessor include file search directories.
|
||||
|
||||
* Source file properties :prop_sf:`VS_SHADER_DISABLE_OPTIMIZATIONS` and
|
||||
:prop_sf:`VS_SHADER_ENABLE_DEBUG` have been added to specify more
|
||||
details of ``.hlsl`` sources with :ref:`Visual Studio Generators`.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`CheckIncludeFiles` module :command:`CHECK_INCLUDE_FILES`
|
||||
command gained a ``LANGUAGE`` option to specify whether to check using the
|
||||
``C`` or ``CXX`` compiler.
|
||||
|
||||
* The :module:`CMakePackageConfigHelpers` module
|
||||
:command:`write_basic_package_version_file` command learned a new
|
||||
``SameMinorVersion`` mode for the ``COMPATIBILITY`` argument.
|
||||
|
||||
* The :module:`ExternalProject` module learned to substitute ``<DOWNLOAD_DIR>``
|
||||
in comments, commands, working directory and byproducts.
|
||||
|
||||
* The :module:`ExternalProject` module gained ``NETRC`` and ``NETRC_FILE``
|
||||
options to specify use of a ``.netrc`` file.
|
||||
|
||||
* A new :module:`FetchContent` module was added which supports populating
|
||||
content at configure time using any of the download/update methods
|
||||
supported by :command:`ExternalProject_Add`. This allows the content
|
||||
to be used immediately during the configure stage, such as with
|
||||
:command:`add_subdirectory`, etc. Hierarchical project structures are
|
||||
well supported, allowing parent projects to override the content details
|
||||
of child projects and ensuring content is not populated multiple times
|
||||
throughout the whole project tree.
|
||||
|
||||
* The :module:`FindBLAS` and :module:`FindLAPACK` modules learned to support
|
||||
`FLAME`_ ``blis`` and ``libflame``.
|
||||
|
||||
* The :module:`FindDoxygen` module :command:`doxygen_add_docs` function
|
||||
now supports a new ``DOXYGEN_VERBATIM_VARS`` list variable. Any
|
||||
``DOXYGEN_...`` variable contained in that list will bypass the automatic
|
||||
quoting logic, leaving its contents untouched when transferring them to the
|
||||
output ``Doxyfile``.
|
||||
|
||||
* A :module:`FindIconv` module was added to locate iconv support.
|
||||
|
||||
* The :module:`GenerateExportHeader` module ``GENERATE_EXPORT_HEADER`` command
|
||||
gained an ``INCLUDE_GUARD_NAME`` option to change the name of the include
|
||||
guard symbol written to the generated export header.
|
||||
Additionally, it now adds a comment after the closing ``#endif`` on the
|
||||
generated export header's include guard.
|
||||
|
||||
* The :module:`UseJava` module ``add_jar`` command gained a
|
||||
``GENERATE_NATIVE_HEADERS`` option to generate native header files
|
||||
using ``javac -h`` for ``javac`` 1.8 or above. This supersedes
|
||||
``create_javah``, which no longer works with JDK 1.10 and above due
|
||||
to removal of the ``javah`` tool by `JEP 313`_.
|
||||
|
||||
.. _`FLAME`: https://github.com/flame
|
||||
.. _`JEP 313`: https://openjdk.org/jeps/313
|
||||
|
||||
Autogen
|
||||
-------
|
||||
|
||||
* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC`, CMake now starts
|
||||
multiple parallel ``moc`` or ``uic`` processes to reduce the build time.
|
||||
A new :variable:`CMAKE_AUTOGEN_PARALLEL` variable and
|
||||
:prop_tgt:`AUTOGEN_PARALLEL` target property may be set to specify the
|
||||
number of parallel ``moc`` or ``uic`` processes to start. The default
|
||||
is derived from the number of CPUs on the host.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :command:`ctest_start` command no longer sets
|
||||
:variable:`CTEST_RUN_CURRENT_SCRIPT` due to issues with scoping if it is
|
||||
called from inside a function. Instead, it sets an internal variable in
|
||||
CTest. However, setting :variable:`CTEST_RUN_CURRENT_SCRIPT` to 0 at the
|
||||
global scope still prevents the script from being re-run at the end.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* :manual:`cpack(1)` gained ``--trace`` and ``--trace-expand`` options.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained new
|
||||
:variable:`CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR` variable to control
|
||||
if the target directory should not be deleted when uninstalling.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned to enable enforcing of execute
|
||||
privileges on programs and shared libraries.
|
||||
See :variable:`CPACK_RPM_INSTALL_WITH_EXEC` variable.
|
||||
|
||||
* A :variable:`CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS` variable was added
|
||||
which serves the same purpose during packaging (e.g. ``make package``) as the
|
||||
:variable:`CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS` variable serves during
|
||||
installation (e.g. ``make install``).
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* :ref:`Alias Targets` may now alias :ref:`Imported Targets` that are
|
||||
created with the ``GLOBAL`` option to :command:`add_library`.
|
||||
|
||||
* :ref:`Interface Libraries` may now have custom properties set on them if
|
||||
they start with either an underscore (``_``) or a lowercase ASCII character.
|
||||
The original intention was to only allow properties which made sense for
|
||||
``INTERFACE`` libraries, but it also blocked usage of custom properties.
|
||||
|
||||
* The :manual:`cmake(1)` ``--open <dir>`` command-line option was added
|
||||
to open generated IDE projects like Visual Studio solutions or Xcode
|
||||
projects.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* An explicit deprecation diagnostic was added for policies ``CMP0037``
|
||||
through ``CMP0054`` (``CMP0036`` 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 ``KDevelop3`` generator has been removed.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* Policy :policy:`CMP0037` no longer reserves target names associated
|
||||
with optional features, such as ``test`` and ``package``, unless
|
||||
the corresponding feature is enabled.
|
||||
|
||||
* The :module:`FindOpenGL` module now prefers GLVND libraries if available.
|
||||
See policy :policy:`CMP0072`.
|
||||
|
||||
* The minimum deployment target set in the
|
||||
:variable:`CMAKE_OSX_DEPLOYMENT_TARGET` variable used to be only
|
||||
applied for macOS regardless of the selected SDK. It is now properly
|
||||
set for the target platform selected by :variable:`CMAKE_OSX_SYSROOT`.
|
||||
For example, if the sysroot variable specifies an iOS SDK then the
|
||||
value in ``CMAKE_OSX_DEPLOYMENT_TARGET`` is interpreted as minimum
|
||||
iOS version.
|
||||
|
||||
* The :generator:`Xcode` generator behavior of generating one project
|
||||
file per :command:`project()` command may now be controlled with the
|
||||
:variable:`CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY` variable.
|
||||
This could be useful to speed up the CMake generation step for
|
||||
large projects and to work-around a bug in the ``ZERO_CHECK`` logic.
|
||||
|
||||
* Since the ``CMakeCache.txt`` format does not support newlines in values,
|
||||
values containing newlines are now truncated before writing to the file.
|
||||
In addition, a warning comment is written to the cache file, and a warning
|
||||
message is displayed to the user on the console.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.11.0 include the following.
|
||||
|
||||
3.11.1
|
||||
------
|
||||
|
||||
* The :module:`CheckIncludeFile` module ``check_include_file`` macro,
|
||||
:module:`CheckIncludeFileCXX` module ``check_include_file_cxx`` macro,
|
||||
and :module:`CheckIncludeFiles` module ``check_include_files`` macro
|
||||
were taught to honor the ``CMAKE_REQUIRED_LIBRARIES`` variable in
|
||||
CMake 3.11.0. This has been reverted due to changing behavior of
|
||||
checks for existing projects. It may be restored in the future
|
||||
with a policy for compatibility.
|
||||
|
||||
3.11.2
|
||||
------
|
||||
|
||||
* Calling :command:`add_library` to create an alias of an imported
|
||||
target that is not globally visible now causes an error again as
|
||||
it did prior to 3.11.0. This diagnostic was accidentally dropped
|
||||
from CMake 3.11.0 and 3.11.1 by the change to allow globally visible
|
||||
imported targets to be aliased.
|
||||
|
||||
* The :module:`FindQt4` module ``qt4_wrap_cpp``, ``qt4_wrap_ui`` and
|
||||
``qt4_add_resources`` macros now set :prop_sf:`SKIP_AUTOMOC` and
|
||||
:prop_sf:`SKIP_AUTOUIC` on their generated files. These files never
|
||||
need to be processed by moc or uic, and we must say so explicitly to
|
||||
account for policy :policy:`CMP0071`.
|
||||
|
||||
3.11.3
|
||||
------
|
||||
|
||||
* CMake 3.11.0 introduced support for resolving symbolic links on
|
||||
Windows in code paths that typically do so on UNIX. This has been
|
||||
reverted due to breakage on ``subst`` drives.
|
305
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.12.rst
Normal file
305
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.12.rst
Normal file
@ -0,0 +1,305 @@
|
||||
CMake 3.12 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.11 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2017 learned to support a
|
||||
``version=14.##`` option in the :variable:`CMAKE_GENERATOR_TOOLSET`
|
||||
value (e.g. via the :manual:`cmake(1)` ``-T`` option) to specify a
|
||||
toolset version number.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* The :manual:`cmake(1)` :ref:`Build Tool Mode` (``cmake --build``) gained
|
||||
``--parallel [<jobs>]`` and ``-j [<jobs>]`` options to specify a parallel
|
||||
build level. They map to corresponding options of the native build tool.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_compile_definitions` command was added to set preprocessor
|
||||
definitions at directory level. This supersedes :command:`add_definitions`.
|
||||
|
||||
* The :command:`cmake_minimum_required` and :command:`cmake_policy(VERSION)`
|
||||
commands now accept a version range using the form ``<min>[...<max>]``.
|
||||
The ``<min>`` version is required but policies are set based on the
|
||||
older of the running CMake version and the version specified by
|
||||
``<max>``. This allows projects to specify a range of versions
|
||||
for which they have been updated and avoid explicit policy settings.
|
||||
|
||||
* The :command:`file(GLOB)` and :command:`file(GLOB_RECURSE)` commands
|
||||
learned a new flag ``CONFIGURE_DEPENDS`` which enables expression of
|
||||
build system dependency on globbed directory's contents.
|
||||
|
||||
* The :command:`file(TOUCH)` and :command:`file(TOUCH_NOCREATE)` commands
|
||||
were added to expose ``TOUCH`` functionality without having to use
|
||||
CMake's command-line tool mode with :command:`execute_process`.
|
||||
|
||||
* The :command:`find_package` command now searches prefixes specified by
|
||||
the :variable:`<PackageName>_ROOT` CMake variable and the
|
||||
:envvar:`<PackageName>_ROOT` environment variable. Package roots are
|
||||
maintained as a stack so nested calls to all ``find_*`` commands inside
|
||||
find modules also search the roots as prefixes.
|
||||
See policy :policy:`CMP0074`.
|
||||
|
||||
* The :command:`install` command learned an optional ``NAMELINK_COMPONENT``
|
||||
parameter, which allows you to change the component for a shared library's
|
||||
namelink. If none is specified, the value of ``COMPONENT`` is used by
|
||||
default.
|
||||
|
||||
* The :command:`list` command learned a ``JOIN`` sub-command
|
||||
to concatenate list's elements separated by a glue string.
|
||||
|
||||
* The :command:`list` command learned a ``SUBLIST`` sub-command
|
||||
to get a sublist of the list.
|
||||
|
||||
* The :command:`list` command learned a ``TRANSFORM`` sub-command
|
||||
to apply various string transformation to list's elements.
|
||||
|
||||
* The :command:`project` command learned an optional ``HOMEPAGE_URL``
|
||||
parameter which has the effect of setting variables like
|
||||
:variable:`PROJECT_HOMEPAGE_URL`, :variable:`<PROJECT-NAME>_HOMEPAGE_URL`
|
||||
and :variable:`CMAKE_PROJECT_HOMEPAGE_URL`.
|
||||
|
||||
* The :command:`string` command learned a ``JOIN`` sub-command
|
||||
to concatenate input strings separated by a glue string.
|
||||
|
||||
* :command:`target_compile_options` and :command:`add_compile_options`
|
||||
commands gained a ``SHELL:`` prefix to specify a group of related
|
||||
options using shell-like quoting.
|
||||
|
||||
* The :command:`target_link_libraries` command now supports
|
||||
:ref:`Object Libraries`. Linking to an object library uses its object
|
||||
files in direct dependents and also propagates usage requirements.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :variable:`CMAKE_FOLDER` variable was added to initialize the
|
||||
:prop_tgt:`FOLDER` property on all targets.
|
||||
|
||||
* The :variable:`CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION` variable
|
||||
was defined to initialize all
|
||||
:prop_tgt:`DOTNET_TARGET_FRAMEWORK_VERSION` target properties.
|
||||
|
||||
* ``CMAKE_PROJECT_VERSION*`` variables have been introduced:
|
||||
|
||||
- :variable:`CMAKE_PROJECT_VERSION`
|
||||
- :variable:`CMAKE_PROJECT_VERSION_MAJOR`
|
||||
- :variable:`CMAKE_PROJECT_VERSION_MINOR`
|
||||
- :variable:`CMAKE_PROJECT_VERSION_PATCH`
|
||||
- :variable:`CMAKE_PROJECT_VERSION_TWEAK`
|
||||
|
||||
* The :variable:`CMAKE_SUPPRESS_REGENERATION` variable was extended to
|
||||
support the :generator:`Ninja` and :ref:`Makefile Generators`.
|
||||
It is also now documented.
|
||||
|
||||
* ``CMAKE_VS_SDK_*_DIRECTORIES`` variables were defined to tell
|
||||
:ref:`Visual Studio Generators` for VS 2010 and above how to populate
|
||||
fields in ``.vcxproj`` files that specify SDK directories. The
|
||||
variables are:
|
||||
|
||||
- :variable:`CMAKE_VS_SDK_EXCLUDE_DIRECTORIES`
|
||||
- :variable:`CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES`
|
||||
- :variable:`CMAKE_VS_SDK_INCLUDE_DIRECTORIES`
|
||||
- :variable:`CMAKE_VS_SDK_LIBRARY_DIRECTORIES`
|
||||
- :variable:`CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES`
|
||||
- :variable:`CMAKE_VS_SDK_REFERENCE_DIRECTORIES`
|
||||
- :variable:`CMAKE_VS_SDK_SOURCE_DIRECTORIES`
|
||||
|
||||
* A :variable:`MSVC_TOOLSET_VERSION` variable was added to provide the
|
||||
MSVC toolset version associated with the current MSVC compiler version
|
||||
in :variable:`MSVC_VERSION`.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`COMMON_LANGUAGE_RUNTIME` target property was introduced
|
||||
to configure the use of managed C++ for :ref:`Visual Studio Generators`
|
||||
for VS 2010 and above.
|
||||
A corresponding :prop_tgt:`IMPORTED_COMMON_LANGUAGE_RUNTIME` target
|
||||
property was added to support ``C++/CLI`` for imported targets.
|
||||
|
||||
* The :prop_tgt:`DOTNET_TARGET_FRAMEWORK_VERSION` target property
|
||||
was introduced as replacement for
|
||||
:prop_tgt:`VS_DOTNET_TARGET_FRAMEWORK_VERSION`, which is considered
|
||||
deprecated now.
|
||||
|
||||
* An :prop_tgt:`EXPORT_PROPERTIES` target property was added to specify a
|
||||
custom list of target properties to include in targets exported by the
|
||||
:command:`install(EXPORT)` and :command:`export` commands.
|
||||
|
||||
* The :prop_tgt:`PDB_OUTPUT_DIRECTORY` property learned to support
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* A :prop_dir:`TESTS` directory property was added to hold the list of
|
||||
tests defined by the :command:`add_test` command.
|
||||
|
||||
* A :prop_tgt:`VS_DEBUGGER_COMMAND` target property was created to set the
|
||||
debugging command line with :ref:`Visual Studio Generators` for VS 2010
|
||||
and above.
|
||||
|
||||
* HLSL source file properties :prop_sf:`VS_SHADER_DISABLE_OPTIMIZATIONS`
|
||||
and :prop_sf:`VS_SHADER_ENABLE_DEBUG` gained support for generator
|
||||
expressions.
|
||||
|
||||
* HLSL source file property :prop_sf:`VS_SHADER_OBJECT_FILE_NAME` has been
|
||||
added to the :ref:`Visual Studio Generators` for VS 2010 and above.
|
||||
The property specifies the file name of the compiled shader object.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`FindALSA` module now provides imported targets.
|
||||
|
||||
* The :module:`FindCURL` module now provides imported targets.
|
||||
|
||||
* The :module:`FindJPEG` module now provides imported targets.
|
||||
|
||||
* The :module:`FindLibXml2` module now provides imported targets.
|
||||
|
||||
* The :module:`FindMatlab` module now supports the Matlab Runtime
|
||||
Compiler (MCR) for compiling and linking matlab extensions.
|
||||
|
||||
* A :module:`FindODBC` module was added to find an Open Database Connectivity
|
||||
(ODBC) library.
|
||||
|
||||
* The :module:`FindPkgConfig` module has learned to export the found
|
||||
libraries with full path for direct consumption with the
|
||||
:command:`target_link_libraries` command.
|
||||
|
||||
* New :module:`FindPython3` and :module:`FindPython2` modules, as well as
|
||||
a new :module:`FindPython` module, have been added to provide a new way
|
||||
to locate python environments.
|
||||
|
||||
* The :module:`UseSWIG` module gained a whole refresh and is now more
|
||||
consistent with standard CMake commands to generate libraries and is
|
||||
fully configurable through properties.
|
||||
|
||||
* The :module:`UseSWIG` module learned to manage multiple behaviors through
|
||||
``UseSWIG_MODULE_VERSION`` variable to ensure legacy support as well as more
|
||||
robust handling of ``SWIG`` advanced features (like ``%template``).
|
||||
|
||||
* The :module:`UseSWIG` module learned to support CSHARP variant
|
||||
wrapper files.
|
||||
|
||||
* The :module:`WriteCompilerDetectionHeader` module gained a ``BARE_FEATURES``
|
||||
option to add a compatibility define for the exact keyword of a new language
|
||||
feature.
|
||||
|
||||
Generator Expressions
|
||||
---------------------
|
||||
|
||||
* A new ``$<GENEX_EVAL:...>`` and ``$<TARGET_GENEX_EVAL:target,...>``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
has been added to enable consumption of generator expressions whose
|
||||
evaluation results itself in generator expressions.
|
||||
|
||||
* A new ``$<IN_LIST:...>``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
has been added.
|
||||
|
||||
* A new ``$<TARGET_EXISTS:...>``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
has been added.
|
||||
|
||||
* A new ``$<TARGET_NAME_IF_EXISTS:...>``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
has been added.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :command:`ctest_start` command has been reworked so that you can simply
|
||||
call ``ctest_start(APPEND)`` and it will read all the needed information from
|
||||
the TAG file. The argument parsing has also been relaxed so that the order of
|
||||
the arguments is less significant.
|
||||
|
||||
* A :prop_test:`PROCESSOR_AFFINITY` test property was added to request
|
||||
that CTest run a test with CPU affinity for a set of processors
|
||||
disjoint from other concurrently running tests with the property set.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :module:`CPack` module now uses variables
|
||||
:variable:`CMAKE_PROJECT_VERSION_MAJOR`,
|
||||
:variable:`CMAKE_PROJECT_VERSION_MINOR` and
|
||||
:variable:`CMAKE_PROJECT_VERSION_PATCH`
|
||||
to initialize corresponding CPack variables.
|
||||
|
||||
* A :cpack_gen:`CPack NuGet Generator` was was added with basic
|
||||
support for `NuGet`_.
|
||||
|
||||
.. _NuGet: https://learn.microsoft.com/en-us/nuget/what-is-nuget
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of C++ 20. No specific features are yet enumerated besides
|
||||
the ``cxx_std_20`` meta-feature.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of the availability of C features in MSVC since VS 2010.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of C language standards supported by Texas Instruments C
|
||||
compilers.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The :generator:`Visual Studio 8 2005` generator has been removed.
|
||||
|
||||
* CMake no longer produces ``<tgt>_LIB_DEPENDS`` cache entries
|
||||
for library targets. See policy :policy:`CMP0073`.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* Include flags for directories marked as ``SYSTEM`` are now moved after
|
||||
non-system directories. The ``-isystem`` flag does this automatically,
|
||||
so moving them explicitly to the end makes the behavior consistent on
|
||||
compilers that do not have any ``-isystem`` flag.
|
||||
|
||||
* Fortran dependency scanning now supports dependencies implied by
|
||||
`Fortran Submodules`_.
|
||||
|
||||
* The existence and functionality of the file
|
||||
``${CMAKE_BINARY_DIR}/cmake_install.cmake`` has now been documented in the
|
||||
:command:`install` documentation so that external packaging software can take
|
||||
advantage of CPack-style component installs.
|
||||
|
||||
* The :module:`CheckIncludeFile` module ``check_include_file`` macro
|
||||
learned to honor the ``CMAKE_REQUIRED_LIBRARIES`` variable.
|
||||
See policy :policy:`CMP0075`.
|
||||
|
||||
* The :module:`CheckIncludeFileCXX` module ``check_include_file_cxx`` macro
|
||||
learned to honor the ``CMAKE_REQUIRED_LIBRARIES`` variable.
|
||||
See policy :policy:`CMP0075`.
|
||||
|
||||
* The :module:`CheckIncludeFiles` module ``check_include_files`` macro
|
||||
learned to honor the ``CMAKE_REQUIRED_LIBRARIES`` variable.
|
||||
See policy :policy:`CMP0075`.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E copy_directory`` tool now fails when the
|
||||
source directory does not exist. Previously it succeeded by creating
|
||||
an empty destination directory.
|
||||
|
||||
* The :module:`UseSWIG` module :command:`swig_add_library` command
|
||||
(and legacy ``swig_add_module`` command) now set the prefix of
|
||||
Java modules to ``""`` for MINGW, MSYS, and CYGWIN environments.
|
||||
|
||||
.. _Fortran Submodules: https://fortranwiki.org/fortran/show/Submodules
|
289
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.13.rst
Normal file
289
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.13.rst
Normal file
@ -0,0 +1,289 @@
|
||||
CMake 3.13 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.12 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2010 and above learned to
|
||||
support the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property
|
||||
and supporting :module:`CheckIPOSupported` module.
|
||||
|
||||
* The :generator:`Xcode` generator learned to configure more Xcode Scheme
|
||||
fields. See the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable.
|
||||
|
||||
* The :generator:`Green Hills MULTI` generator has been updated:
|
||||
|
||||
- Added support for architecture selection through
|
||||
:variable:`CMAKE_GENERATOR_PLATFORM`:
|
||||
e.g. ``arm``, ``ppc``, and ``86``.
|
||||
|
||||
- Added support for toolset selection through
|
||||
:variable:`CMAKE_GENERATOR_TOOLSET`,
|
||||
e.g. ``comp_201205``, ``comp_201510``, ``comp_201722_beta``.
|
||||
|
||||
- Added support for platform selection through ``GHS_TARGET_PLATFORM``,
|
||||
e.g. ``integrity``, ``linux``, ``standalone``, etc.
|
||||
|
||||
- No longer checks that ``arm`` based compilers are installed but ensures
|
||||
that the correct ``gbuild.exe`` exists.
|
||||
|
||||
- No longer hard-codes ARM files, BSP, toolset, or OS locations.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* The :manual:`cmake(1)` command gained the ``-S <source_dir>``
|
||||
command line option to specify the location of the source directory.
|
||||
This option can be used independently of ``-B``.
|
||||
|
||||
* The :manual:`cmake(1)` command gained the ``-B <build_dir>``
|
||||
command line option to specify the location of the build directory.
|
||||
This option can be used independently of ``-S``.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E create_symlink`` command can now be used
|
||||
on Windows.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_custom_command` and :command:`add_custom_target` commands
|
||||
learned to support generator expressions in ``WORKING_DIRECTORY`` options.
|
||||
|
||||
* The :command:`add_link_options` command was created to add link
|
||||
options in the current directory.
|
||||
|
||||
* The :command:`install(TARGETS)` command learned to install targets
|
||||
created outside the current directory.
|
||||
|
||||
* The :command:`link_directories` command gained options to control
|
||||
insertion position.
|
||||
|
||||
* The :command:`list(SORT)` command gained options to control the
|
||||
comparison operation used to order the entries.
|
||||
|
||||
* The :command:`math` command gained options for hexadecimal.
|
||||
|
||||
* The :command:`target_link_directories` command was created to
|
||||
specify link directories for targets and their dependents.
|
||||
|
||||
* The :command:`target_link_options` command was created to
|
||||
specify link options for targets and their dependents.
|
||||
|
||||
* The :command:`target_link_libraries` command may now be called
|
||||
to modify targets created outside the current directory.
|
||||
See policy :policy:`CMP0079`.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* A :variable:`CMAKE_AUTOGEN_VERBOSE` variable was added to optionally
|
||||
increase the verbosity of :prop_tgt:`AUTOMOC`, :prop_tgt:`AUTOUIC`
|
||||
and :prop_tgt:`AUTORCC` from within CMake project code.
|
||||
|
||||
* A :variable:`CMAKE_VS_GLOBALS` variable was added to initialize
|
||||
:prop_tgt:`VS_GLOBAL_<variable>` target properties on targets as
|
||||
they are created.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`DEPLOYMENT_ADDITIONAL_FILES` target property was
|
||||
added to tell the :generator:`Visual Studio 9 2008` generator
|
||||
to specify additional files for deployment to WinCE devices
|
||||
for remote debugging.
|
||||
|
||||
* The :prop_tgt:`INTERFACE_LINK_DEPENDS` target property was created
|
||||
to specify transitive link dependencies on files.
|
||||
|
||||
* The :prop_tgt:`LINK_DEPENDS` target property learned to support
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* :prop_tgt:`LINK_DIRECTORIES` and :prop_tgt:`INTERFACE_LINK_DIRECTORIES`
|
||||
target properties were added to collect link directories for a target
|
||||
and its dependents. Use the :command:`target_link_directories` command
|
||||
to set them.
|
||||
|
||||
* :prop_tgt:`LINK_OPTIONS` and :prop_tgt:`INTERFACE_LINK_OPTIONS` target
|
||||
properties were added to collect link options for a target and its
|
||||
dependents. Use the :command:`target_link_options` command to set them.
|
||||
|
||||
* A :prop_dir:`LINK_OPTIONS` directory property was added to collect
|
||||
link options for targets created under the current directory.
|
||||
Use the :command:`add_link_options` command to set it.
|
||||
|
||||
* A :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property was created
|
||||
to specify archiver options to use when creating static libraries.
|
||||
|
||||
* A :prop_tgt:`VS_DEBUGGER_COMMAND_ARGUMENTS` target property was created to
|
||||
set the debugging command line arguments with
|
||||
:ref:`Visual Studio Generators` for VS 2010 and above.
|
||||
|
||||
* A :prop_tgt:`VS_DEBUGGER_ENVIRONMENT` target property was created to
|
||||
set the debugging environment with
|
||||
:ref:`Visual Studio Generators` for VS 2010 and above.
|
||||
|
||||
* The :prop_tgt:`VS_DEBUGGER_COMMAND` and
|
||||
:prop_tgt:`VS_DEBUGGER_WORKING_DIRECTORY` target properties
|
||||
now support generator expressions.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`FindBoost` module gained a ``Boost_ARCHITECTURE`` option
|
||||
to specify a Boost architecture-specific library filename fragment.
|
||||
|
||||
* The :module:`FindCURL` module learned to find debug and release variants
|
||||
separately.
|
||||
|
||||
* The :module:`FindMatlab` module gained new components ``ENGINE_LIBRARY`` and
|
||||
``DATAARRAY_LIBRARY`` to request finding the Matlab C++ Engine and DataArray
|
||||
libraries respectively.
|
||||
|
||||
* The :module:`FindMatlab` module now explicitly exports mexFunction in Visual
|
||||
Studio.
|
||||
|
||||
* The :module:`FindMatlab` module gained a new ``MCC_COMPILER``
|
||||
component to request finding the Matlab Compiler add-on.
|
||||
|
||||
* The :module:`FindPkgConfig` module gained an option to create imported
|
||||
targets in global scope.
|
||||
|
||||
* The :module:`FindPkgConfig` module gained support for ``<`` and ``>``
|
||||
operators for version checks in addition to the already supported
|
||||
operators ``>=``, ``<=``, and ``=``.
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
gain capability to control order of resource lookup on macOS (Framework) and
|
||||
Windows (Registry).
|
||||
|
||||
* The :module:`FindSubversion` module ``Subversion_WC_INFO`` command
|
||||
gained an ``IGNORE_SVN_FAILURE`` option to suppress failures,
|
||||
e.g. when the source tree is not under Subversion control.
|
||||
|
||||
* The :module:`UseSWIG` module learned to manage target property
|
||||
:prop_tgt:`INCLUDE_DIRECTORIES` for ``SWIG`` compilation.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* :manual:`ctest(1)` gained a ``--progress`` option to enable a live
|
||||
test progress summary when output goes to a terminal.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned to split debug symbols into
|
||||
a corresponding .ddeb package when ``CPACK_DEBIAN_DEBUGINFO_PACKAGE`` is
|
||||
set.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned to honor the ``SOURCE_DATE_EPOCH``
|
||||
environment variable when packaging files. This is useful for generating
|
||||
reproducible packages.
|
||||
|
||||
* CPack gained a new :cpack_gen:`CPack External Generator` which is used to
|
||||
export the CPack metadata in a format that other software can understand. The
|
||||
intention of this generator is to allow external packaging software to take
|
||||
advantage of CPack's features when it may not be possible to use CPack for
|
||||
the entire packaging process.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* An explicit deprecation diagnostic was added for policies ``CMP0055``
|
||||
through ``CMP0063`` (``CMP0054`` 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.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The precompiled binaries provided on ``cmake.org`` now include
|
||||
qthelp-format documentation.
|
||||
|
||||
* The :command:`option` command now honors an existing normal variable
|
||||
of the same name and does nothing instead of possibly creating a cache
|
||||
entry (or setting its type) and removing the normal variable.
|
||||
See policy :policy:`CMP0077`.
|
||||
|
||||
* The :ref:`Makefile Generators` learned to remove custom command and
|
||||
custom target byproducts during ``make clean``.
|
||||
|
||||
* The :command:`target_sources` command now interprets relative source file
|
||||
paths as relative to the current source directory. This simplifies
|
||||
incrementally building up a target's sources from subdirectories. The
|
||||
:policy:`CMP0076` policy was added to provide backward compatibility with
|
||||
the old behavior where required.
|
||||
|
||||
* The :module:`BundleUtilities` module may no longer be included at configure
|
||||
time. This was always a bug anyway. See policy :policy:`CMP0080`.
|
||||
|
||||
* The :module:`UseSWIG` module has changed strategy for target naming.
|
||||
See policy :policy:`CMP0078`.
|
||||
|
||||
* The :prop_tgt:`LINK_DIRECTORIES` target property now expects absolute paths.
|
||||
See policy :policy:`CMP0081`.
|
||||
|
||||
* The CPack generators have been moved into their own separate section
|
||||
in the documentation, rather than having the documentation in their
|
||||
internal implementation modules.
|
||||
These internal implementation modules are also no longer available
|
||||
to scripts that may have been incorrectly including them, because
|
||||
they should never have been available in the first place.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.13.0 include the following.
|
||||
|
||||
3.13.2
|
||||
------
|
||||
|
||||
* CMake 3.13.0 included a change to pass compiler implicit include
|
||||
directories to the ``moc`` tool for :prop_tgt:`AUTOMOC`. This has
|
||||
been reverted due to regressing existing builds and will need
|
||||
further investigation before being re-introduced in a later release.
|
||||
|
||||
3.13.3
|
||||
------
|
||||
|
||||
* The :generator:`Visual Studio 15 2017` generator has been fixed to work
|
||||
when VS 2019 is installed.
|
||||
|
||||
* CMake now checks that at least one of the source or binary directory
|
||||
is specified when running CMake and issues an error if both are missing.
|
||||
This has always been a documented requirement, but the implementation
|
||||
previously accidentally accepted cases in which neither are specified
|
||||
so long as some other argument is given, and silently used the current
|
||||
working directory as the source and build tree.
|
||||
|
||||
3.13.4
|
||||
------
|
||||
|
||||
* The error added by 3.13.3 in cases that neither a source or binary
|
||||
directory is specified has been downgraded to a warning. While this
|
||||
was never intended, documented, nor supported behavior, some projects
|
||||
relied on it. The error has been downgraded to a warning for the
|
||||
remainder of the 3.13.x release series to allow a transition period,
|
||||
but it may become a fatal error again in a later release. Scripts
|
||||
relying on the old behavior can be trivially fixed by specifying
|
||||
the path to the source tree (even if just ``.``) explicitly and
|
||||
continue to work with all versions of CMake.
|
||||
|
||||
3.13.5
|
||||
------
|
||||
|
||||
* In CMake 3.13.0 through 3.13.4, calling :command:`target_link_libraries`
|
||||
to add ``PRIVATE`` dependencies to a static library created in another
|
||||
directory (under policy :policy:`CMP0079` ``NEW`` behavior) would
|
||||
incorrectly propagate usage requirements of those dependencies to
|
||||
dependents that link the static library. This has been fixed.
|
438
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.14.rst
Normal file
438
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.14.rst
Normal file
@ -0,0 +1,438 @@
|
||||
CMake 3.14 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.13 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :generator:`Visual Studio 16 2019` generator was added. This is
|
||||
experimental and based on "Visual Studio 2019 Preview 4" because this
|
||||
version of VS has not been released.
|
||||
|
||||
The VS 2019 generator differs from generators for earlier versions
|
||||
in that it does not provide variants that specify the target platform
|
||||
in the generator name. Instead :variable:`CMAKE_GENERATOR_PLATFORM`
|
||||
must be used, e.g. through the ``-A`` command-line option. Furthermore,
|
||||
the default target platform (architecture) is now based on the *host*
|
||||
platform. The VS host toolset selection is now based on the host
|
||||
architecture as well.
|
||||
|
||||
* The :generator:`Green Hills MULTI` generator has been updated:
|
||||
|
||||
* Now supports :ref:`Object Libraries`.
|
||||
|
||||
* Now warns on unsupported project types such as shared libraries.
|
||||
|
||||
* Now generates a top-level ``<PROJECT-NAME>.top.gpj`` for each directory
|
||||
calling the :command:`project` command. The top-level project file
|
||||
``default.gpj`` is no longer created.
|
||||
|
||||
* Now honors target renaming and destination output control properties
|
||||
such as :prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` and :prop_tgt:`OUTPUT_NAME`.
|
||||
This also fixes support for installation rules generated by
|
||||
:command:`install`.
|
||||
|
||||
* Now honors source file properties :prop_sf:`INCLUDE_DIRECTORIES`,
|
||||
:prop_sf:`COMPILE_DEFINITIONS`, and :prop_sf:`COMPILE_OPTIONS`.
|
||||
|
||||
* Now supports Dynamic Download Integrity Applications which did not include
|
||||
Integrate Files via :prop_tgt:`GHS_INTEGRITY_APP` and setting a target
|
||||
link flag of ``-dynamic``.
|
||||
|
||||
* The contents of project files now sorts sources groups and files by name.
|
||||
Set the :prop_tgt:`GHS_NO_SOURCE_GROUP_FILE` target property to ``ON`` to
|
||||
generate a single project file for the target instead of a project file for
|
||||
each source group. Set the :variable:`CMAKE_GHS_NO_SOURCE_GROUP_FILE`
|
||||
variable to enable this for all targets.
|
||||
|
||||
File-Based API
|
||||
--------------
|
||||
|
||||
* A file-based api for clients to get semantic buildsystem information
|
||||
has been added. See the :manual:`cmake-file-api(7)` manual.
|
||||
This is intended to replace the :manual:`cmake-server(7)` mode for IDEs.
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* CMake now supports :ref:`Cross Compiling for iOS, tvOS, or watchOS`
|
||||
using simple toolchain files.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* The :manual:`cmake(1)` :ref:`Build Tool Mode <Build Tool Mode>`
|
||||
(``cmake --build``) gained ``--verbose`` and ``-v`` options to
|
||||
specify verbose build output. Some generators such as Xcode don't
|
||||
support this option currently.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E compare_files`` command learned a new
|
||||
``--ignore-eol`` option to specify that end-of-line differences
|
||||
(e.g. LF vs CRLF) should be ignored when comparing files.
|
||||
|
||||
* The :manual:`cmake-gui(1)` dialog gained new ``-S`` and ``-B`` arguments to
|
||||
explicitly specify source and build directories.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`file` command learned a new sub-command, ``CREATE_LINK``,
|
||||
which can be used to create hard or symbolic links.
|
||||
|
||||
* The :command:`file` command learned a new sub-command, ``READ_SYMLINK``,
|
||||
which can be used to determine the path that a symlink points to.
|
||||
|
||||
* The :command:`file` command gained a ``SIZE`` mode to get the size
|
||||
of a file on disk.
|
||||
|
||||
* The :command:`find_package` command learned to optionally resolve
|
||||
symbolic links in the paths to package configuration files.
|
||||
See the :variable:`CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS` variable.
|
||||
|
||||
* The :command:`get_filename_component` command gained new
|
||||
``LAST_EXT`` and ``NAME_WLE`` variants to work with the
|
||||
extension after the last ``.`` in the name.
|
||||
|
||||
* The :command:`if` command gained support for checking if cache variables
|
||||
are defined with the ``DEFINED CACHE{VAR}`` syntax.
|
||||
|
||||
* The :command:`install(CODE)` and :command:`install(SCRIPT)` commands
|
||||
learned to support generator expressions. See policy :policy:`CMP0087`.
|
||||
|
||||
* The :command:`install(TARGETS)` command learned how to install to an
|
||||
appropriate default directory for a given target type, based on
|
||||
variables from the :module:`GNUInstallDirs` module and built-in defaults,
|
||||
in lieu of a ``DESTINATION`` argument.
|
||||
|
||||
* The :command:`install(FILES)` and :command:`install(DIRECTORY)` commands
|
||||
learned a new set of parameters for installing files as a file type,
|
||||
setting the destination based on the appropriate variables from
|
||||
:module:`GNUInstallDirs` and built-in defaults, in lieu of a
|
||||
``DESTINATION`` argument.
|
||||
|
||||
* The :command:`list` operations ``REMOVE_ITEM``, ``REMOVE_DUPLICATES``,
|
||||
``SORT``, ``REVERSE``, and ``FILTER`` all now accept a non-existent variable
|
||||
as the list since these operations on empty lists is also the empty list.
|
||||
|
||||
* The :command:`list` operation ``REMOVE_AT`` now indicates that the given
|
||||
indices are invalid for a non-existent variable or empty list.
|
||||
|
||||
* The :command:`try_compile` and :command:`try_run` commands gained a new
|
||||
``LINK_OPTIONS`` option.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* A :variable:`CMAKE_BUILD_RPATH_USE_ORIGIN` variable and corresponding
|
||||
:prop_tgt:`BUILD_RPATH_USE_ORIGIN` target property were added to
|
||||
enable use of relative runtime paths (RPATHs). This helps achieving
|
||||
relocatable and reproducible builds that are invariant of the build
|
||||
directory.
|
||||
|
||||
* A :variable:`CMAKE_VS_PLATFORM_NAME_DEFAULT` variable was added for
|
||||
:ref:`Visual Studio Generators` to report their default platform used
|
||||
when :variable:`CMAKE_GENERATOR_PLATFORM` is not set explicitly.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* A :prop_gbl:`CMAKE_ROLE` global property was added to allow scripts to
|
||||
determine whether they're running in project mode, script mode,
|
||||
find-package mode, CTest, or CPack.
|
||||
|
||||
* The :prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` target property is now supported
|
||||
on shared library, module library, and executable targets. Previously it was
|
||||
only honored on static libraries.
|
||||
|
||||
* The :prop_tgt:`EXCLUDE_FROM_ALL` target property was created to override
|
||||
the setting of its directory. A target will now be built as part of "all"
|
||||
if its :prop_tgt:`EXCLUDE_FROM_ALL` property is set to ``OFF``, even if its
|
||||
containing directory is marked as :prop_dir:`EXCLUDE_FROM_ALL`.
|
||||
|
||||
* :prop_tgt:`INTERFACE_POSITION_INDEPENDENT_CODE` target property gains the
|
||||
support of :manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The family of modules to check capabilities (like
|
||||
:module:`CheckCSourceCompiles`) gain capability to manage ``LINK_OPTIONS``.
|
||||
|
||||
* A :module:`CheckFortranSourceRuns` module was added to provide a
|
||||
:command:`check_fortran_source_runs` command to check if a Fortran
|
||||
source snippet compiles and runs.
|
||||
|
||||
* The :module:`CMakePackageConfigHelpers` module's
|
||||
:command:`write_basic_package_version_file` command gained a new
|
||||
``ARCH_INDEPENDENT`` option for supporting architecture-independent
|
||||
packages.
|
||||
|
||||
* The :module:`ExternalProject` module :command:`ExternalProject_Add` command
|
||||
gained ``LOG_DIR`` and ``LOG_MERGED_STDOUTERR`` options to control logging.
|
||||
|
||||
* The :module:`ExternalProject` module :command:`ExternalProject_Add` command
|
||||
gained ``LOG_PATCH`` to optionally log the patch step.
|
||||
|
||||
* The :module:`ExternalProject` module :command:`ExternalProject_Add` command
|
||||
learned to apply ``SOURCE_SUBDIR`` when ``BUILD_IN_SOURCE`` is also used.
|
||||
The ``BUILD_COMMAND`` is run in the given ``SOURCE_SUBDIR`` of the
|
||||
``SOURCE_DIR``.
|
||||
|
||||
* The :module:`FetchContent` module gained a new
|
||||
:command:`FetchContent_MakeAvailable` command. It accepts a list of
|
||||
dependency names, which it then iterates over, populating and adding
|
||||
each one to the main build using the canonical pattern. This
|
||||
significantly reduces the amount of boilerplate needed in a project.
|
||||
|
||||
* The :module:`FindBISON` module's ``BISON_TARGET`` command now runs ``bison``
|
||||
with :variable:`CMAKE_CURRENT_BINARY_DIR` as the working directory.
|
||||
See policy :policy:`CMP0088`.
|
||||
|
||||
* The :module:`FindCURL` module gained support for requesting
|
||||
protocols as package components.
|
||||
|
||||
* The :module:`FindFontconfig` module was added to find `fontconfig`_.
|
||||
|
||||
* The :module:`FindGDAL` module now provides imported targets.
|
||||
|
||||
* The :module:`FindGIF` module now provides imported targets.
|
||||
|
||||
* The :module:`FindGit` module now provides an imported target for the
|
||||
Git executable.
|
||||
|
||||
* The :module:`FindIce` module learned to find ``slice2confluence``
|
||||
and ``slice2matlab``.
|
||||
|
||||
* The :module:`FindLibinput` module was added to find `libinput`_.
|
||||
|
||||
* The :module:`FindLibLZMA` module now provides imported targets.
|
||||
|
||||
* The :module:`FindMatlab` module gained new options ``R2017b`` and
|
||||
``R2018a`` to specify the MEX API version to use; these options
|
||||
mirror the new options to the ``mex`` command in MATLAB R2018a.
|
||||
The option ``MX_LIBRARY`` is no longer needed.
|
||||
|
||||
* The :module:`FindPostgreSQL` module now provides imported targets.
|
||||
|
||||
* The :module:`FindPython`, :module:`FindPython2`, and :module:`FindPython3`
|
||||
modules gained support for ``NumPy`` component.
|
||||
|
||||
* The :module:`FindPython2`, :module:`FindPython3`, and :module:`FindPython`
|
||||
modules now support running in script mode by skipping the creation of
|
||||
imported targets and helper functions.
|
||||
|
||||
* The :module:`FindSQLite3` module was added to find the SQLite v3.x library.
|
||||
|
||||
* The :module:`FindX11` had the following variables renamed in order to match
|
||||
their library names rather than header names. The old variables are provided
|
||||
for compatibility:
|
||||
|
||||
- ``X11_Xxf86misc_INCLUDE_PATH`` instead of ``X11_xf86misc_INCLUDE_PATH``
|
||||
- ``X11_Xxf86misc_LIB`` instead of ``X11_xf86misc_LIB``
|
||||
- ``X11_Xxf86misc_FOUND`` instead of ``X11_xf86misc_FOUND``
|
||||
- ``X11_Xxf86vm_INCLUDE_PATH`` instead of ``X11_xf86vmode_INCLUDE_PATH``
|
||||
- ``X11_Xxf86vm_LIB`` instead of ``X11_xf86vmode_LIB``
|
||||
- ``X11_Xxf86vm_FOUND`` instead of ``X11_xf86vmode_FOUND``
|
||||
- ``X11_xkbfile_INCLUDE_PATH`` instead of ``X11_Xkbfile_INCLUDE_PATH``
|
||||
- ``X11_xkbfile_LIB`` instead of ``X11_Xkbfile_LIB``
|
||||
- ``X11_xkbfile_FOUND`` instead of ``X11_Xkbfile_FOUND``
|
||||
- ``X11_Xtst_INCLUDE_PATH`` instead of ``X11_XTest_INCLUDE_PATH``
|
||||
- ``X11_Xtst_LIB`` instead of ``X11_XTest_LIB``
|
||||
- ``X11_Xtst_FOUND`` instead of ``X11_XTest_FOUND``
|
||||
- ``X11_Xss_INCLUDE_PATH`` instead of ``X11_Xscreensaver_INCLUDE_PATH``
|
||||
- ``X11_Xss_LIB`` instead of ``X11_Xscreensaver_LIB``
|
||||
- ``X11_Xss_FOUND`` instead of ``X11_Xscreensaver_FOUND``
|
||||
|
||||
The following variables are deprecated completely since they were
|
||||
essentially duplicates:
|
||||
|
||||
- ``X11_Xinput_INCLUDE_PATH`` (use ``X11_Xi_INCLUDE_PATH``)
|
||||
- ``X11_Xinput_LIB`` (use ``X11_Xi_LIB``)
|
||||
- ``X11_Xinput_FOUND`` (use ``X11_Xi_FOUND``)
|
||||
|
||||
* The :module:`FindX11` now provides ``X11_Xext_INCLUDE_PATH``.
|
||||
|
||||
* The :module:`FindX11` now provides imported targets.
|
||||
|
||||
* The :module:`UseSWIG` module learned to pass ``-module <module_name>`` to
|
||||
the ``SWIG`` compiler if the file property ``SWIG_MODULE_NAME`` is defined.
|
||||
See policy :policy:`CMP0086`.
|
||||
|
||||
* The :module:`UseSWIG` module gained an option to specify
|
||||
``SWIG`` source file extensions.
|
||||
|
||||
.. _`fontconfig`: https://www.freedesktop.org/wiki/Software/fontconfig/
|
||||
.. _`libinput`: https://www.freedesktop.org/wiki/Software/libinput/
|
||||
|
||||
Generator Expressions
|
||||
---------------------
|
||||
|
||||
* The ``$<Fortran_COMPILER_ID:...>`` and ``$<Fortran_COMPILER_VERSION:...>``
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>` were added.
|
||||
|
||||
* The ``$<IN_LIST:...>`` generator expression now correctly handles an
|
||||
empty argument. See :policy:`CMP0085` for details.
|
||||
|
||||
Autogen
|
||||
-------
|
||||
|
||||
* The :prop_tgt:`AUTOMOC_EXECUTABLE`, :prop_tgt:`AUTORCC_EXECUTABLE`, and
|
||||
:prop_tgt:`AUTOUIC_EXECUTABLE` target properties were added. They all
|
||||
take a path to an executable and force automoc/autorcc/autouic to use
|
||||
this executable.
|
||||
|
||||
Setting these will also prevent the configure time testing for these
|
||||
executables. This is mainly useful when you build these tools yourself.
|
||||
|
||||
* The new variables :variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`,
|
||||
:variable:`CMAKE_GLOBAL_AUTOGEN_TARGET_NAME`,
|
||||
:variable:`CMAKE_GLOBAL_AUTORCC_TARGET` and
|
||||
:variable:`CMAKE_GLOBAL_AUTORCC_TARGET_NAME` control the generation
|
||||
of global ``autogen`` and ``autorcc`` targets.
|
||||
|
||||
* A new :variable:`CMAKE_AUTOGEN_ORIGIN_DEPENDS` variable and
|
||||
:prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` target property may be set to enable or
|
||||
disable forwarding of the origin target dependencies to the corresponding
|
||||
``_autogen`` target.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* :manual:`ctest(1)` gained a ``--show-only=json-v1`` option to show the
|
||||
list of tests in a machine-readable JSON format.
|
||||
See the :ref:`Show as JSON Object Model` section of the manual.
|
||||
|
||||
* The :command:`ctest_submit` command learned a new ``Done`` part that can be used
|
||||
to inform CDash that a build is complete and that no more parts will be uploaded.
|
||||
|
||||
* CTest learned to accept the dashboard server submission URL from a single
|
||||
variable. See the ``SubmitURL`` setting in :manual:`ctest(1)`,
|
||||
the :variable:`CTEST_SUBMIT_URL` variable, and the ``SUBMIT_URL``
|
||||
argument of the :command:`ctest_submit` command.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* An explicit deprecation diagnostic was added for policies ``CMP0064``
|
||||
and ``CMP0065`` (``CMP0063`` 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 :generator:`Xcode` generator deprecated support for Xcode
|
||||
versions prior to Xcode 5. Support for those will be dropped in a
|
||||
future version of CMake.
|
||||
|
||||
* The :module:`FindQt` module is no longer used by the :command:`find_package`
|
||||
command as a find module. This allows the Qt Project upstream to optionally
|
||||
provide its own ``QtConfig.cmake`` package configuration file and have
|
||||
applications use it via ``find_package(Qt)`` rather than
|
||||
``find_package(Qt CONFIG)``. See policy :policy:`CMP0084`.
|
||||
|
||||
* Support for running CMake on Windows XP and Windows Vista has been dropped.
|
||||
The precompiled Windows binaries provided on ``cmake.org`` now require
|
||||
Windows 7 or higher.
|
||||
|
||||
* CTest no longer supports submissions via ``ftp``, ``scp``, ``cp``, and
|
||||
``xmlrpc``. CDash is the only maintained testing dashboard for CTest,
|
||||
and it only supports submissions over ``http`` and ``https``.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* Object library linking has been fixed to propagate private link libraries
|
||||
of object libraries to consuming targets.
|
||||
|
||||
* Install rules under :command:`add_subdirectory` now interleave with those in
|
||||
the calling directory. See policy :policy:`CMP0082` for details.
|
||||
|
||||
* CMake now imposes a maximum recursion limit to prevent a stack overflow on
|
||||
scripts that recurse infinitely. The limit can be adjusted at runtime with
|
||||
:variable:`CMAKE_MAXIMUM_RECURSION_DEPTH`.
|
||||
|
||||
* When using cppcheck via the :variable:`CMAKE_<LANG>_CPPCHECK` variable
|
||||
or :prop_tgt:`<LANG>_CPPCHECK` property, the build will now fail if
|
||||
``cppcheck`` returns non-zero as configured by its command-line options.
|
||||
|
||||
* Required link options to manage Position Independent Executable are now
|
||||
added when :prop_tgt:`POSITION_INDEPENDENT_CODE` is set. The project is
|
||||
responsible for using the :module:`CheckPIESupported` module to check for
|
||||
``PIE`` support to ensure that the :prop_tgt:`POSITION_INDEPENDENT_CODE`
|
||||
target property will be honored at link time for executables. This behavior
|
||||
is controlled by policy :policy:`CMP0083`.
|
||||
|
||||
* :ref:`Visual Studio Generators` for VS 2010 and above learned
|
||||
to support the ``VS_DEBUGGER_*`` properties on targets created
|
||||
via :command:`add_custom_target`.
|
||||
|
||||
* The :module:`CPack` module no longer defaults to the ``paxr`` value in the
|
||||
:variable:`CPACK_DEBIAN_ARCHIVE_TYPE` variable, because ``dpkg`` has
|
||||
never supported the PAX tar format. The ``paxr`` value will be mapped
|
||||
to ``gnutar`` and a deprecation message emitted.
|
||||
|
||||
* CMake no longer issues a warning if a target listed in an
|
||||
:command:`install(TARGETS)` command has its :prop_tgt:`EXCLUDE_FROM_ALL`
|
||||
property set to true.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.14.0 include the following.
|
||||
|
||||
3.14.1
|
||||
------
|
||||
|
||||
* The :module:`FindFontconfig` module added by 3.14.0 accidentally
|
||||
used uppercase ``FONTCONFIG_*`` variable names that do not match
|
||||
our conventions. 3.14.1 revises the module to use ``Fontconfig_*``
|
||||
variable names. This is incompatible with 3.14.0 but since the
|
||||
module is new in the 3.14 series usage should not yet be widespread.
|
||||
|
||||
3.14.3
|
||||
------
|
||||
|
||||
* The :variable:`CMAKE_VS_PLATFORM_NAME_DEFAULT` variable was added
|
||||
to help toolchain files work with the :generator:`Visual Studio 16 2019`
|
||||
generator where the default platform now depends on the host platform.
|
||||
|
||||
3.14.4
|
||||
------
|
||||
|
||||
* In CMake 3.14.0 through 3.14.3, calling :command:`target_link_libraries`
|
||||
to add ``PRIVATE`` dependencies to a static library created in another
|
||||
directory (under policy :policy:`CMP0079` ``NEW`` behavior) would
|
||||
incorrectly propagate usage requirements of those dependencies to
|
||||
dependents that link the static library. This has been fixed.
|
||||
The bug also existed in 3.13.0 through 3.13.4 and is fixed in 3.13.5.
|
||||
|
||||
3.14.5
|
||||
------
|
||||
|
||||
* Entries of the ``CPATH`` environment variable are no longer excluded
|
||||
from explicit use via :command:`include_directories` and
|
||||
:command:`target_include_directories` as they were in CMake 3.14.0
|
||||
through 3.14.4.
|
||||
|
||||
3.14.6
|
||||
------
|
||||
|
||||
* In CMake 3.14.0 through 3.14.5, the :module:`FindBISON` module
|
||||
policy :policy:`CMP0088` ``NEW`` behavior accidentally interpreted
|
||||
a relative path to the ``.y`` input as relative to the build tree
|
||||
directory instead of the source tree directory. This has been fixed.
|
||||
|
||||
3.14.7
|
||||
------
|
||||
|
||||
* In CMake 3.14.0 through 3.14.6, the :prop_dir:`EXCLUDE_FROM_ALL`
|
||||
directory property was regressed from pre-3.14 behavior and caused
|
||||
targets within the directory to be excluded even from its own "all".
|
||||
This has been fixed.
|
392
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.15.rst
Normal file
392
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.15.rst
Normal file
@ -0,0 +1,392 @@
|
||||
CMake 3.15 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.14 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :generator:`Xcode` generator now supports per-target schemes.
|
||||
See the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable and
|
||||
:prop_tgt:`XCODE_GENERATE_SCHEME` target property.
|
||||
|
||||
* The :generator:`Green Hills MULTI` generator has been updated:
|
||||
|
||||
* It now supports the :command:`add_custom_command` and
|
||||
:command:`add_custom_target` commands.
|
||||
|
||||
* It is now available on Linux.
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
* Preliminary support for the ``Swift`` language was added to the
|
||||
:generator:`Ninja` generator:
|
||||
|
||||
* Use the :envvar:`SWIFTC` environment variable to specify a compiler.
|
||||
|
||||
* The :prop_tgt:`Swift_DEPENDENCIES_FILE` target property and
|
||||
:prop_sf:`Swift_DEPENDENCIES_FILE` source file property were added
|
||||
to customize dependency files.
|
||||
|
||||
* The :prop_tgt:`Swift_MODULE_NAME` target property was added to
|
||||
customize the Swift module name.
|
||||
|
||||
* The :prop_sf:`Swift_DIAGNOSTICS_FILE` source property was added to
|
||||
indicate where to write the serialized Swift diagnostics.
|
||||
|
||||
The Swift support is experimental, not considered stable, and may change
|
||||
in future releases of CMake.
|
||||
|
||||
Compilers
|
||||
---------
|
||||
|
||||
* The ``Clang`` compiler variant on Windows that targets the MSVC ABI
|
||||
but has a GNU-like command line is now supported.
|
||||
|
||||
* Support for the Clang-based ARM compiler was added with compiler id
|
||||
``ARMClang``.
|
||||
|
||||
* Support was added for the IAR compiler architectures Renesas RX,
|
||||
RL78, RH850 and Texas Instruments MSP430.
|
||||
|
||||
* Support was added for the IAR compilers built for Linux (IAR BuildLx).
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* The :envvar:`CMAKE_GENERATOR` environment variable was added
|
||||
to specify a default generator to use when :manual:`cmake(1)` is
|
||||
run without a ``-G`` option. Additionally, environment variables
|
||||
:envvar:`CMAKE_GENERATOR_PLATFORM`, :envvar:`CMAKE_GENERATOR_TOOLSET`,
|
||||
and :envvar:`CMAKE_GENERATOR_INSTANCE` were created to configure
|
||||
the generator.
|
||||
|
||||
* The :manual:`cmake(1)` ``--build`` tool ``--target`` parameter gained support
|
||||
for multiple targets, e.g. ``cmake --build . --target Library1 Library2``.
|
||||
It now also has a short form ``-t`` alias, e.g.
|
||||
``cmake --build . -t Library1 Library2``.
|
||||
|
||||
* The :manual:`cmake(1)` command gained a new ``--install`` option.
|
||||
This may be used after building a project to run installation without
|
||||
using the generated build system or the native build tool.
|
||||
|
||||
* The :manual:`cmake(1)` command learned a new CLI option ``--loglevel``.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E remove_directory`` command-line tool learned
|
||||
to support removing multiple directories.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` tool has been improved:
|
||||
|
||||
* It now continues adding files to an archive even if some of the files
|
||||
are not readable. This behavior is more consistent with the
|
||||
classic ``tar`` tool.
|
||||
|
||||
* It now parses all flags, and if an invalid flag was provided, a
|
||||
warning is issued.
|
||||
|
||||
* It now displays an error if no action flag was specified, along with a
|
||||
list of possible actions: ``t`` (list), ``c`` (create) or ``x`` (extract).
|
||||
|
||||
* It now supports extracting (``-x``) or listing (``-t``) only specific
|
||||
files or directories.
|
||||
|
||||
* It now supports Zstandard compression with a ``--zstd`` option.
|
||||
Zstandard was designed to give a compression ratio comparable to that
|
||||
of the DEFLATE (zip) algorithm, but faster, especially for decompression.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_custom_command` and :command:`add_custom_target` commands
|
||||
gained a new ``JOB_POOL`` option that works with the :generator:`Ninja`
|
||||
generator to set the pool variable on the build statement.
|
||||
|
||||
* The :command:`add_library` command ``ALIAS`` option learned to support
|
||||
import libraries of the ``UNKNOWN`` type.
|
||||
|
||||
* The :command:`cmake_parse_arguments` command gained an additional
|
||||
``<prefix>_KEYWORDS_MISSING_VALUES`` output variable to report
|
||||
keyword arguments that were given by the caller with no values.
|
||||
|
||||
* The :command:`execute_process` command gained a ``COMMAND_ECHO`` option
|
||||
and supporting :variable:`CMAKE_EXECUTE_PROCESS_COMMAND_ECHO` variable
|
||||
to enable echoing of the command-line string before execution.
|
||||
|
||||
* The :command:`file(INSTALL)` command learned a new argument,
|
||||
``FOLLOW_SYMLINK_CHAIN``, which can be used to recursively resolve and
|
||||
install symlinks.
|
||||
|
||||
* :command:`list` learned new sub-commands:
|
||||
``PREPEND``, ``POP_FRONT`` and ``POP_BACK``.
|
||||
|
||||
* The :command:`message` command learned new types:
|
||||
``NOTICE``, ``VERBOSE``, ``DEBUG`` and ``TRACE``.
|
||||
|
||||
* The :command:`string` learned a new sub-command ``REPEAT``.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :variable:`CMAKE_CROSSCOMPILING_EMULATOR` variable and corresponding
|
||||
:prop_tgt:`CROSSCOMPILING_EMULATOR` target property learned to support
|
||||
arguments to the emulator.
|
||||
|
||||
* The :variable:`CMAKE_FIND_PACKAGE_PREFER_CONFIG` variable was added to tell
|
||||
:command:`find_package` calls to look for a package configuration
|
||||
file first even if a find module is available.
|
||||
|
||||
* The :variable:`CMAKE_FRAMEWORK` variable was added to initialize the
|
||||
:prop_tgt:`FRAMEWORK` property on all targets.
|
||||
|
||||
* The :variable:`CMAKE_VS_JUST_MY_CODE_DEBUGGING` variable and
|
||||
:prop_tgt:`VS_JUST_MY_CODE_DEBUGGING` target property were added to
|
||||
enable the Just My Code feature of the Visual Studio Debugger when
|
||||
compiling with MSVC cl 19.05 and higher.
|
||||
|
||||
* The :variable:`CMAKE_MSVC_RUNTIME_LIBRARY` variable and
|
||||
:prop_tgt:`MSVC_RUNTIME_LIBRARY` target property were introduced to
|
||||
select the runtime library used by compilers targeting the MSVC ABI.
|
||||
See policy :policy:`CMP0091`.
|
||||
|
||||
* The :variable:`CMAKE_PROJECT_INCLUDE` and
|
||||
:variable:`CMAKE_PROJECT_INCLUDE_BEFORE` variables were added to allow
|
||||
injection of custom code at the sites of :command:`project` calls
|
||||
without knowing the project name a priori.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`ADDITIONAL_CLEAN_FILES` target property and
|
||||
:prop_dir:`ADDITIONAL_CLEAN_FILES` directory property were added.
|
||||
They allow to register additional files that should be removed during
|
||||
the clean stage.
|
||||
|
||||
* The :prop_tgt:`PUBLIC_HEADER` and :prop_tgt:`PRIVATE_HEADER` properties
|
||||
may now be set on :ref:`Interface Libraries`. The headers specified by those
|
||||
properties can be installed using the :command:`install(TARGETS)` command by
|
||||
passing the ``PUBLIC_HEADER`` and ``PRIVATE_HEADER`` arguments respectively.
|
||||
|
||||
* The :prop_tgt:`VS_PACKAGE_REFERENCES` target property was added to
|
||||
tell :ref:`Visual Studio Generators` to add references to ``nuget``
|
||||
packages.
|
||||
|
||||
* The :prop_tgt:`VS_PROJECT_IMPORT` target property was added to allow
|
||||
managed Visual Studio project files to import external ``.props`` files.
|
||||
|
||||
* The :prop_tgt:`VS_NO_SOLUTION_DEPLOY` target property was added to
|
||||
tell :ref:`Visual Studio Generators` whether to deploy an artifact
|
||||
to the WinCE or Windows Phone target device.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`FindBoost` module was reworked to expose a more consistent
|
||||
user experience between its "Config" and "Module" modes and with other
|
||||
find modules in general.
|
||||
|
||||
* A new imported target ``Boost::headers`` is now defined (same
|
||||
as ``Boost::boost``).
|
||||
|
||||
* New output variables ``Boost_VERSION_MACRO``,
|
||||
``Boost_VERSION_MAJOR``, ``Boost_VERSION_MINOR``,
|
||||
``Boost_VERSION_PATCH``, and ``Boost_VERSION_COUNT``
|
||||
were added.
|
||||
|
||||
* The ``QUIET`` argument passed to :command:`find_package` is no
|
||||
longer ignored in config mode. Note that the CMake package shipped with
|
||||
Boost ``1.70.0`` ignores the ``QUIET`` argument passed to
|
||||
:command:`find_package`. This is fixed in the next Boost release.
|
||||
|
||||
* The input switch ``Boost_DETAILED_FAILURE_MSG`` was removed.
|
||||
|
||||
* ``Boost_VERSION`` now reports the version in ``x.y.z``
|
||||
format in module mode. See policy :policy:`CMP0093`.
|
||||
|
||||
* The :module:`FindCups` module now provides imported targets.
|
||||
|
||||
* The :module:`FindEnvModules` module was added to use Lua- and TCL-based
|
||||
environment modules in :ref:`CTest Scripts <CTest Script>`.
|
||||
|
||||
* The :module:`FindGLEW` module now provides an interface more consistent
|
||||
with what upstream GLEW provides in its own CMake package files.
|
||||
|
||||
* The :module:`FindPkgConfig` now populates :prop_tgt:`INTERFACE_LINK_OPTIONS`
|
||||
property of imported targets with other (non-library) linker flags.
|
||||
|
||||
* The :module:`FindPostgreSQL` module learned to find debug and release
|
||||
variants separately.
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
gained additional lookup strategies and controls, and a new default.
|
||||
See policy :policy:`CMP0094`.
|
||||
|
||||
* Modules :module:`FindPython`, :module:`FindPython2` and :module:`FindPython3`
|
||||
gain a new target (respectively ``Python::Module``, ``Python2::Module``
|
||||
and ``Python3::Module``) which can be used to develop Python modules.
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
gain capability to control how virtual environments are handled.
|
||||
|
||||
* The :module:`UseSWIG` module learned to manage alternate library names
|
||||
by passing ``-interface <library_name>`` for ``python`` language or
|
||||
``-dllimport <library_name>`` for ``CSharp`` language to the ``SWIG``
|
||||
compiler.
|
||||
|
||||
Generator Expressions
|
||||
---------------------
|
||||
|
||||
* The generator expressions :genex:`$<C_COMPILER_ID>`,
|
||||
:genex:`$<CXX_COMPILER_ID>`, :genex:`$<CUDA_COMPILER_ID>`,
|
||||
:genex:`$<Fortran_COMPILER_ID>`, :genex:`$<COMPILE_LANGUAGE>`,
|
||||
:genex:`$<COMPILE_LANG_AND_ID>`, and :genex:`$<PLATFORM_ID>` learned to
|
||||
support matching one value from a comma-separated list.
|
||||
|
||||
* The :genex:`$<CUDA_COMPILER_ID:...>` and :genex:`$<CUDA_COMPILER_VERSION:...>`
|
||||
generator expressions were added.
|
||||
|
||||
* The :genex:`$<COMPILE_LANG_AND_ID:...>` generator expression was introduced to
|
||||
allow specification of compile options for target files based on the
|
||||
:variable:`CMAKE_<LANG>_COMPILER_ID` and :prop_sf:`LANGUAGE` of
|
||||
each source file.
|
||||
|
||||
* A :genex:`$<FILTER:list,INCLUDE|EXCLUDE,regex>` generator expression has
|
||||
been added.
|
||||
|
||||
* A :genex:`$<REMOVE_DUPLICATES:list>` generator expression has been added.
|
||||
|
||||
* The :genex:`$<SHELL_PATH:...>` generator expression gained support for a
|
||||
list of paths.
|
||||
|
||||
* New ``$<TARGET_FILE*>`` :manual:`generator expressions
|
||||
<cmake-generator-expressions(7)>` were added to retrieve the prefix, base
|
||||
name, and suffix of the file names of various artifacts:
|
||||
|
||||
* :genex:`$<TARGET_FILE_PREFIX:...>`
|
||||
* :genex:`$<TARGET_FILE_BASE_NAME:...>`
|
||||
* :genex:`$<TARGET_FILE_SUFFIX:...>`
|
||||
* :genex:`$<TARGET_LINKER_FILE_PREFIX:...>`
|
||||
* :genex:`$<TARGET_LINKER_FILE_BASE_NAME:...>`
|
||||
* :genex:`$<TARGET_LINKER_FILE_SUFFIX:...>`
|
||||
* :genex:`$<TARGET_PDB_FILE_BASE_NAME:...>`
|
||||
|
||||
* The :genex:`$<TARGET_OBJECTS:...>` generator expression is now supported
|
||||
on ``SHARED``, ``STATIC``, ``MODULE`` libraries and executables.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :command:`ctest_submit` command learned a new option: ``BUILD_ID``.
|
||||
This can be used to store the ID assigned to this build by CDash to a
|
||||
variable.
|
||||
|
||||
* The :command:`ctest_update` command learned to honor a new variable:
|
||||
:variable:`CTEST_UPDATE_VERSION_OVERRIDE`. This can be used to specify
|
||||
the current version of your source tree rather than using the update
|
||||
command to discover the current version that is checked out.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained a new
|
||||
:variable:`CPACK_IFW_PACKAGE_STYLE_SHEET` variable to customize the
|
||||
installer stylesheet.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The :manual:`cmake-server(7)` mode has been deprecated and will be
|
||||
removed from a future version of CMake. Please port clients to use
|
||||
the :manual:`cmake-file-api(7)` instead.
|
||||
|
||||
* The :prop_dir:`ADDITIONAL_MAKE_CLEAN_FILES` directory property is now
|
||||
deprecated. Use the :prop_dir:`ADDITIONAL_CLEAN_FILES` directory property
|
||||
instead.
|
||||
|
||||
* The variable :variable:`CMAKE_AUTOMOC_RELAXED_MODE` is considered
|
||||
deprecated. Support still exists but will be removed in future versions.
|
||||
|
||||
* The :command:`export(PACKAGE)` command now does nothing unless
|
||||
enabled via :variable:`CMAKE_EXPORT_PACKAGE_REGISTRY`.
|
||||
See policy :policy:`CMP0090`.
|
||||
|
||||
* The :generator:`Xcode` generator now requires at least Xcode 5.
|
||||
|
||||
* An explicit deprecation diagnostic was added for policy ``CMP0066``
|
||||
(``CMP0065`` 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.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* If a feature specified by :command:`target_compile_features` is available
|
||||
in the compiler's default standard level, CMake 3.14 and below incorrectly
|
||||
added unnecessary ``-std=`` flags that could lower the standard level.
|
||||
This bug has been fixed in CMake 3.15. This behavior change may expose
|
||||
bugs in existing projects that were relying on undocumented implementation
|
||||
details. Specifying compile features only ensures that the compiler runs
|
||||
in a mode that has those features, not that any specific standard level is
|
||||
used or explicit ``-std=`` flag passed.
|
||||
|
||||
* CMake learned how to compile C++14 with the IBM AIX XL compiler
|
||||
and the SunPro compiler and to compile C++20 with the AppleClang compiler.
|
||||
|
||||
* With MSVC-like compilers the value of :variable:`CMAKE_<LANG>_FLAGS`
|
||||
no longer contains warning flags like ``/W3`` by default.
|
||||
See policy :policy:`CMP0092`.
|
||||
|
||||
* IBM Clang-based XL compilers that define ``__ibmxl__`` now use the
|
||||
compiler id ``XLClang`` instead of ``XL``. See policy :policy:`CMP0089`.
|
||||
|
||||
* The :command:`file(REMOVE)` and :command:`file(REMOVE_RECURSE)` commands
|
||||
were changed to ignore empty arguments with a warning instead of treating
|
||||
them as a relative path and removing the contents of the current directory.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.15.0 include the following.
|
||||
|
||||
3.15.1
|
||||
------
|
||||
|
||||
* In CMake 3.15.0 support for the GNU-like ``Clang`` compiler targeting the
|
||||
MSVC ABI implemented :variable:`CMAKE_CXX_STANDARD` values 98 and 11 using
|
||||
the corresponding ``-std=`` flags. However, these modes do not work with
|
||||
the MSVC standard library. Therefore CMake 3.15.1 passes C++14 standard
|
||||
flags even for C++98 and C++11. This is consistent with MSVC itself which
|
||||
always runs in a mode aware of C++14.
|
||||
|
||||
* Preliminary Swift support added in 3.15.0 has been updated.
|
||||
|
||||
3.15.2
|
||||
------
|
||||
|
||||
* In CMake 3.15.0 and 3.15.1 the :variable:`CMAKE_FIND_PACKAGE_PREFER_CONFIG`
|
||||
variable caused the :command:`find_package` command to fail on a missing
|
||||
package even without the ``REQUIRED`` option. This has been fixed.
|
||||
|
||||
3.15.3
|
||||
------
|
||||
|
||||
* ``CrayPrgEnv`` compiler wrapper support has been updated for the 19.06
|
||||
release of the Cray Programming Environment for which the default linking
|
||||
mode on XC Cray systems is now dynamic instead of static.
|
||||
|
||||
3.15.4
|
||||
------
|
||||
|
||||
* In CMake 3.15.0 through 3.15.3, the :prop_dir:`EXCLUDE_FROM_ALL`
|
||||
directory property was regressed from pre-3.14 behavior and caused
|
||||
targets within the directory to be excluded even from its own "all".
|
||||
This has been fixed.
|
||||
The bug also existed in 3.14.0 through 3.14.6 and is fixed in 3.14.7.
|
324
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.16.rst
Normal file
324
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.16.rst
Normal file
@ -0,0 +1,324 @@
|
||||
CMake 3.16 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.15 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
* CMake learned to support the Objective C (``OBJC``) and Objective C++
|
||||
(``OBJCXX``) languages. They may be enabled via the :command:`project`
|
||||
and :command:`enable_language` commands. When ``OBJC`` or ``OBJCXX``
|
||||
is enabled, source files with the ``.m`` or ``.mm``, respectively,
|
||||
will be compiled as Objective C or C++. Otherwise they will be treated
|
||||
as plain C++ sources as they were before.
|
||||
|
||||
Compilers
|
||||
---------
|
||||
|
||||
* The ``Clang`` compiler is now supported on ``Solaris``.
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* On AIX, executables using the :prop_tgt:`ENABLE_EXPORTS` target property
|
||||
now produce a linker import file with a ``.imp`` extension in addition
|
||||
to the executable file. Plugins (created via :command:`add_library` with
|
||||
the ``MODULE`` option) that use :command:`target_link_libraries` to link
|
||||
to the executable for its symbols are now linked using the import file.
|
||||
The :command:`install(TARGETS)` command now installs the import file as
|
||||
an ``ARCHIVE`` artifact.
|
||||
|
||||
* On AIX, runtime linking is no longer enabled by default. CMake provides
|
||||
the linker enough information to resolve all symbols up front.
|
||||
One may manually enable runtime linking for shared libraries and/or
|
||||
loadable modules by adding ``-Wl,-G`` to their link flags
|
||||
(e.g. in the :variable:`CMAKE_SHARED_LINKER_FLAGS` or
|
||||
:variable:`CMAKE_MODULE_LINKER_FLAGS` variable).
|
||||
One may manually enable runtime linking for executables by adding
|
||||
``-Wl,-brtl`` to their link flags (e.g. in the
|
||||
:variable:`CMAKE_EXE_LINKER_FLAGS` variable).
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* :manual:`cmake(1)` ``-E`` now supports ``true`` and ``false`` commands,
|
||||
which do nothing while returning exit codes of 0 and 1, respectively.
|
||||
|
||||
* :manual:`cmake(1)` gained a ``--trace-redirect=<file>`` command line
|
||||
option that can be used to redirect ``--trace`` output to a file instead
|
||||
of ``stderr``.
|
||||
|
||||
* The :manual:`cmake(1)` ``--loglevel`` command line option has been
|
||||
renamed to ``--log-level`` to make it consistent with the naming of other
|
||||
command line options. The ``--loglevel`` option is still supported to
|
||||
preserve backward compatibility.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_test` command learned the option ``COMMAND_EXPAND_LISTS``
|
||||
which causes lists in the ``COMMAND`` argument to be expanded, including
|
||||
lists created by generator expressions.
|
||||
|
||||
* The :command:`file` command learned a new sub-command,
|
||||
``GET_RUNTIME_DEPENDENCIES``, which allows you to recursively get the list of
|
||||
libraries linked by an executable or library. This sub-command is intended as
|
||||
a replacement for :module:`GetPrerequisites`.
|
||||
|
||||
* The :command:`find_file`, :command:`find_library`, :command:`find_path`,
|
||||
:command:`find_package`, and :command:`find_program` commands have learned to
|
||||
check the following variables to control the default behavior for groups of
|
||||
search locations:
|
||||
|
||||
* :variable:`CMAKE_FIND_USE_PACKAGE_ROOT_PATH` - Controls the default
|
||||
behavior of searching the :variable:`<PackageName>_ROOT` variables.
|
||||
|
||||
* :variable:`CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH` - Controls the default
|
||||
behavior of searching the CMake-specific environment variables.
|
||||
|
||||
* :variable:`CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH` - Controls the default
|
||||
behavior of searching the standard system environment variables.
|
||||
|
||||
* :variable:`CMAKE_FIND_USE_CMAKE_PATH` - Controls the default behavior of
|
||||
searching the CMake-specific cache variables.
|
||||
|
||||
* :variable:`CMAKE_FIND_USE_CMAKE_SYSTEM_PATH` - Controls the default
|
||||
behavior of searching the platform-specific CMake variables.
|
||||
|
||||
* The :command:`find_package` command has learned to check the
|
||||
:variable:`CMAKE_FIND_USE_PACKAGE_REGISTRY` variable to control the default
|
||||
behavior of searching the CMake user package registry and to check the
|
||||
:variable:`CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY` variable to control
|
||||
the default behavior of searching the CMake system package registry.
|
||||
|
||||
* The :command:`message` command learned indentation control with the new
|
||||
:variable:`CMAKE_MESSAGE_INDENT` variable.
|
||||
|
||||
* The :command:`target_precompile_headers` command was added to specify
|
||||
a list of headers to precompile for faster compilation times.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :variable:`CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS` variable has been
|
||||
introduced to optionally initialize the
|
||||
:prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` target property.
|
||||
|
||||
* The :variable:`CMAKE_ECLIPSE_RESOURCE_ENCODING` variable was added to
|
||||
specify the resource encoding for the the :generator:`Eclipse CDT4` extra
|
||||
generator.
|
||||
|
||||
* The :variable:`CMAKE_UNITY_BUILD` variable was added to initialize the
|
||||
:prop_tgt:`UNITY_BUILD` target property to tell generators to batch
|
||||
include source files for faster compilation times.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`BUILD_RPATH` and :prop_tgt:`INSTALL_RPATH` target properties
|
||||
now support :manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :prop_tgt:`INSTALL_REMOVE_ENVIRONMENT_RPATH` target property was
|
||||
added to remove compiler-defined ``RPATH`` entries from a target.
|
||||
This property is initialized by the
|
||||
:variable:`CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH` variable.
|
||||
|
||||
* The :prop_tgt:`PRECOMPILE_HEADERS` target property was added to specify
|
||||
a list of headers to precompile for faster compilation times.
|
||||
Set it using the :command:`target_precompile_headers` command.
|
||||
|
||||
* The :prop_tgt:`UNITY_BUILD` target property was added to tell
|
||||
generators to batch include source files for faster compilation
|
||||
times.
|
||||
|
||||
* The :prop_tgt:`VS_CONFIGURATION_TYPE` target property now supports
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :prop_tgt:`VS_DPI_AWARE` target property was added to tell
|
||||
:ref:`Visual Studio Generators` to set the ``EnableDpiAwareness``
|
||||
property in ``.vcxproj`` files.
|
||||
|
||||
* The :prop_tgt:`XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING` target property was
|
||||
added to tell the :generator:`Xcode` generator to set the value of the
|
||||
``Allow debugging when using document Versions Browser`` schema option.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`FindDoxygen` module :command:`doxygen_add_docs` command
|
||||
gained a new ``USE_STAMP_FILE`` option. When this option present,
|
||||
the custom target created by the command will only re-run Doxygen if
|
||||
any of the source files have changed since the last successful run.
|
||||
|
||||
* The :module:`FindGnuTLS` module now provides an imported target.
|
||||
|
||||
* The :module:`FindPackageHandleStandardArgs` module
|
||||
:command:`find_package_handle_standard_args` command gained
|
||||
a new ``REASON_FAILURE_MESSAGE`` option to specify a message
|
||||
giving the reason for the failure.
|
||||
|
||||
* The :module:`FindPkgConfig` module :command:`pkg_search_module` macro
|
||||
now defines a ``<prefix>_MODULE_NAME`` result variable containing the
|
||||
first matching module name.
|
||||
|
||||
* The :module:`FindPython3` and :module:`FindPython` modules gained
|
||||
options to control which ``ABIs`` will be searched.
|
||||
|
||||
* The :module:`FindPython3`, :module:`FindPython2`, and :module:`FindPython`
|
||||
modules now support direct specification of artifacts via cache entries.
|
||||
|
||||
Autogen
|
||||
-------
|
||||
|
||||
* When using :prop_tgt:`AUTOMOC`, the new :variable:`CMAKE_AUTOMOC_PATH_PREFIX`
|
||||
variable or :prop_tgt:`AUTOMOC_PATH_PREFIX` target property may be enabled
|
||||
to generate the ``-p`` path prefix
|
||||
option for ``moc``. This ensures that ``moc`` output files are identical
|
||||
on different build setups (given, that the headers compiled by ``moc`` are
|
||||
in an :command:`include directory <target_include_directories>`).
|
||||
Also it ensures that ``moc`` output files will compile correctly when the
|
||||
source and/or build directory is a symbolic link.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* :manual:`ctest(1)` now has the ability to schedule tests based on resource
|
||||
requirements for each test. See :ref:`ctest-resource-allocation` for
|
||||
details.
|
||||
|
||||
* A new test property, :prop_test:`SKIP_REGULAR_EXPRESSION`, has been added.
|
||||
This property is similar to :prop_test:`FAIL_REGULAR_EXPRESSION` and
|
||||
:prop_test:`PASS_REGULAR_EXPRESSION`, but with the same meaning as
|
||||
:prop_test:`SKIP_RETURN_CODE`. This is useful, for example, in cases where
|
||||
the user has no control over the return code of the test. For example, in
|
||||
Catch2, the return value is the number of assertion failed, therefore it is
|
||||
impossible to use it for :prop_test:`SKIP_RETURN_CODE`.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* :manual:`cpack(1)` learned support for multiple configurations for ``-C``
|
||||
option.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` is now able to format generic text
|
||||
(usually used as the description for multiple CPack generators) according
|
||||
to the `Debian Policy Manual`_. See the
|
||||
:variable:`CPACK_PACKAGE_DESCRIPTION_FILE` and
|
||||
:variable:`CPACK_DEBIAN_<COMPONENT>_DESCRIPTION` variables.
|
||||
|
||||
* The :cpack_gen:`CPack Archive Generator` learned to generate ``.tar.zst``
|
||||
packages with Zstandard compression.
|
||||
|
||||
.. _`Debian Policy Manual`: https://www.debian.org/doc/debian-policy/ch-controlfields.html#description
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* An explicit deprecation diagnostic was added for policy ``CMP0067``
|
||||
(``CMP0066`` 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_FIND_PACKAGE_NO_PACKAGE_REGISTRY` variable has been
|
||||
deprecated. Use the :variable:`CMAKE_FIND_USE_PACKAGE_REGISTRY` variable
|
||||
instead.
|
||||
|
||||
* The :module:`GetPrerequisites` module has been deprecated, as it has been
|
||||
superseded by :command:`file(GET_RUNTIME_DEPENDENCIES)`.
|
||||
|
||||
* The ``CPACK_INSTALL_SCRIPT`` variable has been deprecated in favor of the
|
||||
new, more accurately named :variable:`CPACK_INSTALL_SCRIPTS` variable.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The :manual:`cmake(1)` ``-C <initial-cache>`` option now evaluates the
|
||||
initial cache script with :variable:`CMAKE_SOURCE_DIR` and
|
||||
:variable:`CMAKE_BINARY_DIR` set to the top-level source and build trees.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E remove_directory`` command-line tool,
|
||||
when given the path to a symlink to a directory, now removes just
|
||||
the symlink. It no longer removes content of the linked directory.
|
||||
|
||||
* The :manual:`ctest(1)` ``--build-makeprogram`` command-line option now
|
||||
specifies the make program used when configuring a project with the
|
||||
:generator:`Ninja` generator or the :ref:`Makefile Generators`.
|
||||
|
||||
* The :module:`ExternalProject` module :command:`ExternalProject_Add` command
|
||||
has been updated so that ``GIT_SUBMODULES ""`` initializes no submodules.
|
||||
See policy :policy:`CMP0097`.
|
||||
|
||||
* The :module:`FindGTest` module has been updated to recognize
|
||||
MSVC build trees generated by GTest 1.8.1.
|
||||
|
||||
* The :command:`project` command no longer strips leading zeros in version
|
||||
components. See policy :policy:`CMP0096`.
|
||||
|
||||
* The Qt Compressed Help file is now named ``CMake.qch``, which no longer
|
||||
contains the release version in the file name. When CMake is upgraded
|
||||
in-place, the name and location of this file will remain constant.
|
||||
Tools such as IDEs, help viewers, etc. should now be able to refer to this
|
||||
file at a fixed location that remains valid across CMake upgrades.
|
||||
|
||||
* ``RPATH`` entries are properly escaped in the generated CMake scripts
|
||||
used for installation. See policy :policy:`CMP0095`.
|
||||
|
||||
* When using :variable:`CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS` on Windows the
|
||||
auto-generated exports are now updated only when the object files
|
||||
providing the symbols are updated.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.16.0 include the following.
|
||||
|
||||
3.16.2
|
||||
------
|
||||
|
||||
* CMake 3.16.0 and 3.16.1 processed ``.hh`` files with :prop_tgt:`AUTOMOC`.
|
||||
This was a behavior change from CMake 3.15 and below that can break
|
||||
existing projects, so it has been reverted as of 3.16.2.
|
||||
|
||||
3.16.5
|
||||
------
|
||||
|
||||
* The :module:`FindPython`, :module:`FindPython2`, and :module:`FindPython3`
|
||||
modules no longer create cache entries for ``Python{,2,3}_LIBRARY_RELEASE``
|
||||
and ``Python{,2,3}_LIBRARY_DEBUG``. Those values are always computed from
|
||||
other results and so should not be cached. The entries were created by
|
||||
CMake 3.16.0 through 3.16.4 but were always ``FORCE``-set and could not
|
||||
be meaningfully edited by users.
|
||||
|
||||
Additionally, the modules no longer expose their internal ``_Python*``
|
||||
cache entries publicly. CMake 3.16.0 through 3.16.4 accidentally
|
||||
made them visible as advanced cache entries.
|
||||
|
||||
3.16.7
|
||||
------
|
||||
|
||||
* Selection of the Objective C or C++ compiler now considers the
|
||||
:envvar:`CC` or :envvar:`CXX` environment variable if the
|
||||
:envvar:`OBJC` or :envvar:`OBJCXX` environment variable is not set.
|
||||
|
||||
* The :module:`FindPkgConfig` module now extracts include directories
|
||||
prefixed with ``-isystem`` into the ``*_INCLUDE_DIRS`` variables and
|
||||
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target properties.
|
||||
Previously they would be places in ``*_CFLAGS_OTHER`` variables and
|
||||
:prop_tgt:`INTERFACE_COMPILE_OPTIONS` target properties.
|
||||
|
||||
3.16.9
|
||||
------
|
||||
|
||||
* The default value of :variable:`CMAKE_AUTOMOC_PATH_PREFIX` was changed to
|
||||
``OFF`` because this feature can break existing projects that have
|
||||
identically named header files in different include directories.
|
||||
This restores compatibility with behavior of CMake 3.15 and below.
|
357
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.17.rst
Normal file
357
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.17.rst
Normal file
@ -0,0 +1,357 @@
|
||||
CMake 3.17 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.16 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* :manual:`cmake(1)` gained a :generator:`Ninja Multi-Config` generator,
|
||||
which is similar to the :generator:`Ninja` generator but can be used to build
|
||||
multiple configurations at once.
|
||||
|
||||
* :ref:`Visual Studio Generators` learned to support per-config sources.
|
||||
Previously only :ref:`Command-Line Build Tool Generators` supported them.
|
||||
|
||||
* :ref:`Visual Studio Generators` for VS 2010 and above now support
|
||||
specifying the ``VCTargetsPath`` value for project files in
|
||||
:variable:`CMAKE_GENERATOR_TOOLSET` setting.
|
||||
|
||||
* :ref:`Visual Studio Generators` for VS 2010 and above learned to
|
||||
support .NET Standard and .NET Core. See the
|
||||
:prop_tgt:`DOTNET_TARGET_FRAMEWORK` target property and
|
||||
associated :variable:`CMAKE_DOTNET_TARGET_FRAMEWORK` variable.
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
now offers meta-features for the CUDA language standard levels
|
||||
(e.g. ``cuda_std_03``, ``cuda_std_14``). See
|
||||
:prop_gbl:`CMAKE_CUDA_KNOWN_FEATURES`.
|
||||
|
||||
Compilers
|
||||
---------
|
||||
|
||||
* The IBM XL Fortran compiler is now supported by the :generator:`Ninja`
|
||||
generator.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* :manual:`cmake(1)` gained a ``--debug-find`` command-line option to
|
||||
enable additional human-readable output on where ``find_*`` commands search.
|
||||
|
||||
* :manual:`cmake(1)` gained a ``--trace-format`` command-line option that
|
||||
can be used to set the ``--trace`` output format. Currently, the old
|
||||
human readable and the new JSON format are supported. The new JSON format
|
||||
is easier to parse automatically than the existing format.
|
||||
|
||||
* :manual:`cmake(1)` gained a ``-E rm`` command-line tool that can be
|
||||
used to remove directories and files. This supersedes the existing
|
||||
``-E remove`` and ``-E remove_directory`` tools and has better semantics.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_custom_command` command learned to interpret paths in
|
||||
``DEPENDS`` arguments that are specified relative to the current
|
||||
binary directory.
|
||||
|
||||
* The :command:`foreach` command learned a new ``ZIP_LISTS`` option to iterate
|
||||
over multiple lists simultaneously.
|
||||
|
||||
* The :command:`load_cache(READ_WITH_PREFIX)` command mode is now allowed
|
||||
when using ``cmake -P`` to :ref:`Run a Script <Script Processing Mode>`.
|
||||
|
||||
* The :command:`message` command learned to output context provided in
|
||||
the :variable:`CMAKE_MESSAGE_CONTEXT` variable for log levels
|
||||
``NOTICE`` and below. Enable this output with the new ``--log-context``
|
||||
command-line option or :variable:`CMAKE_MESSAGE_CONTEXT_SHOW` variable.
|
||||
|
||||
* The :command:`message` command gained new keywords ``CHECK_START``,
|
||||
``CHECK_PASS`` and ``CHECK_FAIL``.
|
||||
|
||||
* The :command:`target_compile_options` command now honors the ``BEFORE``
|
||||
keyword more consistently. See policy :policy:`CMP0101`.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* A :variable:`CMAKE_CTEST_ARGUMENTS` variable was added to specify a list
|
||||
of command-line arguments passed to CTest when running through the
|
||||
``test`` (or ``RUN_TESTS``) target of the generated build system.
|
||||
|
||||
* The following variables are now defined inside a :command:`function`:
|
||||
|
||||
- :variable:`CMAKE_CURRENT_FUNCTION`
|
||||
- :variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR`
|
||||
- :variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE`
|
||||
- :variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE`
|
||||
|
||||
* The :variable:`CMAKE_CUDA_RUNTIME_LIBRARY` variable and
|
||||
:prop_tgt:`CUDA_RUNTIME_LIBRARY` target property were introduced to
|
||||
select the CUDA runtime library used when linking targets that
|
||||
use CUDA.
|
||||
|
||||
* The :variable:`CMAKE_FIND_DEBUG_MODE` variable was introduced to
|
||||
print extra ``find_*`` call information during the cmake run to standard
|
||||
error. Output is designed for human consumption and not for parsing.
|
||||
|
||||
* The :variable:`CMAKE_EXPORT_COMPILE_COMMANDS` variable now takes its
|
||||
initial value from the :envvar:`CMAKE_EXPORT_COMPILE_COMMANDS` environment
|
||||
variable if no explicit configuration is given.
|
||||
|
||||
* The :variable:`CMAKE_<LANG>_COMPILER_LAUNCHER` variable, if not set
|
||||
explicitly, now takes its initial value from the
|
||||
:envvar:`CMAKE_<LANG>_COMPILER_LAUNCHER` environment variable.
|
||||
|
||||
* The :variable:`CMAKE_MESSAGE_LOG_LEVEL` variable can now be used
|
||||
to persist a log level between CMake runs, unlike the ``--log-level``
|
||||
command line option which only applies to that particular run.
|
||||
|
||||
* The :variable:`CMAKE_XCODE_SCHEME_ENVIRONMENT` variable was added
|
||||
to initialize the :prop_tgt:`XCODE_SCHEME_ENVIRONMENT` target property.
|
||||
|
||||
* The :variable:`CMAKE_XCODE_SCHEME_WORKING_DIRECTORY` variable and
|
||||
associated :prop_tgt:`XCODE_SCHEME_WORKING_DIRECTORY` target property
|
||||
were added to tell the :generator:`Xcode` generator to set the value of
|
||||
the ``Custom Working Directory`` schema option.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`AIX_EXPORT_ALL_SYMBOLS` target property and associated
|
||||
:variable:`CMAKE_AIX_EXPORT_ALL_SYMBOLS` variable were created to
|
||||
optionally explicitly disable automatic export of symbols from shared
|
||||
libraries on AIX.
|
||||
|
||||
* The :prop_tgt:`DEPRECATION` target property was added to mark
|
||||
a target as deprecated. If a linked target is marked as
|
||||
deprecated, a warning with the deprecation message is issued
|
||||
at generate time.
|
||||
|
||||
* The :prop_tgt:`INSTALL_NAME_DIR` target property now supports
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
In particular, the :genex:`$<INSTALL_PREFIX>` generator expression can
|
||||
be used to set the directory relative to the install-time prefix.
|
||||
|
||||
* Target properties :prop_tgt:`MACHO_COMPATIBILITY_VERSION` and
|
||||
:prop_tgt:`MACHO_CURRENT_VERSION` were added to set the
|
||||
``compatibility_version`` and ``curent_version``, respectively,
|
||||
for Mach-O binaries. For backwards compatibility, if these properties
|
||||
are not set, :prop_tgt:`SOVERSION` and :prop_tgt:`VERSION`
|
||||
are used respectively as fallbacks.
|
||||
|
||||
* The :prop_tgt:`VS_DOTNET_DOCUMENTATION_FILE` target property was added
|
||||
to tell :ref:`Visual Studio Generators` to generate a ``DocumentationFile``
|
||||
reference in ``.csproj`` files.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`ExternalProject` module :command:`ExternalProject_Add`
|
||||
command gained a ``GIT_SUBMODULES_RECURSE`` option to specify whether
|
||||
Git submodules should be updated recursively. The default is on to
|
||||
preserve existing behavior.
|
||||
|
||||
* The :module:`FindCUDAToolkit` module was added to find the
|
||||
CUDA Toolkit without enabling CUDA as a language.
|
||||
|
||||
* The :module:`FindCURL` module learned to find CURL using
|
||||
the ``CURLConfig.cmake`` package configuration file generated by
|
||||
CURL's cmake buildsystem. It also gained a new ``CURL_NO_CURL_CMAKE``
|
||||
option to disable this behavior.
|
||||
|
||||
* The :module:`FindFLEX` module's ``FLEX_TARGET`` command now runs ``flex``
|
||||
with :variable:`CMAKE_CURRENT_BINARY_DIR` as the working directory.
|
||||
See policy :policy:`CMP0098`.
|
||||
|
||||
* The :module:`FindLibArchive` module now provides an imported target
|
||||
for libarchive.
|
||||
|
||||
* The :module:`FindPython` module has learned to find Python components
|
||||
in active virtual environments managed by ``conda``.
|
||||
|
||||
* The :module:`FindPython3` and :module:`FindPython` modules gained,
|
||||
respectively, variable ``Python3_SOABI`` and ``Python_SOABI`` giving
|
||||
the standard extension suffix for modules. Moreover, commands
|
||||
``Python3_add_library()`` and ``Python_add_library()`` gained the option
|
||||
``WITH_SOABI`` to prefix the library suffix with the value of ``SOABI``.
|
||||
|
||||
* The :module:`FindLibXml2` module now provides an imported target for the
|
||||
``xmllint`` executable.
|
||||
|
||||
Autogen
|
||||
-------
|
||||
|
||||
* :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` learned to process headers
|
||||
with a ``.hh`` extension. See policy :policy:`CMP0100`.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :variable:`CTEST_CONFIGURATION_TYPE` variable is now set from the
|
||||
command line when :manual:`ctest(1)` is invoked with ``-C <cfg>``.
|
||||
|
||||
* The :manual:`ctest(1)` tool gained support for Dr. Memory to run
|
||||
memcheck runs.
|
||||
|
||||
* The :manual:`ctest(1)` tool gained a ``--no-tests=<[error|ignore]>`` option
|
||||
to explicitly set and unify the behavior between direct invocation and
|
||||
script mode if no tests were found.
|
||||
|
||||
* The :manual:`ctest(1)` tool gained a ``--repeat <mode>:<n>`` option
|
||||
to specify conditions in which to repeat tests. This generalizes
|
||||
the existing ``--repeat-until-fail <n>`` option to add modes for
|
||||
``until-pass`` and ``after-timeout``.
|
||||
|
||||
* The :command:`ctest_test` command gained a ``REPEAT <mode>:<n>`` option
|
||||
to specify conditions in which to repeat tests.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack DragNDrop Generator` learned to use
|
||||
the :variable:`CPACK_DMG_<component>_FILE_NAME` variable
|
||||
to set a custom filename when packaging components into
|
||||
their own DMGs.
|
||||
|
||||
* The :cpack_gen:`CPack DragNDrop Generator` learned to handle
|
||||
RTF formatted license files. When :variable:`CPACK_DMG_SLA_DIR`
|
||||
variable is set, ``<language>.license.rtf`` is considered, but
|
||||
only as a fallback when the plaintext (``.txt``) file is not found
|
||||
in order to maintain backwards compatibility.
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` gained a new variable
|
||||
:variable:`CPACK_NSIS_MUI_HEADERIMAGE` to set the header image.
|
||||
To not break existing setups, it still defaults to
|
||||
:variable:`CPACK_PACKAGE_ICON` if the new variable is not set.
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` now supports
|
||||
:variable:`CPACK_NSIS_UNINSTALL_NAME`.
|
||||
This can be used to specify the name of the Uninstall program.
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` now supports
|
||||
:variable:`CPACK_NSIS_WELCOME_TITLE` and
|
||||
:variable:`CPACK_NSIS_WELCOME_TITLE_3LINES`.
|
||||
These can be used to specify the welcome page title and display it in 3 lines.
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` now supports
|
||||
:variable:`CPACK_NSIS_FINISH_TITLE` and
|
||||
:variable:`CPACK_NSIS_FINISH_TITLE_3LINES`.
|
||||
These can be used to specify the finish page title and display it in 3 lines.
|
||||
|
||||
* The :cpack_gen:`CPack productbuild Generator` gained support for a
|
||||
:variable:`CPACK_PRODUCTBUILD_BACKGROUND` variable to specify a background
|
||||
image for the macOS installer.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* :manual:`ccmake(1)` now displays cache values using colors
|
||||
based on the entry type if the terminal supports color.
|
||||
|
||||
* :manual:`ccmake(1)` now displays messages and a progress bar during
|
||||
configure and generate. It will keep the output displayed if any
|
||||
errors or warnings occurred.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* An explicit deprecation diagnostic was added for policy ``CMP0068``
|
||||
and policy ``CMP0069`` (``CMP0067`` 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 CPack ``PackageMaker`` generator has been
|
||||
deprecated because Xcode no longer distributes the PackageMaker tools.
|
||||
The undocumented ``OSXX11`` generator has also been deprecated.
|
||||
|
||||
* The :manual:`cmake(1)` command-line ``-E remove`` and ``-E remove_directory``
|
||||
tools are deprecated in favor of the new ``-E rm`` tool. The older tools
|
||||
always returned 0 if a named path did not exist even without the force
|
||||
option and cannot be fixed without breaking compatibility, and so have
|
||||
been superseded.
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` now requires NSIS 3.0 or later.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The :manual:`file API <cmake-file-api(7)>` index file now emits a
|
||||
``multiConfig`` flag specifying whether or not the generator supports
|
||||
multiple output configurations.
|
||||
|
||||
* Target link properties :prop_tgt:`INTERFACE_LINK_OPTIONS`,
|
||||
:prop_tgt:`INTERFACE_LINK_DIRECTORIES` and
|
||||
:prop_tgt:`INTERFACE_LINK_DEPENDS` are now transitive over private
|
||||
dependencies on static libraries.
|
||||
See policy :policy:`CMP0099`.
|
||||
|
||||
* When using MinGW tools, the :command:`find_library` command no longer
|
||||
finds ``.dll`` files by default. Instead, it expects ``.dll.a`` import
|
||||
libraries to be available.
|
||||
|
||||
* The :generator:`MinGW Makefiles` generator no longer issues an error if
|
||||
``sh.exe`` is present in the environment's ``PATH``.
|
||||
|
||||
* The :generator:`Ninja` generator now prefers the first ninja build
|
||||
tool to appear in the ``PATH`` no matter whether it is called
|
||||
``ninja-build``, ``ninja``, or ``samu``. Previously the first
|
||||
of those names to appear anywhere in the ``PATH`` would be preferred.
|
||||
|
||||
* With SDCC the ``sdar`` tool is now preferred over ``sdcclib`` as librarian.
|
||||
The latter was deprecated by SDCC 3.2.0 and removed in SDCC 3.8.6.
|
||||
|
||||
* With SDCC the default flags no longer include any target-specific flags.
|
||||
Previously the default flags were hard-coded for 8051.
|
||||
|
||||
* The :variable:`CMAKE_VS_GLOBALS` variable value now applies during
|
||||
compiler identification and in targets created by the
|
||||
:command:`add_custom_target` command.
|
||||
|
||||
* The :generator:`Xcode` generator no longer hard-codes ``-Wmost``,
|
||||
``-Wno-four-char-constants``, and ``-Wno-unknown-pragmas`` warning flags.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.17.0 include the following.
|
||||
|
||||
3.17.1
|
||||
------
|
||||
|
||||
* CMake 3.17.0 updated the :cpack_gen:`CPack NSIS Generator` with changes
|
||||
that require NSIS 3.0 or later. CMake 3.17.1 now enforces the use
|
||||
of a sufficiently new version.
|
||||
|
||||
3.17.3
|
||||
------
|
||||
|
||||
* Selection of the Objective C or C++ compiler now considers the
|
||||
:envvar:`CC` or :envvar:`CXX` environment variable if the
|
||||
:envvar:`OBJC` or :envvar:`OBJCXX` environment variable is not set.
|
||||
|
||||
* The :module:`FindPkgConfig` module now extracts include directories
|
||||
prefixed with ``-isystem`` into the ``*_INCLUDE_DIRS`` variables and
|
||||
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target properties.
|
||||
Previously they would be places in ``*_CFLAGS_OTHER`` variables and
|
||||
:prop_tgt:`INTERFACE_COMPILE_OPTIONS` target properties.
|
||||
|
||||
3.17.5
|
||||
------
|
||||
|
||||
* The default value of :variable:`CMAKE_AUTOMOC_PATH_PREFIX` was changed to
|
||||
``OFF`` because this feature can break existing projects that have
|
||||
identically named header files in different include directories.
|
||||
This restores compatibility with behavior of CMake 3.15 and below.
|
||||
The default was also changed to ``OFF`` in 3.16.9.
|
363
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.18.rst
Normal file
363
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.18.rst
Normal file
@ -0,0 +1,363 @@
|
||||
CMake 3.18 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.17 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
* The ``CUDA`` language can now be compiled using Clang on non-Windows
|
||||
platforms. Separable compilation is not yet supported on any platform.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* :manual:`cmake(1)` gained support for profiling of CMake scripts through
|
||||
the parameters ``--profiling-output`` and ``--profiling-format``.
|
||||
|
||||
* :manual:`cmake(1)` gained a ``cat`` command line
|
||||
option that can be used to concatenate files and print them
|
||||
on standard output.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_library` and :command:`add_executable` commands
|
||||
learned to create :ref:`Alias Targets` referencing non-``GLOBAL``
|
||||
:ref:`Imported Targets`.
|
||||
|
||||
* The :command:`cmake_language()` command was added for meta-operations on
|
||||
scripted or built-in commands, starting with a mode to ``CALL`` other
|
||||
commands, and ``EVAL CODE`` to inplace evaluate a CMake script.
|
||||
|
||||
* The :command:`execute_process` command gained the ``ECHO_OUTPUT_VARIABLE``
|
||||
and ``ECHO_ERROR_VARIABLE`` options.
|
||||
|
||||
* The :command:`export` command now raise an error if used multiple times with
|
||||
same ``FILE`` without ``APPEND``. See policy :policy:`CMP0103`.
|
||||
|
||||
* The :command:`file` command gained the ``ARCHIVE_CREATE`` and
|
||||
``ARCHIVE_EXTRACT`` subcommands to expose the :manual:`cmake(1)` ``-E tar``
|
||||
functionality to CMake scripting code.
|
||||
|
||||
* The :command:`file(CONFIGURE)` subcommand was created in order to replicate
|
||||
the :command:`configure_file` functionality without resorting to a
|
||||
pre-existing file on disk as input. The content is instead passed as a
|
||||
string.
|
||||
|
||||
* The :command:`file(UPLOAD)` command gained ``TLS_VERIFY`` and ``TLS_CAINFO``
|
||||
options to control server certificate verification.
|
||||
|
||||
* The :command:`find_program`, :command:`find_library`, :command:`find_path`
|
||||
and :command:`find_file` commands gained a new ``REQUIRED`` option that will
|
||||
stop processing with an error message if nothing is found.
|
||||
|
||||
* The :command:`get_property` command with ``SOURCE`` scope gained the
|
||||
``DIRECTORY`` and ``TARGET_DIRECTORY`` options to get a property
|
||||
from the provided directory scope.
|
||||
|
||||
* The :command:`get_source_file_property` command gained the ``DIRECTORY``
|
||||
and ``TARGET_DIRECTORY`` options to get a property from the
|
||||
provided directory scope.
|
||||
|
||||
* The :command:`list` operation ``SORT`` gained the ``NATURAL`` sort
|
||||
option to sort using natural order (see ``strverscmp(3)`` manual).
|
||||
|
||||
* The :command:`set_property` command with the ``SOURCE`` scope gained the
|
||||
``DIRECTORY`` and ``TARGET_DIRECTORY`` options to set properties
|
||||
in the provided directory scopes.
|
||||
|
||||
* The :command:`set_source_files_properties` command gained the ``DIRECTORY``
|
||||
and ``TARGET_DIRECTORY`` options to set properties in the provided
|
||||
directory scopes.
|
||||
|
||||
* The :command:`string` command learned a new ``HEX`` sub-command, which
|
||||
converts strings into their hexadecimal representation.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* A :variable:`CMAKE_CUDA_ARCHITECTURES` variable was added to specify
|
||||
CUDA output architectures. Users are encouraged to use this instead of
|
||||
specifying options manually, as this approach is compiler-agnostic.
|
||||
The variable is initialized automatically when
|
||||
:variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` is ``NVIDIA``.
|
||||
The variable is used to initialize the new :prop_tgt:`CUDA_ARCHITECTURES`
|
||||
target property. See policy :policy:`CMP0104`.
|
||||
|
||||
* The :variable:`CMAKE_PCH_WARN_INVALID` variable was added to initialize the
|
||||
:prop_tgt:`PCH_WARN_INVALID` target property to allow the removal of the
|
||||
precompiled header invalid warning.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`CUDA_ARCHITECTURES` target property was added to specify
|
||||
CUDA output architectures. Users are encouraged to use this instead of
|
||||
specifying options manually, as this approach is compiler-agnostic.
|
||||
The property is initialized by the new :variable:`CMAKE_CUDA_ARCHITECTURES`
|
||||
variable. See policy :policy:`CMP0104`.
|
||||
|
||||
* The :prop_tgt:`Fortran_PREPROCESS` target property and
|
||||
:prop_sf:`Fortran_PREPROCESS` source-file property were added to
|
||||
control preprocessing of Fortran source files.
|
||||
|
||||
* The :prop_tgt:`FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>` target property
|
||||
and associated :variable:`CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>`
|
||||
variable were created to allow adding a postfix to the name of a
|
||||
framework file name when using a multi-config generator.
|
||||
|
||||
* The :prop_sf:`OBJECT_OUTPUTS` source file property now supports
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :prop_tgt:`PCH_WARN_INVALID` target property was added to allow the
|
||||
removal of the precompiled header invalid warning.
|
||||
|
||||
* The :prop_tgt:`UNITY_BUILD_MODE` target property was added to tell
|
||||
generators which algorithm to use for grouping included source
|
||||
files.
|
||||
|
||||
* The :prop_tgt:`VS_SOURCE_SETTINGS_<tool>` target property was added
|
||||
to tell :ref:`Visual Studio Generators` for VS 2010 and above to add
|
||||
metadata to non-built source files using ``<tool>``.
|
||||
|
||||
* The :prop_sf:`VS_SETTINGS` source file property was added to tell
|
||||
:ref:`Visual Studio Generators` for VS 2010 and above to add
|
||||
metadata to a non-built source file.
|
||||
|
||||
* The :prop_tgt:`VS_PLATFORM_TOOLSET` target property was added to tell
|
||||
:ref:`Visual Studio Generators` for VS 2010 and above to override
|
||||
the platform toolset.
|
||||
|
||||
* The :prop_tgt:`VS_SOLUTION_DEPLOY` target property was added to tell
|
||||
:ref:`Visual Studio Generators` for VS 2010 and above to mark a
|
||||
target for deployment even when not building for Windows Phone/Store/CE.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`CheckLinkerFlag` module has been added to provide a
|
||||
facility to check validity of link flags.
|
||||
|
||||
* The :module:`ExternalProject` module :command:`ExternalProject_Add` command
|
||||
gained a new ``GIT_REMOTE_UPDATE_STRATEGY`` keyword. This can be used to
|
||||
specify how failed rebase operations during a git update should be handled.
|
||||
The ``CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY`` variable was also added as a
|
||||
global default and is honored by both the :module:`ExternalProject` and
|
||||
:module:`FetchContent` modules.
|
||||
|
||||
* The :module:`FetchContent` module :command:`FetchContent_Declare` command
|
||||
now supports a ``SOURCE_SUBDIR`` option. It can be used to direct
|
||||
:command:`FetchContent_MakeAvailable` to look in a different location
|
||||
for the ``CMakeLists.txt`` file.
|
||||
|
||||
* The :module:`FindBLAS` module now provides an imported target.
|
||||
|
||||
* The :module:`FindCUDAToolkit` module:
|
||||
|
||||
* gained the variable
|
||||
``CUDAToolkit_LIBRARY_ROOT``, which is the directory containing the
|
||||
``nvvm`` directory and ``version.txt``.
|
||||
|
||||
* uses toolkit and library root found during ``CUDA`` compiler detection.
|
||||
|
||||
* The :module:`FindLAPACK` module now provides an imported target.
|
||||
|
||||
* The :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
modules:
|
||||
|
||||
* gained the possibility to create per-artifact cache variables for
|
||||
interactive editing in :manual:`cmake-gui(1)` and :manual:`ccmake(1)`.
|
||||
|
||||
* gained sub-components ``Development.Module`` and
|
||||
``Development.Embed`` under the ``Development`` component.
|
||||
|
||||
* gained the capability to specify which Python implementations to find,
|
||||
including ``IronPython`` and ``PyPy``.
|
||||
|
||||
* The :module:`FindRuby` module input and output variables were all renamed
|
||||
from ``RUBY_`` to ``Ruby_`` for consistency with other find modules.
|
||||
Input variables of the old case will be honored if provided, and output
|
||||
variables of the old case are always provided.
|
||||
|
||||
* The :module:`FindSWIG` module now accepts target languages as ``COMPONENTS``
|
||||
and ``OPTIONAL_COMPONENTS`` arguments to ``find_package``.
|
||||
|
||||
* The :module:`GoogleTest` module :command:`gtest_discover_tests` command:
|
||||
|
||||
* gained a new ``DISCOVERY_MODE`` option to control when the test
|
||||
discovery step is run. It offers a new ``PRE_TEST`` setting to
|
||||
run the discovery at test time instead of build time. A new
|
||||
``CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE`` variable can be used
|
||||
to change the default globally.
|
||||
|
||||
* gained a new optional parameter ``XML_OUTPUT_DIR``. When set the
|
||||
JUnit XML test results are stored in that directory.
|
||||
|
||||
* The :module:`FindLibXslt` module now provides imported targets.
|
||||
|
||||
* The :module:`UseSWIG` module now supports Fortran as a target language if
|
||||
the ``SWIG_EXECUTABLE`` is SWIG-Fortran_.
|
||||
|
||||
.. _`SWIG-Fortran`: https://github.com/swig-fortran/swig
|
||||
|
||||
Generator Expressions
|
||||
---------------------
|
||||
|
||||
* The :genex:`$<DEVICE_LINK:...>` and :genex:`$<HOST_LINK:...>`
|
||||
generator expressions were added to manage device and host link steps.
|
||||
|
||||
* The :genex:`$<LINK_LANGUAGE:...>` and :genex:`$<LINK_LANG_AND_ID:...>`
|
||||
generator expressions were added.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* :manual:`ctest(1)` gained a new :variable:`CTEST_RESOURCE_SPEC_FILE`
|
||||
variable, which can be used to specify a
|
||||
:ref:`resource specification file <ctest-resource-specification-file>`.
|
||||
|
||||
* :manual:`ctest(1)` gained a ``--stop-on-failure`` option,
|
||||
which can be used to stop running the tests once one has failed.
|
||||
|
||||
* The :command:`ctest_test` command gained a ``STOP_ON_FAILURE`` option
|
||||
which can be used to stop running the tests once one has failed.
|
||||
|
||||
* The :module:`CTestCoverageCollectGCOV` module
|
||||
:command:`ctest_coverage_collect_gcov` command gained a
|
||||
``TARBALL_COMPRESSION`` option to control compression of the
|
||||
tarball of collected results.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack Archive Generator`'s ``TXZ`` format learned the
|
||||
:variable:`CPACK_ARCHIVE_THREADS` variable to enable parallel compression.
|
||||
Requires support in the ``liblzma`` used by CMake.
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` gained a new variable
|
||||
:variable:`CPACK_NSIS_MANIFEST_DPI_AWARE` to declare that the
|
||||
installer is DPI-aware.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` gained
|
||||
:variable:`CPACK_RPM_PRE_TRANS_SCRIPT_FILE` and
|
||||
:variable:`CPACK_RPM_POST_TRANS_SCRIPT_FILE`
|
||||
variables to specify pre- and post-transaction scripts.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* :manual:`cmake-gui(1)` now populates its generator selection
|
||||
widget default value from the :envvar:`CMAKE_GENERATOR` environment
|
||||
variable. Additionally, environment variables
|
||||
:envvar:`CMAKE_GENERATOR_PLATFORM` and :envvar:`CMAKE_GENERATOR_TOOLSET`
|
||||
are used to populate their respective widget defaults.
|
||||
|
||||
* :manual:`ccmake(1)` learned to read a :envvar:`CCMAKE_COLORS`
|
||||
environment variable to customize colors.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of the availability of C11 features in MSVC 19.27 and 19.28,
|
||||
including support for the ``c_restrict``, ``c_static_assert`` features and
|
||||
the ``-std:c11`` flag.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The :module:`Documentation` module has been deprecated via
|
||||
:policy:`CMP0106`. This module was essentially VTK code that CMake should
|
||||
not be shipping anymore.
|
||||
|
||||
* An explicit deprecation diagnostic was added for policy ``CMP0070``
|
||||
and policy ``CMP0071`` (``CMP0069`` 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.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* On Windows, the :generator:`Ninja` and :generator:`Ninja Multi-Config`
|
||||
generators, when a compiler is not explicitly specified, now select
|
||||
the first compiler (of any name) found in directories listed by the
|
||||
``PATH`` environment variable.
|
||||
|
||||
* The :prop_tgt:`LINK_OPTIONS` and :prop_tgt:`INTERFACE_LINK_OPTIONS` target
|
||||
properties are now used for the device link step.
|
||||
See policy :policy:`CMP0105`.
|
||||
|
||||
* Creation of an ``ALIAS`` target overwriting an existing target now raises an
|
||||
error. See policy :policy:`CMP0107`.
|
||||
|
||||
* Linking a target to itself through an alias now raises an error.
|
||||
See policy :policy:`CMP0108`.
|
||||
|
||||
* The :module:`FindPackageHandleStandardArgs` module option ``REQUIRED_VARS``
|
||||
is now optional if ``HANDLE_COMPONENTS`` is specified.
|
||||
|
||||
* The :command:`source_group` command now also recognizes forward slashes
|
||||
as subgroup delimiters, not just backslashes.
|
||||
|
||||
* :manual:`ctest(1)` now logs environment variables that it sets for each test,
|
||||
either due to the :prop_test:`ENVIRONMENT` property or the
|
||||
:ref:`resource allocation <ctest-resource-allocation>` feature, and submits
|
||||
this log to CDash. It does not log environment variables that were set
|
||||
outside of CTest.
|
||||
|
||||
* When building CMake itself from source and not using a system-provided
|
||||
libcurl, HTTP/2 support is now enabled for commands supporting
|
||||
network communication via ``http(s)``, such as :command:`file(DOWNLOAD)`,
|
||||
:command:`file(UPLOAD)`, and :command:`ctest_submit`.
|
||||
The precompiled binaries provided on ``cmake.org`` now support HTTP/2.
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has
|
||||
been updated to 2.1.
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object gained
|
||||
a new ``precompileHeaders`` field in the ``compileGroups`` objects.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.18.0 include the following.
|
||||
|
||||
3.18.1
|
||||
------
|
||||
|
||||
* The :generator:`Xcode` generator, when :variable:`CMAKE_OSX_ARCHITECTURES`
|
||||
is not defined, now selects ``$(NATIVE_ARCH_ACTUAL)`` as the default
|
||||
architecture (the Xcode ``ARCHS`` setting). This is needed for Xcode 12
|
||||
to select the host's architecture, which older versions of Xcode did
|
||||
by default.
|
||||
|
||||
* In CMake 3.18.0 the :command:`add_test` command learned to support
|
||||
special characters in test names. This was accidentally left out of
|
||||
its release notes. Unfortunately the fix breaks existing projects
|
||||
that were using manual quoting or escaping to work around the prior
|
||||
limitation. This fix has been reverted in 3.18.1, but may be
|
||||
re-introduced in future versions of CMake with a policy for compatibility.
|
||||
|
||||
3.18.2
|
||||
------
|
||||
|
||||
* The default value of :variable:`CMAKE_AUTOMOC_PATH_PREFIX` was changed to
|
||||
``OFF`` because this feature can break existing projects that have
|
||||
identically named header files in different include directories.
|
||||
This restores compatibility with behavior of CMake 3.15 and below.
|
||||
The default was also changed to ``OFF`` in 3.16.9 and 3.17.5.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
was updated for MSVC 19.27 as mentioned above (``c_restrict``).
|
||||
|
||||
3.18.3
|
||||
------
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
was updated for MSVC 19.28 as mentioned above (``c_static_assert``).
|
442
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.19.rst
Normal file
442
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.19.rst
Normal file
@ -0,0 +1,442 @@
|
||||
CMake 3.19 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.18 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Presets
|
||||
-------
|
||||
|
||||
* :manual:`cmake(1)` and :manual:`cmake-gui(1)` now recognize
|
||||
``CMakePresets.json`` and ``CMakeUserPresets.json`` files (see
|
||||
:manual:`cmake-presets(7)`).
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* 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 :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 :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.
|
||||
|
||||
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.
|
||||
|
||||
* ``CUDA`` language support now works on QNX.
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* Apple Silicon is now supported (since CMake 3.19.2):
|
||||
|
||||
* The :variable:`CMAKE_HOST_SYSTEM_PROCESSOR` is selected using ``uname -m``.
|
||||
Since this may vary based on CMake's own architecture and that of
|
||||
the invoking process tree, the :variable:`CMAKE_APPLE_SILICON_PROCESSOR`
|
||||
variable or :envvar:`CMAKE_APPLE_SILICON_PROCESSOR` environment
|
||||
variable may be set to specify a host architecture explicitly.
|
||||
|
||||
* If :variable:`CMAKE_OSX_ARCHITECTURES` is not set, CMake adds explicit
|
||||
flags to tell the compiler to build for the
|
||||
:variable:`CMAKE_HOST_SYSTEM_PROCESSOR` so the toolchain does not
|
||||
have to guess based on the process tree's architecture.
|
||||
|
||||
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.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* 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.
|
||||
|
||||
GUI
|
||||
---
|
||||
|
||||
* The :manual:`CMake GUI <cmake-gui(1)>` 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.
|
||||
|
||||
* The :command:`configure_file` command gained a ``NO_SOURCE_PERMISSIONS``
|
||||
option to suppress copying the input file's permissions to the output file.
|
||||
|
||||
* The :command:`execute_process` command gained a ``COMMAND_ERROR_IS_FATAL``
|
||||
option to specify a fatal error.
|
||||
|
||||
* The :command:`file(ARCHIVE_CREATE)` command gained a ``COMPRESSION_LEVEL``
|
||||
option to specify the compression level.
|
||||
|
||||
* The :command:`file(CHMOD)` and :command:`file(CHMOD_RECURSE)` subcommands
|
||||
were added to set permissions of files and directories.
|
||||
|
||||
* The :command:`file(DOWNLOAD)` command ``<file>`` argument is now
|
||||
optional. 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` command gained a new ``REAL_PATH`` sub-command to
|
||||
compute a path with symlinks resolved.
|
||||
|
||||
* The :command:`find_package` command learned to handle a version range.
|
||||
|
||||
* The :command:`separate_arguments` command gained a new ``PROGRAM`` option.
|
||||
It allows the arguments to be treated as a program invocation and will
|
||||
resolve the executable to a full path if it can be found.
|
||||
|
||||
* The ``DIRECTORY`` option of the :command:`set_property`,
|
||||
:command:`get_property`, and :command:`get_directory_property` commands
|
||||
now accepts references to binary directory paths, such as the value of
|
||||
:variable:`CMAKE_CURRENT_BINARY_DIR`.
|
||||
|
||||
* The :command:`string` command gained a set of new ``JSON`` sub commands
|
||||
that provide JSON parsing capabilities.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* 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.
|
||||
|
||||
* The :variable:`CMAKE_MFC_FLAG` variable now supports generator expressions.
|
||||
|
||||
* 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.
|
||||
|
||||
* The :variable:`CMAKE_PCH_INSTANTIATE_TEMPLATES` variable was added to
|
||||
initialize the new :prop_tgt:`PCH_INSTANTIATE_TEMPLATES` target property.
|
||||
|
||||
* 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 now supports
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :prop_tgt:`OPTIMIZE_DEPENDENCIES` target property was added to
|
||||
avoid unnecessarily building dependencies for a static library.
|
||||
|
||||
* The :prop_tgt:`PCH_INSTANTIATE_TEMPLATES` target property was added to enable
|
||||
template instantiation in the precompiled header. This is enabled by default
|
||||
and may significantly improve compile times. Currently only supported for
|
||||
Clang (version 11 or later).
|
||||
|
||||
* The :prop_tgt:`WIN32_EXECUTABLE` target property now supports
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* 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 :module:`CheckLinkerFlag` module now supports the ``CUDA`` language.
|
||||
|
||||
* 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 :module:`CheckSourceRuns` module has been added to
|
||||
generalize :module:`CheckCSourceRuns` and
|
||||
:module:`CheckCXXSourceRuns` to more languages.
|
||||
It also supports the ``CUDA`` language.
|
||||
|
||||
* The :module:`CMakePackageConfigHelpers` module gained support for version
|
||||
ranges.
|
||||
|
||||
* 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 :module:`FindPackageHandleStandardArgs` module learned to handle
|
||||
version ranges. 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 ability to handle a version range.
|
||||
|
||||
* The :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
modules provide, respectively, the variable ``Python3_LINK_OPTIONS``,
|
||||
``Python2_LINK_OPTIONS`` and ``Python_LINK_OPTIONS`` for link options.
|
||||
|
||||
* The :module:`FindSDL` module now provides:
|
||||
|
||||
* An 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``.
|
||||
|
||||
* The :module:`FindSWIG` module gained the ability to handle a version range.
|
||||
|
||||
* The :module:`FindTIFF` module gained a ``CXX`` component to
|
||||
find the ``tiffxx`` library containing C++ bindings.
|
||||
|
||||
* 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:`UseSWIG` module gained support for new source file properties
|
||||
``OUTPUT_DIR`` and ``OUTFILE_DIR`` to manage output directories on a
|
||||
per-source basis.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* :manual:`ctest(1)` now supports the CUDA ``compute-sanitizer`` checker
|
||||
(previously known as ``cuda-memcheck``) as the ``CTEST_MEMORYCHECK_COMMAND``.
|
||||
The different tools (``memcheck``, ``racecheck``, ``synccheck`` and
|
||||
``initcheck``) supported 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``.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* CPack gained the :variable:`CPACK_PRE_BUILD_SCRIPTS`,
|
||||
:variable:`CPACK_POST_BUILD_SCRIPTS`, and :variable:`CPACK_PACKAGE_FILES`
|
||||
variables.
|
||||
|
||||
* The :cpack_gen:`CPack External Generator` gained the
|
||||
:variable:`CPACK_EXTERNAL_BUILT_PACKAGES` variable.
|
||||
|
||||
* The :cpack_gen:`CPack WIX Generator` gained a
|
||||
:variable:`CPACK_WIX_CUSTOM_XMLNS` option to specify custom XML namespaces.
|
||||
|
||||
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.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* 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.
|
||||
|
||||
* 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.
|
||||
|
||||
* macOS SDKs older than 10.5 are no longer supported.
|
||||
|
||||
* :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.
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
||||
The following guides have been added:
|
||||
|
||||
* :guide:`IDE Integration Guide`
|
||||
* :guide:`Importing and Exporting Guide`
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* 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 :variable:`CMAKE_<LANG>_COMPILER` variable may now be used to
|
||||
store "mandatory" compiler flags like the :envvar:`CC` and other environment
|
||||
variables.
|
||||
|
||||
* The :variable:`CMAKE_<LANG>_FLAGS_INIT` variable will now be considered
|
||||
during the compiler identification check if other sources like
|
||||
:variable:`CMAKE_<LANG>_FLAGS` or :envvar:`CFLAGS` are not set.
|
||||
|
||||
* The :command:`find_program` command now requires permission to execute
|
||||
but not to read the file found. See policy :policy:`CMP0109`.
|
||||
|
||||
* An imported target missing its location property fails during generation
|
||||
if the location is used. See policy :policy:`CMP0111`.
|
||||
|
||||
* 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``
|
||||
|
||||
* :ref:`Makefile Generators` no longer repeat custom commands from target
|
||||
dependencies. See policy :policy:`CMP0113`.
|
||||
|
||||
* The :module:`ExternalProject` module handling of step target dependencies
|
||||
has been revised. See policy :policy:`CMP0114`.
|
||||
|
||||
* 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.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.19.0 include the following.
|
||||
|
||||
3.19.1
|
||||
------
|
||||
|
||||
* CMake 3.19.0 compiles source files with the :prop_sf:`LANGUAGE`
|
||||
property by passing an explicit language flag such as ``-x c``.
|
||||
This is consistent with the property's documented meaning that
|
||||
the source file is written in the specified language. However,
|
||||
it can break projects that were using the property only to
|
||||
cause the specified language's compiler to be used. This has
|
||||
been reverted to restore behavior from CMake 3.18 and below.
|
||||
|
||||
* CUDA 11.1 support for Clang.
|
||||
|
||||
3.19.2
|
||||
------
|
||||
|
||||
* The precompiled macOS binary provided on ``cmake.org`` is now a
|
||||
universal binary with ``x86_64`` and ``arm64`` architectures.
|
||||
It requires macOS 10.10 or newer.
|
||||
The package file naming pattern has been changed from
|
||||
``cmake-$ver-Darwin-x86_64`` to ``cmake-$ver-macos-universal``.
|
||||
|
||||
* Apple Silicon host architecture selection support was updated.
|
||||
CMake 3.19.0 and 3.19.1 always chose ``arm64`` as the host architecture.
|
||||
CMake 3.19.2 returns to using ``uname -m`` as CMake 3.18 and below did.
|
||||
Since this may vary based on CMake's own architecture and that of
|
||||
the invoking process tree, the :variable:`CMAKE_APPLE_SILICON_PROCESSOR`
|
||||
variable or :envvar:`CMAKE_APPLE_SILICON_PROCESSOR` environment
|
||||
variable may be set to specify a host architecture explicitly.
|
||||
|
||||
* The :variable:`CMAKE_ISPC_HEADER_SUFFIX` variable and corresponding
|
||||
:prop_tgt:`ISPC_HEADER_SUFFIX` target property were added to control
|
||||
the header suffix used by ``ISPC`` compiler generated headers.
|
||||
|
||||
3.19.3
|
||||
------
|
||||
|
||||
* A precompiled Linux ``aarch64`` binary is now provided on ``cmake.org``.
|
||||
|
||||
* Two precompiled macOS binaries are now provided on ``cmake.org``:
|
||||
|
||||
* The naming pattern ``cmake-$ver-macos-universal`` is a universal
|
||||
binary with ``x86_64`` and ``arm64`` architectures. It requires
|
||||
macOS 10.13 or newer.
|
||||
|
||||
* The naming pattern ``cmake-$ver-macos10.10-universal`` is a universal
|
||||
binary with ``x86_64`` and ``arm64`` architectures. It requires
|
||||
macOS 10.10 or newer.
|
||||
|
||||
3.19.4
|
||||
------
|
||||
|
||||
* The :variable:`CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM`
|
||||
variable introduced in 3.19.0 previously worked only with the
|
||||
:generator:`Visual Studio 14 2015` generator. It has now been fixed to
|
||||
work with :ref:`Visual Studio Generators` for later VS versions too.
|
||||
|
||||
3.19.5
|
||||
------
|
||||
|
||||
* When :prop_tgt:`IOS_INSTALL_COMBINED` is enabled and the :generator:`Xcode`
|
||||
generator is used, it is now possible to initiate an install or package
|
||||
creation by running ``cmake --install`` or ``cpack`` from the command line.
|
||||
When using the Xcode new build system, these are the only supported methods
|
||||
due to a limitation of Xcode. Initiating these operations by building the
|
||||
``install`` or ``package`` targets in Xcode is only supported when using
|
||||
the legacy build system.
|
||||
|
||||
* The framework handling introduced in 3.19.0 as part of supporting Xcode's
|
||||
*Link Binaries With Libraries* build phase broke the ability to switch
|
||||
between device and simulator builds without reconfiguring. That capability
|
||||
has now been restored.
|
||||
|
||||
3.19.6
|
||||
------
|
||||
|
||||
* The :manual:`cmake-presets(7)` feature no longer allows comments in
|
||||
``CMakePresets.json`` or ``CMakeUserPresets.json`` files.
|
||||
This was mistakenly allowed by the implementation in CMake 3.19.0 through
|
||||
CMake 3.19.5, and was not documented.
|
||||
|
||||
3.19.7
|
||||
------
|
||||
|
||||
* With :ref:`Visual Studio Generators` for VS 2017 and higher, the
|
||||
:variable:`CMAKE_GENERATOR_TOOLSET` field ``version=`` now accepts
|
||||
three-component MSVC toolset versions such as ``14.28.29910``.
|
||||
See the :variable:`CMAKE_VS_PLATFORM_TOOLSET_VERSION` variable.
|
277
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.2.rst
Normal file
277
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.2.rst
Normal file
@ -0,0 +1,277 @@
|
||||
CMake 3.2 Release Notes
|
||||
***********************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.1 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Syntax
|
||||
------
|
||||
|
||||
* CMake learned to support unicode characters
|
||||
:ref:`encoded as UTF-8 <CMake Language Encoding>`
|
||||
on Windows. This was already supported on platforms whose
|
||||
system APIs accept UTF-8 encoded strings.
|
||||
Unicode characters may now be used in CMake code, paths to
|
||||
source files, configured files such as ``.h.in`` files, and
|
||||
other files read and written by CMake. Note that because CMake
|
||||
interoperates with many other tools, there may still be some
|
||||
limitations when using certain unicode characters.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_custom_command` and :command:`add_custom_target`
|
||||
commands learned a new ``BYPRODUCTS`` option to specify files
|
||||
produced as side effects of the custom commands. These are not
|
||||
outputs because they do not always have to be newer than inputs.
|
||||
|
||||
* The :command:`add_custom_command` and :command:`add_custom_target`
|
||||
commands learned a new ``USES_TERMINAL`` option to request that
|
||||
the command be given direct access to the terminal if possible.
|
||||
The :generator:`Ninja` generator will places such commands in the
|
||||
``console`` :prop_gbl:`pool <JOB_POOLS>`. Build targets provided by CMake
|
||||
that are meant for individual interactive use, such as ``install``, are now
|
||||
placed in this pool.
|
||||
|
||||
* A new :command:`continue` command was added that can be called inside loop
|
||||
contexts to end the current iteration and start the next one at the top of
|
||||
the loop block.
|
||||
|
||||
* The :command:`file(LOCK)` subcommand was created to allow CMake
|
||||
processes to synchronize through file and directory locks.
|
||||
|
||||
* The :command:`file(STRINGS)` now supports UTF-16LE, UTF-16BE,
|
||||
UTF-32LE, UTF-32BE as ``ENCODING`` options.
|
||||
|
||||
* The :command:`install(EXPORT)` command now works with an absolute
|
||||
``DESTINATION`` even if targets in the export set are installed
|
||||
with a destination or :ref:`usage requirements <Target Usage Requirements>`
|
||||
specified relative to the install prefix. The value of the
|
||||
:variable:`CMAKE_INSTALL_PREFIX` variable is hard-coded into the installed
|
||||
export file as the base for relative references.
|
||||
|
||||
* The :command:`try_compile` command source file signature now honors
|
||||
link flags (e.g. :variable:`CMAKE_EXE_LINKER_FLAGS`) in the generated
|
||||
test project. See policy :policy:`CMP0056`.
|
||||
|
||||
* The :command:`try_run` command learned to honor the ``LINK_LIBRARIES``
|
||||
option just as :command:`try_compile` already does.
|
||||
|
||||
* The :command:`file(GENERATE)` command now generates the output file with
|
||||
the same permissions as the input file if set.
|
||||
|
||||
* The :command:`file(GENERATE)` command can now generate files which are
|
||||
used as source files for buildsystem targets. Generated files
|
||||
automatically get their :prop_sf:`GENERATED` property set to ``TRUE``.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :variable:`CMAKE_MATCH_COUNT` variable was introduced to record the
|
||||
number of matches made in the last regular expression matched in an
|
||||
:command:`if` command or a :command:`string` command.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* An :prop_tgt:`ANDROID_API_MIN` target property was introduced to
|
||||
specify the minimum version to be targeted by the toolchain.
|
||||
|
||||
* A :prop_sf:`VS_SHADER_FLAGS` source file property was added to specify
|
||||
additional shader flags to ``.hlsl`` files, for the Visual Studio
|
||||
generators.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`ExternalData` module learned to support
|
||||
:ref:`Custom Fetch Scripts <ExternalData Custom Fetch Scripts>`.
|
||||
This allows projects to specify custom ``.cmake`` scripts for
|
||||
fetching data objects during the build.
|
||||
|
||||
* The :module:`ExternalProject` module learned options to create
|
||||
independent external project step targets that do not depend
|
||||
on the builtin steps.
|
||||
|
||||
* The :module:`ExternalProject` module :command:`ExternalProject_Add`
|
||||
command learned a new ``CMAKE_CACHE_DEFAULT_ARGS`` option to
|
||||
initialize cache values in the external project without setting
|
||||
them on future builds.
|
||||
|
||||
* The :module:`ExternalProject` module :command:`ExternalProject_Add`
|
||||
command learned a new ``TEST_EXCLUDE_FROM_MAIN`` option to exclude
|
||||
tests from the main build.
|
||||
|
||||
* The :module:`ExternalProject` module :command:`ExternalProject_Add`
|
||||
command learned a new ``UPDATE_DISCONNECTED`` option to avoid
|
||||
automatically updating the source tree checkout from version control.
|
||||
|
||||
* The :module:`FindCUDA` module learned about the ``cusolver``
|
||||
library in CUDA 7.0.
|
||||
|
||||
* The :module:`FindGit` module learned to find the ``git`` command-line tool
|
||||
that comes with GitHub for Windows installed in user home directories.
|
||||
|
||||
* A :module:`FindGSL` module was introduced to find the
|
||||
GNU Scientific Library.
|
||||
|
||||
* A :module:`FindIntl` module was introduced to find the
|
||||
Gettext ``libintl`` library.
|
||||
|
||||
* The :module:`FindLATEX` module learned to support components.
|
||||
|
||||
* The :module:`FindMPI` module learned to find MS-MPI on Windows.
|
||||
|
||||
* The :module:`FindOpenSSL` module now reports ``crypto`` and ``ssl``
|
||||
libraries separately in ``OPENSSL_CRYPTO_LIBRARY`` and
|
||||
``OPENSSL_SSL_LIBRARY``, respectively, to allow applications to
|
||||
link to one without the other.
|
||||
|
||||
* The :module:`WriteCompilerDetectionHeader` module learned to
|
||||
create a define for portability of the ``cxx_thread_local`` feature.
|
||||
The define expands to either the C++11 ``thread_local`` keyword, or a
|
||||
pre-standardization compiler-specific equivalent, as appropriate.
|
||||
|
||||
* The :module:`WriteCompilerDetectionHeader` module learned to create
|
||||
multiple output files per compiler and per language, instead of creating
|
||||
one large file.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :command:`ctest_coverage` command learned to support Delphi coverage.
|
||||
|
||||
* The :command:`ctest_coverage` command learned to support Javascript coverage.
|
||||
|
||||
* The :module:`CTestCoverageCollectGCOV` module was introduced as an
|
||||
alternative to the :command:`ctest_coverage` command for collecting
|
||||
``gcov`` results for submission to CDash.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned options to set per-component
|
||||
descriptions and summaries. See the
|
||||
:variable:`CPACK_RPM_<component>_PACKAGE_DESCRIPTION` and
|
||||
:variable:`CPACK_RPM_<component>_PACKAGE_SUMMARY` variables.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned options to specify
|
||||
requirements for pre- and post-install scripts. See the
|
||||
:variable:`CPACK_RPM_PACKAGE_REQUIRES_PRE` and
|
||||
:variable:`CPACK_RPM_PACKAGE_REQUIRES_POST` variables.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned options to specify
|
||||
requirements for pre- and post-uninstall scripts. See the
|
||||
:variable:`CPACK_RPM_PACKAGE_REQUIRES_PREUN` and
|
||||
:variable:`CPACK_RPM_PACKAGE_REQUIRES_POSTUN` variables.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned a new
|
||||
:variable:`CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX` variable to
|
||||
specify a component-specific value to use instead of
|
||||
:variable:`CPACK_PACKAGING_INSTALL_PREFIX`.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned a new
|
||||
:variable:`CPACK_RPM_RELOCATION_PATHS` variable to
|
||||
specify multiple relocation prefixes for a single rpm package.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` command now supports creating
|
||||
``.xz``-compressed archives with the ``J`` flag.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` command learned a new
|
||||
``--files-from=<file>`` option to specify file names using
|
||||
lines in a file to overcome command-line length limits.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` command learned a new
|
||||
``--mtime=<date>`` option to specify the modification time
|
||||
recorded in tarball entries.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of features supported by more compilers, including:
|
||||
|
||||
* Apple Clang (``AppleClang``) for Xcode versions 4.4 though 6.1.
|
||||
* GNU compiler versions 4.4 through 5.0 on UNIX and Apple (``GNU``).
|
||||
* Microsoft Visual Studio (``MSVC``) for versions 2010 through 2015.
|
||||
* Oracle SolarisStudio (``SunPro``) version 12.4.
|
||||
|
||||
* The :ref:`Qt AUTORCC` feature now tracks files listed in ``.qrc`` files
|
||||
as dependencies. If an input file to the ``rcc`` tool is changed, the tool
|
||||
is automatically re-run.
|
||||
|
||||
New Diagnostics
|
||||
===============
|
||||
|
||||
* The :command:`break` command now rejects calls outside of a loop
|
||||
context or that pass arguments to the command.
|
||||
See policy :policy:`CMP0055`.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* Files written in the :manual:`cmake-language(7)`, such as
|
||||
``CMakeLists.txt`` or ``*.cmake`` files, are now expected to be
|
||||
encoded as UTF-8. If files are already ASCII, they will be
|
||||
compatible. If files were in a different encoding, including
|
||||
Latin 1, they will need to be converted.
|
||||
|
||||
* The :module:`FindOpenGL` module no longer explicitly searches
|
||||
for any dependency on X11 libraries with the :module:`FindX11`
|
||||
module. Such dependencies should not need to be explicit.
|
||||
Applications using X11 APIs themselves should find and link
|
||||
to X11 libraries explicitly.
|
||||
|
||||
* The implementation of CMake now relies on some C++ compiler features which
|
||||
are not supported by some older compilers. As a result, those old compilers
|
||||
can no longer be used to build CMake itself. CMake continues to be able to
|
||||
generate Makefiles and project files for users of those old compilers
|
||||
however. Compilers known to no longer be capable of building CMake are:
|
||||
|
||||
* Visual Studio 6 and 7.0 -- superseded by VisualStudio 7.1 and newer.
|
||||
* GCC 2.95 -- superseded by GCC 3 and newer compilers.
|
||||
* Borland compilers -- superseded by other Windows compilers.
|
||||
* Compaq compilers -- superseded by other compilers.
|
||||
* SGI compilers -- IRIX was dropped as a host platform.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* On Windows and OS X, commands supporting network communication
|
||||
via ``https``, such as :command:`file(DOWNLOAD)`,
|
||||
:command:`file(UPLOAD)`, and :command:`ctest_submit`, now support
|
||||
SSL/TLS even when CMake is not built against OpenSSL.
|
||||
The Windows or OS X native SSL/TLS implementation is used by default.
|
||||
OS-configured certificate authorities will be trusted automatically.
|
||||
|
||||
On other platforms, when CMake is built with OpenSSL, these
|
||||
commands now search for OS-configured certificate authorities
|
||||
in a few ``/etc`` paths to be trusted automatically.
|
||||
|
||||
* On OS X with Makefile and Ninja generators, when a compiler is found
|
||||
in ``/usr/bin`` it is now mapped to the corresponding compiler inside
|
||||
the Xcode application folder, if any. This allows such build
|
||||
trees to continue to work with their original compiler even when
|
||||
``xcode-select`` switches to a different Xcode installation.
|
||||
|
||||
* The Visual Studio generators now write solution and project
|
||||
files in UTF-8 instead of Windows-1252. Windows-1252 supported
|
||||
Latin 1 languages such as those found in North and South America
|
||||
and Western Europe. With UTF-8, additional languages are now
|
||||
supported.
|
||||
|
||||
* The :generator:`Xcode` generator no longer requires a value for
|
||||
the :variable:`CMAKE_MAKE_PROGRAM` variable to be located up front.
|
||||
It now locates ``xcodebuild`` when needed at build time.
|
||||
|
||||
* When building CMake itself using SolarisStudio 12, the default ``libCStd``
|
||||
standard library is not sufficient to build CMake. The SolarisStudio
|
||||
distribution supports compiler options to use ``STLPort4`` or ``libstdc++``.
|
||||
An appropriate option to select the standard library is now added
|
||||
automatically when building CMake with SolarisStudio compilers.
|
371
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.20.rst
Normal file
371
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.20.rst
Normal file
@ -0,0 +1,371 @@
|
||||
CMake 3.20 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.19 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Presets
|
||||
-------
|
||||
|
||||
* :manual:`cmake-presets(7)` gained support for build and test presets.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* :ref:`Makefile Generators`, for some toolchains, now use the compiler
|
||||
to extract implicit dependencies while compiling source files.
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
* C++23 compiler modes may now be specified via the :prop_tgt:`CXX_STANDARD`,
|
||||
:prop_tgt:`CUDA_STANDARD`, or :prop_tgt:`OBJCXX_STANDARD` target properties,
|
||||
or via the :manual:`Compile Features <cmake-compile-features(7)>`
|
||||
functionality's ``cxx_std_23`` meta-feature.
|
||||
|
||||
* ``CUDA`` language support now works when ``nvcc`` is a symbolic link,
|
||||
for example due to a ``ccache`` or ``colornvcc`` wrapper script.
|
||||
|
||||
* 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.
|
||||
|
||||
Compilers
|
||||
---------
|
||||
|
||||
* The NVIDIA HPC SDK compilers are now supported with compiler id ``NVHPC``.
|
||||
|
||||
* 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 supported as of oneAPI 2021.1.
|
||||
|
||||
* 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``.
|
||||
|
||||
* Support was added for the IAR STM8 compiler.
|
||||
|
||||
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``.
|
||||
|
||||
- The :variable:`CMAKE_ANDROID_NDK_VERSION` variable was added to
|
||||
report the version of the NDK.
|
||||
|
||||
File-Based API
|
||||
--------------
|
||||
|
||||
* The :manual:`cmake-file-api(7)` gained a new "toolchains" object
|
||||
kind that describes the compiler used for each enabled language.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* :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 :genex:`$<COMMAND_CONFIG:...>` and
|
||||
:genex:`$<OUTPUT_CONFIG:...>` that control cross-config handling when using
|
||||
the :generator:`Ninja Multi-Config` generator.
|
||||
|
||||
* The :command:`add_custom_command` command gained ``DEPFILE`` support on
|
||||
:ref:`Makefile Generators`.
|
||||
|
||||
* 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 :command:`cmake_path` command was added for operations on
|
||||
filesystem paths.
|
||||
|
||||
* The :command:`configure_file` command gained ``USE_SOURCE_PERMISSIONS``
|
||||
and ``FILE_PERMISSIONS`` options to support copying of permissions of the
|
||||
source file and using specified permissions respectively.
|
||||
|
||||
* The :command:`file(GENERATE)` command gained a ``NEWLINE_STYLE`` option to
|
||||
specify how newlines are handled for the generated file.
|
||||
|
||||
* The :command:`file(GENERATE)` command gained ``NO_SOURCE_PERMISSIONS``,
|
||||
``USE_SOURCE_PERMISSIONS``, and ``FILE_PERMISSIONS`` options for controlling
|
||||
the permissions of the generated file.
|
||||
|
||||
* The :command:`install(FILES)` command ``RENAME`` option learned to
|
||||
support :manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :command:`target_include_directories` command gained a new option
|
||||
``AFTER``.
|
||||
|
||||
* The :command:`target_sources` command now supports targets created
|
||||
by the :command:`add_custom_target` command.
|
||||
|
||||
* The :command:`try_run` command gained a ``WORKING_DIRECTORY`` option to
|
||||
set the working directory in which to run the compiled check executable.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :variable:`CMAKE_<LANG>_BYTE_ORDER` variable was added to provide the
|
||||
target architecture byte order detected from the toolchain.
|
||||
|
||||
* The :variable:`CMAKE_RUNTIME_OUTPUT_DIRECTORY`,
|
||||
:variable:`CMAKE_LIBRARY_OUTPUT_DIRECTORY`, and
|
||||
:variable:`CMAKE_ARCHIVE_OUTPUT_DIRECTORY` variables now support
|
||||
target-dependent generator expressions.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`<LANG>_CLANG_TIDY` target property and the associated
|
||||
:variable:`CMAKE_<LANG>_CLANG_TIDY` variable learned to support
|
||||
the ``OBJC`` and ``OBJCXX`` languages.
|
||||
|
||||
* 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 :prop_sf:`GENERATED` source-file property is now visible
|
||||
from any directory scope, regardless of the scope in which it is set.
|
||||
See policy :policy:`CMP0118`.
|
||||
|
||||
* 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.
|
||||
|
||||
* The :prop_tgt:`WIN32_EXECUTABLE` target property now works with Clang
|
||||
on Windows.
|
||||
|
||||
* The :prop_tgt:`XCODE_EMBED_FRAMEWORKS <XCODE_EMBED_<type>>` target property
|
||||
was added to tell the :generator:`Xcode` generator to embed frameworks.
|
||||
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.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`ExternalData` module :command:`ExternalData_Add_Target`
|
||||
function gained a ``SHOW_PROGRESS <bool>`` option for controlling whether
|
||||
or not to show progress output during the build.
|
||||
|
||||
* The :module:`ExternalProject` module :command:`ExternalProject_Add` function
|
||||
gained a ``CONFIGURE_HANDLED_BY_BUILD`` option. This can be used to make
|
||||
subsequent runs of the configure step be triggered by the build step when
|
||||
an external project dependency rebuilds instead of always re-running the
|
||||
configure step in such cases.
|
||||
|
||||
* 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:`FindCUDAToolkit` module gained support for finding CUDA
|
||||
toolkits when ``nvcc`` is a symbolic link,
|
||||
for example due to a ``ccache`` or ``colornvcc`` wrapper script.
|
||||
|
||||
* The :module:`FindGDAL` module has been improved to document and mark as
|
||||
advanced its cache variables. There is a new ``FindGDAL_SKIP_GDAL_CONFIG``
|
||||
variable which may be used to skip over the ``gdal-config``-based search.
|
||||
Users may also set ``GDAL_ADDITIONAL_LIBRARY_VERSIONS`` to add additional
|
||||
versions to the library name search strategy.
|
||||
|
||||
* The :module:`FindIntl` module now provides an imported target.
|
||||
|
||||
* The :module:`FindOpenSSL` module learned to support a version range.
|
||||
|
||||
* The :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
modules gained options controlling how unversioned interpreter names are
|
||||
searched.
|
||||
|
||||
* The :module:`UseJava` module ``add_jar()`` command's
|
||||
``GENERATE_NATIVE_HEADERS`` feature gained options to export the
|
||||
generated target.
|
||||
|
||||
* The :module:`UseSWIG` module gained the capability, for
|
||||
:ref:`Makefile <Makefile Generators>` and :ref:`Ninja <Ninja Generators>`
|
||||
generators, to use the ``swig`` tool to generate implicit dependencies.
|
||||
|
||||
Autogen
|
||||
-------
|
||||
|
||||
* The :ref:`Qt AUTOMOC` feature now works with per-config sources.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* :manual:`ctest(1)` gained a :option:`--test-dir <ctest --test-dir>`
|
||||
option to specify the directory in which to look for tests.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* :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 :cpack_gen:`CPack DEB Generator` 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 a 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
|
||||
:variable:`CPACK_NSIS_BRANDING_TEXT` and
|
||||
:variable:`CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION` variables to change
|
||||
the text at the bottom of the install window and change its trim position
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` now correctly handles Unicode
|
||||
characters. If you want to have a :variable:`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``.
|
||||
|
||||
.. _Software Package Data Exchange: https://spdx.dev/
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* 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 :module:`TestBigEndian` module has been deprecated in favor
|
||||
of the :variable:`CMAKE_<LANG>_BYTE_ORDER` variable.
|
||||
|
||||
* The :module:`AddFileDependencies` module is deprecated.
|
||||
Port projects to use :command:`set_property` directly.
|
||||
|
||||
* The :cpack_gen:`CPack NuGet Generator` deprecated some variables 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.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* When running :manual:`cmake(1)` to :ref:`Generate a Project Buildsystem`,
|
||||
unknown command-line arguments starting with a hyphen (``-``) are now
|
||||
rejected with an error. Previously they were silently ignored.
|
||||
|
||||
* Source file extensions must now be explicit.
|
||||
See policy :policy:`CMP0115` for details.
|
||||
|
||||
* The :prop_sf:`LANGUAGE` source file property now forces compilation
|
||||
as the specified language. See policy :policy:`CMP0119`.
|
||||
|
||||
* 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.
|
||||
|
||||
* 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 the ``DEPFILE`` generated by an
|
||||
:command:`add_custom_command`. See policy :policy:`CMP0116` for details.
|
||||
|
||||
* The precompiled Linux binaries provided on
|
||||
`cmake.org <https://cmake.org/download/>`_ 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 <https://cmake.org/download/>`_ have changed their naming pattern
|
||||
to ``cmake-$ver-windows-$arch``, where ``$arch`` is either ``x86_64`` or
|
||||
``i386``.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.20.0 include the following.
|
||||
|
||||
3.20.1
|
||||
------
|
||||
|
||||
* The :module:`FindIntl` module in CMake 3.20.0 added checks
|
||||
``Intl_HAVE_GETTEXT_BUILTIN``, ``Intl_HAVE_DCGETTEXT_BUILTIN``,
|
||||
and ``Intl_IS_BUILTIN``, but they were not implemented correctly.
|
||||
These have been removed and replaced with a single ``Intl_IS_BUILT_IN``
|
||||
check, whose name is consistent with the :module:`FindIconv` module.
|
||||
|
||||
* The ``-rpath`` linker flag is now specified as supported on all Apple
|
||||
platforms, not just macOS. The ``install_name_dir`` used for
|
||||
iOS, tvOS and watchOS should now default to ``@rpath`` instead of using
|
||||
a full absolute path and failing at runtime when the library or framework
|
||||
is embedded in an application bundle (see :prop_tgt:`XCODE_EMBED_<type>`).
|
||||
|
||||
3.20.2
|
||||
------
|
||||
|
||||
* The Intel Classic 2021 compiler version numbers are now detected correctly
|
||||
as having major version 2021. CMake 3.20.1 and below were not aware of a
|
||||
change to the identification macro version scheme made by Intel starting
|
||||
in version 2021, and detected the version as 20.2.
|
||||
|
||||
* The Intel oneAPI Fortran compiler is now identified as ``IntelLLVM``.
|
||||
The oneAPI 2021.1 Fortran compiler is missing an identification macro,
|
||||
so CMake 3.20.1 and below identified it as ``Intel``. CMake now has
|
||||
a special case to recognize oneAPI 2021.1 Fortran as ``IntelLLVM``.
|
||||
The oneAPI 2021.2 Fortran compiler defines the proper identification
|
||||
macro and so is identified as ``IntelLLVM`` by all CMake 3.20 versions.
|
||||
|
||||
3.20.3, 3.20.4, 3.20.5, 3.20.6
|
||||
------------------------------
|
||||
|
||||
These versions made no changes to documented features or interfaces.
|
||||
Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
343
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.21.rst
Normal file
343
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.21.rst
Normal file
@ -0,0 +1,343 @@
|
||||
CMake 3.21 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.20 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Presets
|
||||
-------
|
||||
|
||||
* :manual:`cmake-presets(7)` gained support for specifying the install prefix
|
||||
in a configure preset.
|
||||
|
||||
* :manual:`cmake-presets(7)` gained support for conditional enabling of presets.
|
||||
|
||||
* :manual:`cmake-presets(7)` gained support for a ``${hostSystemName}`` macro.
|
||||
|
||||
* :manual:`cmake-presets(7)` gained support for omitting the ``generator`` and
|
||||
``binaryDir`` fields.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :generator:`Visual Studio 17 2022` generator was added.
|
||||
|
||||
* The :ref:`Makefile Generators` and the :generator:`Ninja` generator
|
||||
learned to add linker launcher tools along with the linker for ``C``,
|
||||
``CXX``, ``OBJC``, and ``OBJCXX`` languages.
|
||||
See the :variable:`CMAKE_<LANG>_LINKER_LAUNCHER` variable
|
||||
and :prop_tgt:`<LANG>_LINKER_LAUNCHER` target property for details.
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
* CMake learned to support ``HIP`` as a first-class language that can be
|
||||
enabled via the :command:`project` and :command:`enable_language` commands.
|
||||
|
||||
* :prop_tgt:`C_STANDARD`, :prop_tgt:`OBJC_STANDARD`, and the
|
||||
:manual:`Compile Features <cmake-compile-features(7)>` functionality gained
|
||||
support for C17 and C23.
|
||||
|
||||
* Source file extensions ``.ixx`` and ``.cppm`` are now treated as C++.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* :manual:`cmake(1)` gained the :option:`--install-prefix <cmake --install-prefix>`
|
||||
command-line option to specify the location of the install prefix.
|
||||
|
||||
* :manual:`cmake(1)` gained the :option:`--toolchain <cmake --toolchain>`
|
||||
command-line option to specify a toolchain file.
|
||||
|
||||
* :manual:`cmake(1)` :option:`-E capabilities <cmake-E capabilities>` output,
|
||||
for some generators, may now contain a ``supportedPlatforms`` field listing
|
||||
platforms known to be supported in :variable:`CMAKE_GENERATOR_PLATFORM`.
|
||||
|
||||
* Messages printed to a terminal now may be colored by message type.
|
||||
|
||||
Compilers
|
||||
---------
|
||||
|
||||
* The Fujitsu compiler is now supported using compiler id ``Fujitsu``
|
||||
in traditional (``Trad``) mode, and compiler id ``FujitsuClang``
|
||||
in ``Clang`` mode.
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* CMake now supports the MSYS runtime environment, much like CYGWIN.
|
||||
|
||||
File-Based API
|
||||
--------------
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field
|
||||
has been updated to 2.3.
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 gained a
|
||||
new "directory" object containing directory-level information.
|
||||
This includes a list of installers generated by the :command:`install`
|
||||
command.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_custom_command` command ``DEPFILE`` option:
|
||||
|
||||
* may now use
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`,
|
||||
|
||||
* is now supported by :ref:`Visual Studio Generators` for VS 2012
|
||||
and above, and
|
||||
|
||||
* is now supported by the :generator:`Xcode` generator.
|
||||
|
||||
* The :command:`add_custom_command(TARGET)` command
|
||||
(for :ref:`Build Events <add_custom_command(TARGET)>`)
|
||||
gained support for resolving target-dependent generator expressions.
|
||||
|
||||
* The :command:`build_command` command gained a ``PARALLEL_LEVEL`` option.
|
||||
|
||||
* The :command:`file(COPY_FILE)` command was added to copy a single file.
|
||||
|
||||
* The :command:`file(GET_RUNTIME_DEPENDENCIES)` command gained new
|
||||
``POST_INCLUDE_FILES`` and ``POST_EXCLUDE_FILES`` arguments.
|
||||
|
||||
* The :command:`file(REAL_PATH)` command gained the option ``EXPAND_TILDE`` to
|
||||
replace any leading tilde with the path to the user's home directory.
|
||||
|
||||
* The :command:`file(RENAME)` command learned to optionally capture
|
||||
failure in a result variable. It also gained a ``NO_REPLACE``
|
||||
option to fail if the destination exists.
|
||||
|
||||
* The :command:`install` command gained a new ``IMPORTED_RUNTIME_ARTIFACTS``
|
||||
mode, which can be used to install the runtime artifacts of imported targets.
|
||||
|
||||
* The :command:`install` command gained a new ``RUNTIME_DEPENDENCY_SET`` mode,
|
||||
which can be used to install runtime dependencies using
|
||||
:command:`file(GET_RUNTIME_DEPENDENCIES)`.
|
||||
|
||||
* The :command:`install(TARGETS)` command gained new ``RUNTIME_DEPENDENCIES``
|
||||
and ``RUNTIME_DEPENDENCY_SET`` arguments, which can be used to install
|
||||
runtime dependencies using :command:`file(GET_RUNTIME_DEPENDENCIES)`.
|
||||
|
||||
* The :command:`install(SCRIPT|CODE)` command
|
||||
supports a new option ``ALL_COMPONENTS`` which allows
|
||||
the corresponding code to run for every component of
|
||||
a per component installation.
|
||||
|
||||
* The :command:`project` command now sets variables
|
||||
:variable:`PROJECT_IS_TOP_LEVEL` and :variable:`<PROJECT-NAME>_IS_TOP_LEVEL`
|
||||
to indicate whether it was called in a top-level ``CMakeLists.txt`` file.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :envvar:`CMAKE_TOOLCHAIN_FILE` environment variable was added to
|
||||
provide a default value for the :variable:`CMAKE_TOOLCHAIN_FILE` variable.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_dir:`IMPORTED_TARGETS` directory property was added to
|
||||
get a list of :ref:`Imported Targets` created in the current
|
||||
directory.
|
||||
|
||||
* The :prop_tgt:`XCODE_EMBED_APP_EXTENSIONS <XCODE_EMBED_<type>>` target property
|
||||
was added to tell the :generator:`Xcode` generator to embed app extensions
|
||||
such as iMessage sticker packs.
|
||||
Aspects of the embedding can be customized with the
|
||||
:prop_tgt:`XCODE_EMBED_APP_EXTENSIONS_PATH <XCODE_EMBED_<type>>`,
|
||||
:prop_tgt:`XCODE_EMBED_APP_EXTENSIONS_CODE_SIGN_ON_COPY <XCODE_EMBED_<type>_CODE_SIGN_ON_COPY>` and
|
||||
:prop_tgt:`XCODE_EMBED_APP_EXTENSIONS_REMOVE_HEADERS_ON_COPY <XCODE_EMBED_<type>_REMOVE_HEADERS_ON_COPY>`
|
||||
properties.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`FindBLAS` and :module:`FindLAPACK` modules learned to support
|
||||
the serial ``Fujitsu_SSL2`` and parallel ``Fujitsu_SSL2BLAMP`` libraries.
|
||||
|
||||
* The :module:`FindDevIL` module now provides imported targets.
|
||||
|
||||
* The :module:`FindIconv` module now has version support.
|
||||
|
||||
* The :module:`FindIntl` module now has version support.
|
||||
|
||||
* The :module:`FindMPI` module learned to support ``Fujitsu`` and
|
||||
``FujitsuClang`` in both host and cross compiling modes.
|
||||
|
||||
* The :module:`FindMsys` module was added to find MSYS installations.
|
||||
Like :module:`FindCygwin`, it is used automatically by some other
|
||||
find modules to locate UNIX-style tools on Windows.
|
||||
|
||||
* The :module:`FindOpenMP` module learned to support ``Fujitsu`` and
|
||||
``FujitsuClang``.
|
||||
|
||||
* The :module:`FindVulkan` module gained imported targets
|
||||
``Vulkan::Headers`` and ``Vulkan::glslangValidator``.
|
||||
|
||||
* The :module:`UseJava` module command ``add_jar`` gained a ``RESOURCES``
|
||||
option to allow explicit naming of resources with non-optional namespace.
|
||||
|
||||
* The :module:`UseSWIG` module use now standard library naming conventions
|
||||
for the ``CSharp`` language. See policy :policy:`CMP0122`.
|
||||
|
||||
* The :module:`UseSWIG` module now supports using the ``swig`` tool to
|
||||
generate implicit dependencies with the :generator:`Xcode` generator.
|
||||
|
||||
Generator Expressions
|
||||
---------------------
|
||||
|
||||
* A new :genex:`TARGET_RUNTIME_DLLS` generator expression was added.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* :manual:`ctest(1)` gained documentation for its ability to capture
|
||||
:ref:`Additional Test Measurements`.
|
||||
|
||||
* :manual:`ctest(1)` learned to recognize files attached to a test at run time.
|
||||
Previously it was only possible to attach files to tests at configure time
|
||||
by using the :prop_test:`ATTACHED_FILES` or
|
||||
:prop_test:`ATTACHED_FILES_ON_FAIL` test properties.
|
||||
See :ref:`Additional Test Measurements` for more information.
|
||||
|
||||
* :manual:`ctest(1)` gained a :option:`--output-junit <ctest --output-junit>`
|
||||
option to write test results to a JUnit XML file.
|
||||
|
||||
* The :command:`ctest_build` command gained a ``PARALLEL_LEVEL`` option.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack DragNDrop Generator` gained option
|
||||
:variable:`CPACK_DMG_FILESYSTEM` to control the ``.dmg`` filesystem.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` now supports hyphens in names
|
||||
given to :command:`cpack_ifw_configure_component` or
|
||||
:command:`cpack_ifw_configure_component_group` as ``DEPENDS`` or
|
||||
``DEPENDENCIES`` arguments. This requires QtIFW 3.1 or later.
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` gained a new
|
||||
:variable:`CPACK_NSIS_EXECUTABLE` variable to specify the ``makensis``
|
||||
executable to use instead of the default one.
|
||||
|
||||
* The :variable:`CPACK_CUSTOM_INSTALL_VARIABLES` variable was added to set
|
||||
variables in ``cmake_install.cmake`` script invocations made by CPack.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* Undocumented :variable:`CMAKE_SYSTEM_NAME` version-stripping behavior has
|
||||
been removed entirely. If it is set by a ``-D`` flag or by a
|
||||
:manual:`toolchain file <cmake-toolchains(7)>`, it is left unaltered,
|
||||
even if it still contains a version number.
|
||||
Similar :variable:`CMAKE_HOST_SYSTEM_NAME` version-stripping behavior,
|
||||
also undocumented, has been moved earlier, before :command:`project` or
|
||||
:command:`enable_language` is called.
|
||||
|
||||
* ``ARMClang`` cpu/arch compile and link flags are no longer added
|
||||
automatically based on the :variable:`CMAKE_SYSTEM_PROCESSOR`
|
||||
variable or the undocumented ``CMAKE_SYSTEM_ARCH`` variable.
|
||||
They must be specified explicitly. See policy :policy:`CMP0123`.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The :command:`find_file`, :command:`find_path`, :command:`find_program`,
|
||||
and :command:`find_library` commands handle cache variables in the same way
|
||||
regardless how they are defined. See policy :policy:`CMP0125` for details.
|
||||
|
||||
* The :command:`find_file`, :command:`find_path`, :command:`find_program`,
|
||||
and :command:`find_library` commands gained the option ``NO_CACHE`` to store
|
||||
find result in normal variable.
|
||||
|
||||
* The :command:`foreach` command now isolates loop variables in the loop scope.
|
||||
See policy :policy:`CMP0124` for details.
|
||||
|
||||
* The :command:`list` command's ``GET``, ``INSERT``, ``SUBLIST``, and
|
||||
``REMOVE_AT`` subcommands now error with invalid (i.e., non-integer) values
|
||||
are given as any of their index arguments based on the setting of policy
|
||||
:policy:`CMP0121`.
|
||||
|
||||
* The :command:`set(CACHE)` command no longer removes a normal variable
|
||||
of the same name, if any. See policy :policy:`CMP0126`.
|
||||
|
||||
* :command:`target_link_libraries` calls referencing object libraries
|
||||
via the :genex:`TARGET_OBJECTS` generator expression now place the
|
||||
object files before all libraries on the link line, regardless of
|
||||
their specified order. See documentation on
|
||||
:ref:`Linking Object Libraries via \$\<TARGET_OBJECTS\>` for details.
|
||||
|
||||
* The :ref:`Ninja Generators` now pass source files and include directories
|
||||
to the compiler using absolute paths. This makes diagnostic messages and
|
||||
debug symbols more consistent, and matches the :ref:`Makefile Generators`.
|
||||
|
||||
* The :generator:`NMake Makefiles` generator now encodes the generated
|
||||
makefiles as UTF-8 with a BOM when using ``nmake`` from VS 9 or above.
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2010 and above now place
|
||||
per-source preprocessor definitions after target-wide preprocssor
|
||||
definitions. This makes VS consistent with the :ref:`Ninja Generators`
|
||||
and the :ref:`Makefile Generators`.
|
||||
|
||||
* The precompiled binaries provided on
|
||||
`cmake.org <https://cmake.org/download/>`_ now support
|
||||
``liblzma`` multi-threading. See the :variable:`CPACK_THREADS` and
|
||||
:variable:`CPACK_ARCHIVE_THREADS` variables.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.21.0 include the following.
|
||||
|
||||
3.21.1
|
||||
------
|
||||
|
||||
* The :generator:`Visual Studio 17 2022` generator is now based on
|
||||
"Visual Studio 2022 Preview 2". Previously it was based on "Preview 1.1".
|
||||
|
||||
3.21.2
|
||||
------
|
||||
|
||||
* ``CUDA`` targets with :prop_tgt:`CUDA_SEPARABLE_COMPILATION` enabled are now
|
||||
correctly generated in non-root directories.
|
||||
|
||||
* The :generator:`Visual Studio 17 2022` generator is now based on
|
||||
"Visual Studio 2022 Preview 3.1". Previously it was based on "Preview 2".
|
||||
|
||||
3.21.3
|
||||
------
|
||||
|
||||
* The :generator:`Visual Studio 17 2022` generator is now based on
|
||||
"Visual Studio 2022 Preview 4". Previously it was based on "Preview 3.1".
|
||||
|
||||
* The AMD ROCm Platform ``hipcc`` compiler was identifed by CMake 3.21.0
|
||||
through 3.21.2 as a distinct compiler with id ``ROCMClang``. This has
|
||||
been removed because it caused regressions. Instead:
|
||||
|
||||
* ``hipcc`` may no longer be used as a ``HIP`` compiler because it
|
||||
interferes with flags CMake needs to pass to Clang. Use Clang directly.
|
||||
|
||||
* ``hipcc`` may once again be used as a ``CXX`` compiler, and is treated as
|
||||
whatever compiler it selects underneath, as CMake 3.20 and below did.
|
||||
|
||||
3.21.4
|
||||
------
|
||||
|
||||
* The :generator:`Visual Studio 17 2022` generator is now based on the
|
||||
"Visual Studio 2022" release candidates. Previously it was based on
|
||||
preview versions.
|
||||
|
||||
3.21.5, 3.21.6, 3.21.7
|
||||
----------------------
|
||||
|
||||
These versions made no changes to documented features or interfaces.
|
||||
Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
178
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.22.rst
Normal file
178
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.22.rst
Normal file
@ -0,0 +1,178 @@
|
||||
CMake 3.22 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.21 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`cmake_host_system_information` command can now query
|
||||
`OS identification variables`_ from the :file:`/etc/os-release` file.
|
||||
|
||||
* The :command:`string(TIMESTAMP)` command now supports the ``%V``
|
||||
specifier for ISO 8601 week numbers.
|
||||
|
||||
.. _`OS identification variables`: https://www.freedesktop.org/software/systemd/man/os-release.html
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :envvar:`CMAKE_BUILD_TYPE` environment variable was added to
|
||||
provide a default value for the :variable:`CMAKE_BUILD_TYPE` variable.
|
||||
|
||||
* The :envvar:`CMAKE_CONFIGURATION_TYPES` environment variable was added to
|
||||
provide a default value for the :variable:`CMAKE_CONFIGURATION_TYPES`
|
||||
variable.
|
||||
|
||||
* The :envvar:`CMAKE_INSTALL_MODE` environment variable was added to
|
||||
tell :command:`install` rules (implemented by :command:`file(INSTALL)`)
|
||||
to install symbolic links instead of copying of files.
|
||||
|
||||
* The :variable:`CMAKE_<LANG>_LINK_WHAT_YOU_USE_FLAG` and
|
||||
:variable:`CMAKE_LINK_WHAT_YOU_USE_CHECK` variables were added to
|
||||
control the linker flag and check used by the
|
||||
:prop_tgt:`LINK_WHAT_YOU_USE` target property.
|
||||
|
||||
* The :variable:`CMAKE_REQUIRE_FIND_PACKAGE_<PackageName>` variable
|
||||
was added to turn a non-REQUIRED :command:`find_package` call into
|
||||
a REQUIRED one.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`<LANG>_EXTENSIONS` target property is now initialized to
|
||||
:variable:`CMAKE_<LANG>_EXTENSIONS_DEFAULT`, detected from the compiler.
|
||||
See :policy:`CMP0128`.
|
||||
|
||||
* The :prop_sf:`VS_SETTINGS` source file property is now supported for
|
||||
all source file types. Previously it worked only for non-built sources.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`CMakeDependentOption` module :command:`cmake_dependent_option`
|
||||
macro now supports full :ref:`Condition Syntax`.
|
||||
See policy :policy:`CMP0127`.
|
||||
|
||||
* The :module:`FetchContent` module now passes through the
|
||||
:variable:`CMAKE_TLS_VERIFY`, :variable:`CMAKE_TLS_CAINFO`,
|
||||
:variable:`CMAKE_NETRC` and :variable:`CMAKE_NETRC_FILE` variables (when
|
||||
defined) to the underlying :module:`ExternalProject` sub-build.
|
||||
Previously, those variables were silently ignored by :module:`FetchContent`.
|
||||
|
||||
* The :module:`FindBLAS` and :module:`FindLAPACK` modules gained
|
||||
a ``BLA_SIZEOF_INTEGER`` option to find a BLAS/LAPACK whose ABI
|
||||
uses a specific integer size.
|
||||
|
||||
* The :module:`FindJasper` module now provides an imported target.
|
||||
|
||||
* The :module:`FindMatlab` module now provides imported targets.
|
||||
|
||||
* The :module:`FindPkgConfig` module gained a :variable:`PKG_CONFIG_ARGN`
|
||||
variable to specify arguments to ``pkg-config`` calls.
|
||||
|
||||
* The :module:`GoogleTest` module :command:`gtest_discover_tests`
|
||||
function gained a ``TEST_FILTER`` option to filter tests using
|
||||
``--gtest_filter`` during test discovery.
|
||||
|
||||
* The :module:`UseSWIG` module, for :ref:`Visual Studio Generators`,
|
||||
can now use the ``swig`` tool to generate implicit dependencies.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* :manual:`ctest(1)` learned to recognize labels attached to a test at run time.
|
||||
Previously it was only possible to attach labels to tests at configure time
|
||||
by using the :prop_test:`LABELS` test property.
|
||||
See :ref:`Additional Test Measurements` for more information.
|
||||
|
||||
* :manual:`ctest(1)` learned to be able to modify the environment for a test
|
||||
through the :prop_test:`ENVIRONMENT_MODIFICATION` property. This is allows
|
||||
for updates to environment variables based on the environment present at
|
||||
test time.
|
||||
|
||||
* The :command:`ctest_memcheck` command now also generates a
|
||||
:file:`DynamicAnalysis-Test.xml` file which may be used to submit test
|
||||
results to CDash.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` gained the
|
||||
option to set :variable:`CPACK_DEBIAN_COMPRESSION_TYPE` to ``zstd``,
|
||||
which enables Zstandard compression for deb packages.
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` gained a new
|
||||
:variable:`CPACK_NSIS_IGNORE_LICENSE_PAGE` variable to suppress
|
||||
the license page in the installer.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` gained the
|
||||
:variable:`CPACK_RPM_REQUIRES_EXCLUDE_FROM` option to avoid scanning
|
||||
specific paths for dependencies.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The :generator:`Visual Studio 10 2010` generator is now deprecated
|
||||
and will be removed in a future version of CMake.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality now
|
||||
correctly disables or enables compiler extensions when no standard level is
|
||||
specified and avoids unnecessarily adding language standard flags if the
|
||||
requested settings match the compiler's defaults. See :policy:`CMP0128`.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
now ignores features for languages that are not enabled.
|
||||
|
||||
* The :ref:`Ninja Generators` now implement the ``edit_cache`` target
|
||||
using :manual:`ccmake(1)` if available.
|
||||
|
||||
* The :generator:`Ninja` and :generator:`NMake Makefiles` generators
|
||||
now use the MSVC ``-external:I`` flag for system includes.
|
||||
This became available as of VS 16.10 (toolchain version 14.29.30037).
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` now requires NSIS 3.03 or later.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.22.0 include the following.
|
||||
|
||||
3.22.1
|
||||
------
|
||||
|
||||
* This version made no changes to documented features or interfaces.
|
||||
Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
||||
|
||||
3.22.2
|
||||
------
|
||||
|
||||
* The ``OLD`` behavior of :policy:`CMP0128` was fixed to add flags even when
|
||||
the specified standard matches the compiler default.
|
||||
|
||||
3.22.3
|
||||
------
|
||||
|
||||
* The :command:`while` command again ignores errors in condition evaluation
|
||||
as CMake 3.21 and below did. This bug was fixed in 3.22.0, but exposed
|
||||
errors in existing projects. The fix has been reverted to restore
|
||||
compatibility. The fix may be restored in a future version of CMake
|
||||
via a policy.
|
||||
|
||||
3.22.4, 3.22.5, 3.22.6
|
||||
----------------------
|
||||
|
||||
* These versions made no changes to documented features or interfaces.
|
||||
Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
321
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.23.rst
Normal file
321
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.23.rst
Normal file
@ -0,0 +1,321 @@
|
||||
CMake 3.23 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.22 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Presets
|
||||
-------
|
||||
|
||||
* :manual:`cmake-presets(7)` files now support schema version ``4``.
|
||||
|
||||
* :manual:`cmake-presets(7)` files now have an optional ``include`` field,
|
||||
which allows the files to include other files.
|
||||
|
||||
* :manual:`cmake-presets(7)` files now support a ``${fileDir}`` macro, which
|
||||
contains the directory containing the preset file.
|
||||
|
||||
* :manual:`cmake-presets(7)` gained support for specifying the
|
||||
``resolvePackageReferences`` command line option in a build preset to control
|
||||
restoration behavior of package references from external package managers.
|
||||
Currently this is only supported by the Visual Studio generator to support
|
||||
restoring packages from NuGet. Other generators ignore this option.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2019 and above learned to
|
||||
support .NET SDK-style project files (``.csproj``) for C# projects.
|
||||
See the :prop_tgt:`DOTNET_SDK` target property and corresponding
|
||||
:variable:`CMAKE_DOTNET_SDK` variable. :command:`add_custom_command`
|
||||
is not yet supported in .NET SDK-style projects.
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2017 and above learned to
|
||||
use portable instances of Visual Studio not known to the VS installer.
|
||||
See the :variable:`CMAKE_GENERATOR_INSTANCE` variable.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* The :manual:`cmake(1)` :option:`--build <cmake --build>` command, when used with
|
||||
:ref:`Visual Studio Generators` on projects that set the
|
||||
:prop_tgt:`VS_PACKAGE_REFERENCES` target property, now automatically
|
||||
restores package references from NuGet. The cache variable
|
||||
:variable:`CMAKE_VS_NUGET_PACKAGE_RESTORE` may be set to toggle this behavior
|
||||
in a build tree. Use the
|
||||
:option:`--resolve-package-references <cmake--build --resolve-package-references>`
|
||||
command-line option to control the behavior on one invocation.
|
||||
|
||||
* The :manual:`cmake(1)` command line tool gained a
|
||||
:option:`--debug-find-pkg <cmake --debug-find-pkg>`
|
||||
option to enable debug messages under specific :command:`find_package`
|
||||
calls.
|
||||
|
||||
* The :manual:`cmake(1)` command line tool gained a
|
||||
:option:`--debug-find-var <cmake --debug-find-var>`
|
||||
option to enable debug messages for ``find_*`` calls that use specific
|
||||
result variables.
|
||||
|
||||
Compilers
|
||||
---------
|
||||
|
||||
* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
|
||||
compiler id ``IBMClang``.
|
||||
|
||||
* The MCST LCC compiler is now supported with compiler id ``LCC``.
|
||||
See policy :policy:`CMP0129`.
|
||||
|
||||
File-Based API
|
||||
--------------
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field
|
||||
has been updated to ``2.4``.
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``directory``
|
||||
object ``installers`` field gained a new ``fileSet`` installer type.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`define_property` command gained a new
|
||||
``INITIALIZE_FROM_VARIABLE`` option to cause a target property to be
|
||||
initialized from a variable when a target is created.
|
||||
|
||||
* The :command:`install(TARGETS)` command gained a new ``FILE_SET`` argument,
|
||||
which can be used to install header file sets associated with a target.
|
||||
|
||||
* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` commands now
|
||||
support the ``%f`` specifier for microseconds.
|
||||
|
||||
* The :command:`target_sources` command gained a new ``FILE_SET`` mode, which
|
||||
can be used to add headers as header-only source files of a target.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :variable:`CMAKE_CUDA_ARCHITECTURES` variable and associated
|
||||
:prop_tgt:`CUDA_ARCHITECTURES` target property now support the
|
||||
``all``, and ``all-major`` values for CUDA toolkit 7.0+.
|
||||
|
||||
* The :variable:`CMAKE_IGNORE_PREFIX_PATH` and
|
||||
:variable:`CMAKE_SYSTEM_IGNORE_PREFIX_PATH` variables were added
|
||||
to tell the :command:`find_package`, :command:`find_program`,
|
||||
:command:`find_library`, :command:`find_path`, and :command:`find_file`
|
||||
commands to ignore specified prefixes.
|
||||
|
||||
* The :variable:`CMAKE_LINK_LIBRARIES_ONLY_TARGETS` variable and
|
||||
corresponding :prop_tgt:`LINK_LIBRARIES_ONLY_TARGETS` target
|
||||
property were added to optionally require that all link items
|
||||
that can be target names are actually names of existing targets.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`HEADER_SETS` and :prop_tgt:`INTERFACE_HEADER_SETS` read-only
|
||||
target properties were added to list header sets associated with a target.
|
||||
|
||||
* The :prop_tgt:`HEADER_SET` and :prop_tgt:`HEADER_SET_<NAME>` target
|
||||
properties were added to list files in the default header set
|
||||
and named header sets, respectively.
|
||||
|
||||
* The :prop_tgt:`HEADER_DIRS` and :prop_tgt:`HEADER_DIRS_<NAME>` target
|
||||
properties were added to specify the base directories of the default
|
||||
header set and named header sets, respectively.
|
||||
|
||||
* The :prop_tgt:`IMPORTED_NO_SYSTEM` target property was added to
|
||||
specify that an :ref:`Imported Target <Imported Targets>` should
|
||||
not be treated as a system library (i.e. its include directories
|
||||
are not automatically ``SYSTEM``).
|
||||
|
||||
* The :prop_tgt:`XCODE_EMBED_PLUGINS <XCODE_EMBED_<type>>` target property
|
||||
was added to tell the :generator:`Xcode` generator what targets to put in
|
||||
the ``Embed PlugIns`` build phase.
|
||||
|
||||
* The :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE` target property
|
||||
and supporting :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE`
|
||||
variable were added to tell the :generator:`Xcode` generator to enable
|
||||
specifying the Xcode scheme option property ``GPU Frame Capture``.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`CheckPIESupported` module now supports the ``OBJC``,
|
||||
``OBJCXX``, ``CUDA``, and ``HIP`` languages. It also now honors
|
||||
:variable:`CMAKE_SYSROOT` and :variable:`CMAKE_OSX_SYSROOT`.
|
||||
|
||||
* The :module:`ExternalProject` module's :command:`ExternalProject_Add`
|
||||
command gained support for a ``USES_TERMINAL_PATCH`` option to give
|
||||
the patch step exclusive terminal access.
|
||||
|
||||
* The :module:`FindCUDAToolkit` module now provides a target for
|
||||
``libcufft_static_nocallback``, if found.
|
||||
|
||||
* The :module:`FindGLUT` module now provides the ``GLUT_INCLUDE_DIRS``
|
||||
result variable to conform with naming conventions documented in the
|
||||
:manual:`cmake-developer(7)` manual. This supersedes the legacy
|
||||
``GLUT_INCLUDE_DIR`` variable.
|
||||
|
||||
* The :module:`FindGTest` module now provides a target for GMock, if found.
|
||||
|
||||
* The :module:`FindVulkan` module now provides a ``Vulkan_VERSION`` result
|
||||
variable reporting the version number.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* :manual:`ctest(1)` gained a new :variable:`CTEST_SUBMIT_INACTIVITY_TIMEOUT`
|
||||
variable, which can be used to specify a timeout for submission inactivity.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack productbuild Generator` gained the new
|
||||
:variable:`CPACK_PRODUCTBUILD_DOMAINS`,
|
||||
:variable:`CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE`,
|
||||
:variable:`CPACK_PRODUCTBUILD_DOMAINS_USER`, and
|
||||
:variable:`CPACK_PRODUCTBUILD_DOMAINS_ROOT` variables for
|
||||
adding the domains element to the Distribution XML. With these variables,
|
||||
it is now possible to install products to the user's home directory
|
||||
without requiring administrative privileges.
|
||||
|
||||
* The :cpack_gen:`CPack productbuild Generator` gained a new variable,
|
||||
:variable:`CPACK_PRODUCTBUILD_IDENTIFIER`, used to customize the unique
|
||||
product identifier associated with the product.
|
||||
|
||||
* The ``CPack.distribution.dist.in`` template used by the
|
||||
:cpack_gen:`CPack productbuild Generator` and
|
||||
CPack ``PackageMaker`` generator was updated to use a new
|
||||
``CPACK_APPLE_PKG_INSTALLER_CONTENT`` variable for its main content.
|
||||
This replaced the previously undocumented and now deprecated
|
||||
``CPACK_PACKAGEMAKER_CHOICES`` variable.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained the new
|
||||
:variable:`CPACK_IFW_ARCHIVE_FORMAT` and
|
||||
:variable:`CPACK_IFW_ARCHIVE_COMPRESSION` variables for setting the
|
||||
format used when packaging new component data archives, and choosing
|
||||
the compression level used.
|
||||
These features are available for QtIFW 4.2 and newer.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained new
|
||||
:variable:`CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE` variable to
|
||||
prevent the user from passing any consumer command to the installer, like
|
||||
``install``, ``update``, and ``remove``.
|
||||
This feature is available for QtIFW 4.0 and newer.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained the new
|
||||
:variable:`CPACK_IFW_PACKAGE_PRODUCT_IMAGES` variable for adding a
|
||||
list of images to be shown on the ``PerformInstallationPage``.
|
||||
This feature is available for QtIFW 4.0 and newer.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained the new
|
||||
:variable:`CPACK_IFW_PACKAGE_RUN_PROGRAM`,
|
||||
:variable:`CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS`, and
|
||||
:variable:`CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION` variables for
|
||||
executing a command after the installer is done if the user accepts
|
||||
the action. This feature is available for QtIFW 4.0 and newer.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained the new
|
||||
:variable:`CPACK_IFW_PACKAGE_SIGNING_IDENTITY` variable for specifying a
|
||||
code signing identity to be used for signing the generated app bundle.
|
||||
This feature is available on macOS only, and for QtIFW 3.0 and newer.
|
||||
|
||||
* The :cpack_gen:`CPack WIX Generator` gained a new variable,
|
||||
:variable:`CPACK_WIX_SKIP_WIX_UI_EXTENSION`, to skip the inclusion
|
||||
of WixUIExtensions.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* :manual:`cmake(1)` now warns when multiple source paths are specified,
|
||||
as in ``cmake -S src1 src2``. This has never been officially documented
|
||||
or supported, but older versions accidentally accepted multiple source
|
||||
paths and used the last path specified. Update scripts to avoid
|
||||
passing multiple source path arguments.
|
||||
|
||||
* The :manual:`cpack(1)` undocumented ``OSXX11`` generator has been removed.
|
||||
|
||||
* The previously undocumented ``CPACK_PACKAGEMAKER_CHOICES`` variable used in
|
||||
the ``CPack.distribution.dist.in`` template has been replaced by a new
|
||||
``CPACK_APPLE_PKG_INSTALLER_CONTENT`` variable. This only affects projects
|
||||
that were providing their own custom ``CPack.distribution.dist.in`` template
|
||||
file, but still relied on ``CPACK_PACKAGEMAKER_CHOICES`` being set. Those
|
||||
custom template files should be updated to use
|
||||
``CPACK_APPLE_PKG_INSTALLER_CONTENT`` instead, or to fully define all the
|
||||
template file's contents without relying on substitution of either variable.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The :cpack_gen:`CPack DragNDrop Generator` no longer attaches
|
||||
:variable:`CPACK_RESOURCE_FILE_LICENSE` as the license agreement in
|
||||
the generated ``.dmg`` unless explicitly activated by a
|
||||
:variable:`CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE` option.
|
||||
In CMake projects, the :module:`CPack` module enables the option
|
||||
by default for compatibility.
|
||||
|
||||
* ``CUDA`` targets may now enable both :prop_tgt:`CUDA_SEPARABLE_COMPILATION`
|
||||
and :prop_tgt:`CUDA_PTX_COMPILATION`.
|
||||
|
||||
* ``CUDA`` compiler detection now:
|
||||
|
||||
* issues an error in all cases when it's unable to compute the default
|
||||
architecture(s) if required (see :policy:`CMP0104`),
|
||||
|
||||
* handles ``OFF`` for :variable:`CMAKE_CUDA_ARCHITECTURES` on Clang,
|
||||
|
||||
* supports the theoretical case of multiple default architectures, and
|
||||
|
||||
* tries to detect invalid architectures and issue an error.
|
||||
|
||||
* ``CUDA`` with Clang now implements policy :policy:`CMP0105` and
|
||||
the :genex:`$<DEVICE_LINK:...>` and :genex:`$<HOST_LINK:...>`
|
||||
generator expressions.
|
||||
|
||||
* The :command:`define_property` command's ``BRIEF_DOCS`` and ``FULL_DOCS``
|
||||
arguments are now optional.
|
||||
|
||||
* :manual:`ccmake(1)` may now be enabled on Windows when building
|
||||
CMake from source. This is experimental, and so is not included
|
||||
in official distributions.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.23.0 include the following.
|
||||
|
||||
3.23.1
|
||||
------
|
||||
|
||||
* The :command:`target_sources` ``FILE_SET`` feature added in CMake 3.23.0
|
||||
does not yet place header files properly in Apple :prop_tgt:`FRAMEWORK`
|
||||
targets. Pending further work in a future version of CMake, it is now
|
||||
an error to add a ``FILE_SET`` of type ``HEADERS`` to such targets on
|
||||
Apple platforms.
|
||||
|
||||
* The :prop_tgt:`HEADER_SETS` and :prop_tgt:`INTERFACE_HEADER_SETS` target
|
||||
properties added in CMake 3.23.0 are now read-only records of the header
|
||||
sets created by the :command:`target_sources` command.
|
||||
|
||||
3.23.2
|
||||
------
|
||||
|
||||
* The ``CPACK_PACKAGEMAKER_CHOICES`` variable used in the
|
||||
``CPack.distribution.dist.in`` template file was replaced by a new
|
||||
``CPACK_APPLE_PKG_INSTALLER_CONTENT`` variable in CMake 3.23.0.
|
||||
This broke projects that provided their own template file but still
|
||||
expected the ``CPACK_PACKAGEMAKER_CHOICES`` variable to be defined.
|
||||
The old ``CPACK_PACKAGEMAKER_CHOICES`` variable is now also set to the
|
||||
same content as it was before, but it is formally deprecated.
|
||||
|
||||
3.23.3, 3.23.4, 3.23.5
|
||||
----------------------
|
||||
|
||||
* These versions made no changes to documented features or interfaces.
|
||||
Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
389
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.24.rst
Normal file
389
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.24.rst
Normal file
@ -0,0 +1,389 @@
|
||||
CMake 3.24 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.23 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Presets
|
||||
-------
|
||||
|
||||
* :manual:`cmake-presets(7)` files now support schema version ``5``.
|
||||
|
||||
* :manual:`cmake-presets(7)` files now support a ``${pathListSep}`` macro,
|
||||
which expands to ``:`` or ``;`` based on the platform.
|
||||
|
||||
* :manual:`cmake-presets(7)` files gained support for specifying a
|
||||
``testOutputTruncation`` field in test presets, which specifies the
|
||||
truncation mode once the maximum test output size has been reached.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :generator:`Green Hills MULTI` generator now generates build
|
||||
rules to re-run CMake if any CMake files are updated.
|
||||
|
||||
* The :ref:`Visual Studio Generators` now support ``SYSTEM`` headers
|
||||
when using VS 2019 Update 11 or later.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* :manual:`cmake(1)` gained the :option:`--fresh <cmake --fresh>` command-line
|
||||
option to remove any existing ``CMakeCache.txt`` file and associated ``CMakeFiles/``
|
||||
directory, when configuring a build tree, thus starting a new configuration
|
||||
as if the build tree were freshly created.
|
||||
|
||||
* :manual:`cmake(1)` gained the
|
||||
:option:`--compile-no-warning-as-error <cmake --compile-no-warning-as-error>`
|
||||
command-line option which causes the effects of the
|
||||
:prop_tgt:`COMPILE_WARNING_AS_ERROR` target property and
|
||||
:variable:`CMAKE_COMPILE_WARNING_AS_ERROR` variable to be ignored.
|
||||
|
||||
* The :manual:`cmake(1)` :option:`--trace=json-v1 <cmake --trace>` trace
|
||||
format gained fields ``global_frame`` and ``line_end``.
|
||||
|
||||
* The :manual:`cmake(1)` :option:`-E <cmake -E>` commands :option:`cat <cmake-E cat>`
|
||||
and :option:`env <cmake-E env>` learned to respect a double dash
|
||||
(:option:`-- <cmake-E_env -->`) argument that acts as a delimiter indicating
|
||||
the end of options. Any following arguments are treated as operands/positional
|
||||
arguments, even if they begin with a dash ``-`` character.
|
||||
|
||||
* The :manual:`cmake(1)` :option:`-E tar <cmake-E tar>` command gained the
|
||||
:option:`--touch <cmake-E_tar --touch>` option
|
||||
to keep the current local timestamp instead of extracting file timestamps
|
||||
from the archive.
|
||||
|
||||
Compilers
|
||||
---------
|
||||
|
||||
* LLVM's `flang`_ Fortran compiler is now supported on some platforms,
|
||||
with compiler id ``LLVMFlang``.
|
||||
|
||||
.. _`flang`: https://github.com/llvm/llvm-project/tree/main/flang
|
||||
|
||||
* ADSP compiler support (SHARC and Blackfin) now covers both CCES and
|
||||
VDSP++ installations, with required configuration now done in the
|
||||
compiler module itself rather than the ``Generic-ADSP`` platform module.
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* A dedicated ``ADSP`` platform has been added
|
||||
to replace the existing ``Generic-ADSP`` implementation.
|
||||
This features automatic detection of the latest CCES/VDSP++ install
|
||||
and compiler selection (``cc21k`` vs. ``ccblkfn``)
|
||||
based off of the :variable:`CMAKE_SYSTEM_PROCESSOR` variable.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`cmake_host_system_information` command, on Windows,
|
||||
gained a ``QUERY WINDOWS_REGISTRY`` mode.
|
||||
See its :ref:`Query Windows registry` section.
|
||||
|
||||
* The :command:`cmake_language` command gained a new
|
||||
``SET_DEPENDENCY_PROVIDER`` sub-command. When a dependency provider is set,
|
||||
calls to :command:`find_package` and :command:`FetchContent_MakeAvailable`
|
||||
can be redirected through a custom command, which can choose to fulfill the
|
||||
request directly, modify how the request is processed, or leave it to be
|
||||
fulfilled by the built-in implementation. See :ref:`dependency_providers`.
|
||||
|
||||
* The :command:`file(DOWNLOAD)` command gained options ``RANGE_START`` and
|
||||
``RANGE_END`` to specify a range of bytes to download. This can be
|
||||
useful for downloading parts of big binary files.
|
||||
|
||||
* The :command:`find_file`, :command:`find_path`, :command:`find_library`,
|
||||
:command:`find_program`, and :command:`find_package` commands gained the
|
||||
``NO_CMAKE_INSTALL_PREFIX`` option to control searching
|
||||
:variable:`CMAKE_INSTALL_PREFIX`.
|
||||
|
||||
* The :command:`find_file`, :command:`find_path`, :command:`find_library`,
|
||||
:command:`find_program`, and :command:`find_package` commands gained the
|
||||
ability to specify which Windows Registry views must be queried.
|
||||
|
||||
* The :command:`find_package` command gained a ``GLOBAL`` option that
|
||||
allows for the promotion of imported targets to global scope for the
|
||||
duration of the :command:`find_package` call.
|
||||
|
||||
* The :command:`if` command gained the capability to compare paths by
|
||||
using the ``PATH_EQUAL`` operator. See policy :policy:`CMP0139`.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :variable:`CMAKE_COLOR_DIAGNOSTICS` variable was added to control
|
||||
color diagnostics generated by compilers. This variable also controls
|
||||
color build system messages with :ref:`Makefile Generators`, replacing
|
||||
:variable:`CMAKE_COLOR_MAKEFILE`.
|
||||
|
||||
The :envvar:`CMAKE_COLOR_DIAGNOSTICS` environment variable was added to set
|
||||
a default value for :variable:`CMAKE_COLOR_DIAGNOSTICS`.
|
||||
|
||||
* The :variable:`CMAKE_COMPILE_WARNING_AS_ERROR` variable and corresponding
|
||||
:prop_tgt:`COMPILE_WARNING_AS_ERROR` target property were added to enable
|
||||
compilation with a compiler-specific flag to treat warnings as errors,
|
||||
such as ``-Werror``.
|
||||
|
||||
* The :variable:`CMAKE_CUDA_ARCHITECTURES` variable and associated
|
||||
:prop_tgt:`CUDA_ARCHITECTURES` target property now support the
|
||||
special ``native`` value to compile for the architectures(s)
|
||||
of the host's GPU(s).
|
||||
|
||||
* The :variable:`CMAKE_FIND_PACKAGE_TARGETS_GLOBAL` variable was added to
|
||||
toggle behavior of the :command:`find_package` command's new ``GLOBAL``
|
||||
option.
|
||||
|
||||
* The :variable:`CMAKE_FIND_USE_INSTALL_PREFIX` variable was added to toggle
|
||||
behavior of the :command:`find_file`, :command:`find_library`,
|
||||
:command:`find_path`, :command:`find_package`, and :command:`find_program`
|
||||
commands' new ``NO_CMAKE_INSTALL_PREFIX`` option.
|
||||
|
||||
* The :variable:`CMAKE_PROJECT_TOP_LEVEL_INCLUDES` variable was added to allow
|
||||
injecting custom code at the site of the first :command:`project` call,
|
||||
after the host and target platform details have been determined.
|
||||
|
||||
* The :variable:`CMAKE_TRY_COMPILE_NO_PLATFORM_VARIABLES` variable
|
||||
was added to tell the :command:`try_compile` command not to
|
||||
pass any platform variables to the test project.
|
||||
|
||||
* The :variable:`CMAKE_VERIFY_INTERFACE_HEADER_SETS` variable and
|
||||
corresponding :prop_tgt:`VERIFY_INTERFACE_HEADER_SETS` target property
|
||||
were added to enable build rules that verify all headers in header sets
|
||||
can be used on their own.
|
||||
|
||||
* The :variable:`CMAKE_VS_NO_COMPILE_BATCHING` variable and corresponding
|
||||
:prop_tgt:`VS_NO_COMPILE_BATCHING` target property were added to
|
||||
tell :ref:`Visual Studio Generators` whether to disable compiler
|
||||
parallelism and call the compiler with one source file at a time.
|
||||
|
||||
* The :variable:`CMAKE_WATCOM_RUNTIME_LIBRARY` variable and
|
||||
:prop_tgt:`WATCOM_RUNTIME_LIBRARY` target property were introduced to
|
||||
select the runtime library used by compilers targeting the Watcom ABI.
|
||||
See policy :policy:`CMP0136`.
|
||||
|
||||
* The :variable:`CMAKE_XCODE_XCCONFIG` variable and corresponding
|
||||
:prop_tgt:`XCODE_XCCONFIG` target property were added to tell
|
||||
the :generator:`Xcode` generator to handle ``xcconfig`` files.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT` and
|
||||
:prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE` target properties
|
||||
were added to express usage requirements affecting a consumer's
|
||||
direct link dependencies.
|
||||
|
||||
* The :prop_tgt:`INTERFACE_HEADER_SETS_TO_VERIFY` target property was
|
||||
added to specify which header sets should be verified by
|
||||
:prop_tgt:`VERIFY_INTERFACE_HEADER_SETS`.
|
||||
|
||||
* The :prop_tgt:`LINK_LIBRARIES` target property now supports
|
||||
the :genex:`$<LINK_ONLY:...>` generator expression.
|
||||
See policy :policy:`CMP0131`.
|
||||
|
||||
* The :prop_tgt:`VS_DOTNET_STARTUP_OBJECT` target property was added to
|
||||
tell :ref:`Visual Studio Generators` which startup class shall be used
|
||||
when the program or project is executed. This is necessary when more
|
||||
than one ``static void Main(string[])`` function signature is available
|
||||
in a managed .NET project.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`ExternalProject` module :command:`ExternalProject_Add`
|
||||
command gained a new ``DOWNLOAD_EXTRACT_TIMESTAMP`` option for
|
||||
controlling whether the timestamps of extracted contents are set to
|
||||
match those in the archive when the ``URL`` download method is used.
|
||||
Policy :policy:`CMP0135` was added to enable the option by default.
|
||||
|
||||
* The :module:`FetchContent` module and the :command:`find_package` command
|
||||
now support integration capabilities:
|
||||
|
||||
* :command:`FetchContent_MakeAvailable` can now try to satisfy a dependency
|
||||
by calling :command:`find_package` first. A new
|
||||
:variable:`FETCHCONTENT_TRY_FIND_PACKAGE_MODE` variable controls whether
|
||||
this is done by default for all dependencies, is opt-in per dependency,
|
||||
or is disabled entirely.
|
||||
|
||||
* :command:`find_package` can be re-routed to call
|
||||
:command:`FetchContent_MakeAvailable` instead. A new read-only
|
||||
:variable:`CMAKE_FIND_PACKAGE_REDIRECTS_DIR` variable points to a
|
||||
directory where config package files can be located to facilitate these
|
||||
re-routed calls.
|
||||
|
||||
* The :module:`FindJNI` module now provides imported targets.
|
||||
|
||||
* The :module:`FindMatlab` module :command:`matlab_add_mex` function
|
||||
gained a ``NO_IMPLICIT_LINK_TO_MATLAB_LIBRARIES`` option to disable
|
||||
automatic linking of MATLAB libraries.
|
||||
|
||||
* The :module:`FindVulkan` module now supports components to select which
|
||||
VulkanSDK tool and libraries to find in addition to the Vulkan SDK headers
|
||||
and library.
|
||||
|
||||
* The :module:`FindZLIB` gained a new ``ZLIB_USE_STATIC_LIBS`` variable to
|
||||
search only for static libraries.
|
||||
|
||||
Generator Expressions
|
||||
---------------------
|
||||
|
||||
* The :genex:`LINK_LIBRARY` generator expression was added to manage how
|
||||
libraries are specified during the link step.
|
||||
The :variable:`CMAKE_<LANG>_LINK_LIBRARY_USING_<FEATURE>` and
|
||||
:variable:`CMAKE_LINK_LIBRARY_USING_<FEATURE>` variables are used to define
|
||||
features usable by the :genex:`LINK_LIBRARY` generator expression.
|
||||
Moreover, the :prop_tgt:`LINK_LIBRARY_OVERRIDE` and
|
||||
:prop_tgt:`LINK_LIBRARY_OVERRIDE_<LIBRARY>` target properties are
|
||||
available to resolve incompatible features.
|
||||
|
||||
The :genex:`LINK_LIBRARY` generator expression can link frameworks in
|
||||
various ways when targeting ``Apple`` platforms.
|
||||
The following features were added:
|
||||
|
||||
* ``FRAMEWORK``
|
||||
* ``NEEDED_FRAMEWORK``
|
||||
* ``REEXPORT_FRAMEWORK``
|
||||
* ``WEAK_FRAMEWORK``
|
||||
|
||||
The :genex:`LINK_LIBRARY` generator expression can link libraries in
|
||||
various ways when targeting ``Apple`` platforms.
|
||||
The following features were added:
|
||||
|
||||
* ``NEEDED_LIBRARY``
|
||||
* ``REEXPORT_LIBRARY``
|
||||
* ``WEAK_LIBRARY``
|
||||
|
||||
The :genex:`LINK_LIBRARY` generator expression gained the feature
|
||||
``WHOLE_ARCHIVE`` to force load of all members in a static library.
|
||||
This feature is supported on the following target platforms:
|
||||
|
||||
* all ``Apple`` variants
|
||||
* ``Linux``
|
||||
* all ``BSD`` variants
|
||||
* ``SunOS``
|
||||
* ``Windows``
|
||||
* ``CYGWIN``
|
||||
* ``MSYS``
|
||||
|
||||
* The :genex:`LINK_GROUP` generator expression was added to manage the
|
||||
grouping of libraries during the link step. The
|
||||
:variable:`CMAKE_<LANG>_LINK_GROUP_USING_<FEATURE>` and
|
||||
:variable:`CMAKE_LINK_GROUP_USING_<FEATURE>` variables are used to define
|
||||
features usable with the :genex:`LINK_GROUP` generator expression.
|
||||
This release defines the ``RESCAN`` feature, which can be used to handle
|
||||
circular references among static libraries when using toolchains for
|
||||
Linux, BSD, SunOS and GNU toolchains for Windows.
|
||||
|
||||
* The :genex:`PATH` generator expression was added to manage paths.
|
||||
|
||||
* The :genex:`PATH_EQUAL` generator expression was added to manage path
|
||||
comparisons.
|
||||
|
||||
* The :genex:`TARGET_BUNDLE_DIR_NAME` generator expression
|
||||
was added to evaluate to the name of the bundle directory
|
||||
for a given bundle target.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* :manual:`ctest(1)` gained a
|
||||
:option:`--test-output-truncation <ctest --test-output-truncation>` option
|
||||
(and corresponding :variable:`CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION` variable)
|
||||
to specify the truncation mode once the maximum test output size has been
|
||||
reached. Possible values are ``tail`` (default), ``middle`` or ``head``.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack WIX Generator` gained a new variable,
|
||||
:variable:`CPACK_WIX_ARCHITECTURE`, to specify the installer architecture
|
||||
in order to support computers running Windows for ARM.
|
||||
|
||||
* CPack now supports the :variable:`CPACK_THREADS` option for ``zstd``
|
||||
compression when compiled with libarchive 3.6 or higher. It is
|
||||
supported by official CMake binaries available on `cmake.org`_.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The :module:`CPack` module no longer enables the SLA by default in the
|
||||
:cpack_gen:`CPack DragNDrop Generator`. See policy :policy:`CMP0133`
|
||||
and the :variable:`CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE` variable.
|
||||
|
||||
* The deprecated :cpack_gen:`CPack PackageMaker Generator` has been removed.
|
||||
|
||||
* The :module:`FindGLUT` module no longer provides the undocumented
|
||||
``GLUT_LIBRARY`` and ``GLUT_INCLUDE_PATH`` result variables.
|
||||
|
||||
* The :module:`FindVulkan` module no longer silently ignores unknown
|
||||
components requested by a ``find_package(Vulkan REQUIRED ...)`` call.
|
||||
With the addition of support for components, requests for unknown
|
||||
components now produce an error.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* CMake no longer sets environment variables like :envvar:`CC`, :envvar:`CXX`,
|
||||
etc. when enabling the corresponding language during the first CMake run in
|
||||
a build directory. See policy :policy:`CMP0132`.
|
||||
|
||||
* The :module:`CheckIPOSupported` module :command:`check_ipo_supported`
|
||||
command now uses the caller's :variable:`CMAKE_<LANG>_FLAGS`
|
||||
and :variable:`CMAKE_<LANG>_FLAGS_<CONFIG>` values.
|
||||
See policy :policy:`CMP0138`.
|
||||
|
||||
* The :generator:`MSYS Makefiles` and :generator:`MinGW Makefiles`
|
||||
generators, when a compiler is not explicitly specified, now select
|
||||
the first compiler (of any name) found in directories listed by the
|
||||
``PATH`` environment variable.
|
||||
|
||||
* The :command:`try_compile` command
|
||||
:ref:`whole-project <Try Compiling Whole Projects>` signature
|
||||
now propagates platform variables. See policy :policy:`CMP0137`.
|
||||
|
||||
* The :command:`while` command now diagnoses errors during condition
|
||||
evaluation. See policy :policy:`CMP0130`.
|
||||
|
||||
* The precompiled macOS binaries provided on `cmake.org`_ no longer attach a
|
||||
SLA to the ``.dmg`` packages. This was removed because macOS 12 deprecated
|
||||
the tools used to attach ``.dmg`` resources.
|
||||
|
||||
* A precompiled Windows ``arm64`` binary is now provided on `cmake.org`_.
|
||||
|
||||
.. _`cmake.org`: https://cmake.org/download/
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.24.0 include the following.
|
||||
|
||||
3.24.1, 3.24.2
|
||||
--------------
|
||||
|
||||
* These versions made no changes to documented features or interfaces.
|
||||
Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
||||
|
||||
3.24.3
|
||||
------
|
||||
|
||||
* The ``LLVMFlang`` Fortran compiler support added in 3.24.0 has been extended:
|
||||
|
||||
* It now supports mixed-language linking between Fortran and C or CXX.
|
||||
* It now supports the GNU ABI (MinGW) on Windows, but not yet the MSVC ABI.
|
||||
|
||||
* Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
||||
|
||||
3.24.4
|
||||
------
|
||||
|
||||
* This version made no changes to documented features or interfaces.
|
||||
Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
266
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.25.rst
Normal file
266
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.25.rst
Normal file
@ -0,0 +1,266 @@
|
||||
CMake 3.25 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.24 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Presets
|
||||
-------
|
||||
|
||||
* The :manual:`cmake-presets(7)` schema version has been bumped to ``6``.
|
||||
|
||||
* The :manual:`cmake-presets(7)` format now supports a
|
||||
``packagePresets`` field to specify presets for :option:`cpack --preset`.
|
||||
|
||||
* The :manual:`cmake-presets(7)` format now supports a
|
||||
``workflowPresets`` field to specify presets for :option:`cmake --workflow`.
|
||||
|
||||
* The :manual:`cmake-presets(7)` format now supports an
|
||||
``outputJUnitFile`` field to specify JUnit output in test presets.
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of C++26, and defines a ``cxx_std_26`` meta-feature.
|
||||
C++26 compiler modes may also be specified via the :prop_tgt:`CXX_STANDARD`,
|
||||
:prop_tgt:`CUDA_STANDARD`, :prop_tgt:`HIP_STANDARD`,
|
||||
or :prop_tgt:`OBJCXX_STANDARD` target properties.
|
||||
|
||||
* ``CUDA`` language support now includes device link-time optimization when
|
||||
using ``nvcc``. The :variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` variable
|
||||
and the associated :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property
|
||||
will activate device LTO.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* A :option:`cmake --workflow --preset <cmake--workflow --preset>` mode was
|
||||
added to drive sequences of configure, build, test, and package operations
|
||||
through a single command.
|
||||
|
||||
* The :option:`cmake -E capabilities <cmake-E capabilities>` command
|
||||
gained a new ``tls`` field that tells whether or not TLS is enabled.
|
||||
|
||||
* The :option:`cmake -E env <cmake-E env>` command-line tool gained
|
||||
a ``--modify`` flag to support :prop_test:`ENVIRONMENT_MODIFICATION`
|
||||
operations.
|
||||
|
||||
* The :option:`cmake --debug-trycompile` option now prints log messages
|
||||
reporting the directory in which each try-compile check is done.
|
||||
|
||||
Compilers
|
||||
---------
|
||||
|
||||
* Support for the `Tasking compiler toolsets`_ (SmartCode, TriCore,
|
||||
Standalone: ARM, MCS, 8051) was added with compiler id ``Tasking``.
|
||||
See the :variable:`CMAKE_TASKING_TOOLSET` variable.
|
||||
|
||||
.. _Tasking compiler toolsets: https://www.tasking.com
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_subdirectory` command gained a ``SYSTEM`` option
|
||||
to enable the :prop_dir:`SYSTEM` directory property in the subdirectory.
|
||||
|
||||
* The :command:`block` and :command:`endblock` commands were added to manage
|
||||
specific scopes (policy or variable) for a contained block of commands.
|
||||
|
||||
* The :command:`cmake_language` command gained a new
|
||||
``GET_MESSAGE_LOG_LEVEL`` sub-command. It can be used to
|
||||
query the current message logging level.
|
||||
|
||||
* The :command:`find_file`, :command:`find_path`, :command:`find_library`, and
|
||||
:command:`find_program` commands gained a ``VALIDATOR`` option to specify a
|
||||
function to be called for each candidate item to validate it.
|
||||
|
||||
* The :command:`find_package` command now considers paths of
|
||||
the form ``<prefix>/<name>*/(cmake|CMake)/<name>*/`` when
|
||||
searching for package configuration files.
|
||||
|
||||
* The :command:`return` command gained a ``PROPAGATE`` option to propagate
|
||||
variables to the scope to which control returns.
|
||||
See policy :policy:`CMP0140`.
|
||||
|
||||
* The :command:`try_compile` and :command:`try_run` commands gained new
|
||||
signatures that more consistently use keyword dispatch and do not require a
|
||||
binary directory to be specified. Additionally, these signatures use a
|
||||
unique directory for each invocation, which allows multiple outputs to be
|
||||
preserved when using :option:`cmake --debug-trycompile`.
|
||||
|
||||
* The :command:`try_compile` and :command:`try_run` commands gained the
|
||||
option ``NO_CACHE`` to store results in normal variables.
|
||||
|
||||
* The :command:`try_run` command gained ``RUN_OUTPUT_STDOUT_VARIABLE``
|
||||
and ``RUN_OUTPUT_STDERR_VARIABLE`` options to capture stdout and stderr
|
||||
separately from the output of the compiled program.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :variable:`BSD` and :variable:`CMAKE_HOST_BSD` variables are now set
|
||||
to a string value when the target or host system is BSD, respectively.
|
||||
|
||||
* The :variable:`LINUX` and :variable:`CMAKE_HOST_LINUX` variables are
|
||||
now set to true when the target or host system is Linux, respectively.
|
||||
|
||||
* The :variable:`CMAKE_MSVC_DEBUG_INFORMATION_FORMAT` variable and
|
||||
:prop_tgt:`MSVC_DEBUG_INFORMATION_FORMAT` target property were introduced
|
||||
to select the debug information format for compilers targeting the MSVC ABI.
|
||||
See policy :policy:`CMP0141`.
|
||||
|
||||
* The :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` variable and
|
||||
corresponding :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` target
|
||||
property were added to tell the :generator:`Xcode` generator what to put
|
||||
in the scheme's ``Metal: API Validation`` setting.
|
||||
|
||||
* The :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` variable and
|
||||
corresponding :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` target
|
||||
property were added to tell the :generator:`Xcode` generator what to put
|
||||
in the scheme's ``Metal: Shader Validation`` setting.
|
||||
|
||||
* The :variable:`CMAKE_XCODE_SCHEME_LAUNCH_MODE` variable and corresponding
|
||||
:prop_tgt:`XCODE_SCHEME_LAUNCH_MODE` target property were added to tell
|
||||
the :generator:`Xcode` generator what to put in the scheme's "Launch"
|
||||
mode setting.
|
||||
|
||||
* The :variable:`CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION` variable and
|
||||
corresponding :prop_tgt:`XCODE_SCHEME_LAUNCH_CONFIGURATION` target
|
||||
property were added to tell the :generator:`Xcode` generator what
|
||||
configuration to put in the scheme's Launch action.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property now supports
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :prop_tgt:`EXPORT_NO_SYSTEM` target property was added to
|
||||
specify that :command:`install(EXPORT)` and :command:`export`
|
||||
commands will generate na imported target with
|
||||
:prop_tgt:`SYSTEM` property ``OFF``.
|
||||
|
||||
* The :prop_tgt:`SYSTEM` target property was added to specify
|
||||
whether a target should be treated as a system library (i.e.
|
||||
its include directories are automatically ``SYSTEM`` when
|
||||
compiling consumers). If not set, the default is the previous
|
||||
behavior: on for imported targets and off for other targets.
|
||||
|
||||
* The :prop_dir:`SYSTEM` directory property was added to initialize the
|
||||
:prop_tgt:`SYSTEM` target property for targets created in that directory.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`FetchContent` module's :command:`FetchContent_Declare`
|
||||
command gained a ``SYSTEM`` option which sets the :prop_dir:`SYSTEM`
|
||||
directory property on subdirectories created by
|
||||
:command:`FetchContent_MakeAvailable`.
|
||||
|
||||
* The :module:`FindCUDAToolkit` module now provides a target for
|
||||
:ref:`nvtx3 <cuda_toolkit_nvtx3>` for CUDA 10.0+, which supersedes
|
||||
:ref:`nvToolsExt <cuda_toolkit_nvToolsExt>`. A deprecation warning
|
||||
is emitted when using ``nvToolsExt`` if the project requires CMake
|
||||
3.25 and CUDA 10.0+ is used.
|
||||
|
||||
* The :module:`FindDoxygen` module's version handling has been improved:
|
||||
|
||||
* Multiple candidate installations will now be considered, if needed,
|
||||
to satisfy version constraints. Previously, only the first one
|
||||
encountered would be considered.
|
||||
|
||||
* Version ranges are supported.
|
||||
|
||||
* Variations in the version format reported by Doxygen are now
|
||||
tolerated (e.g. a trailing git commit hash).
|
||||
|
||||
* The :module:`FindOpenAL` module now provides an imported target.
|
||||
|
||||
* The :module:`FindOpenSP` module was added to find the OpenSP library.
|
||||
|
||||
* The :module:`FindVulkan` module gained support for new components:
|
||||
|
||||
``dxc``
|
||||
DirectX Shader Compiler.
|
||||
|
||||
``volk``
|
||||
Volk open-source vulkan meta-loader.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack Archive Generator` gained a new
|
||||
:variable:`CPACK_ARCHIVE_FILE_EXTENSION` variable to control
|
||||
the package file name extension.
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` gained two new variables
|
||||
:variable:`CPACK_NSIS_EXECUTABLE_PRE_ARGUMENTS` and
|
||||
:variable:`CPACK_NSIS_EXECUTABLE_POST_ARGUMENTS`
|
||||
to provide arguments to the nsis executable invocation.
|
||||
|
||||
* The :module:`CPack` module gained the :variable:`CPACK_READELF_EXECUTABLE`,
|
||||
:variable:`CPACK_OBJCOPY_EXECUTABLE`, and
|
||||
:variable:`CPACK_OBJDUMP_EXECUTABLE` variables to control the locations
|
||||
of binutils used by :manual:`cpack(1)`.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The :prop_tgt:`IMPORTED_NO_SYSTEM` target property has been deprecated
|
||||
in favor of :prop_tgt:`SYSTEM` and :prop_tgt:`EXPORT_NO_SYSTEM`.
|
||||
|
||||
* The :generator:`Visual Studio 10 2010` generator has been removed.
|
||||
|
||||
* The :generator:`Visual Studio 11 2012` generator is now deprecated
|
||||
and will be removed in a future version of CMake.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The :envvar:`SSL_CERT_FILE` and :envvar:`SSL_CERT_DIR` environment
|
||||
variables can now be used to override where to find certificate
|
||||
authorities for TLS/SSL operations.
|
||||
|
||||
* If :prop_tgt:`<LANG>_CLANG_TIDY` includes a ``-p`` argument, the
|
||||
full compiler command line is no longer appended after ``--``.
|
||||
|
||||
* The :generator:`Xcode` generator no longer adds the per-config suffix
|
||||
``$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)`` to library search paths.
|
||||
See policy :policy:`CMP0142`.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.25.0 include the following.
|
||||
|
||||
3.25.1
|
||||
------
|
||||
|
||||
* On Windows, when targeting the MSVC ABI, the :command:`find_library`
|
||||
command no longer accepts ``.a`` file names. This behavior was added
|
||||
in CMake 3.25.0, but has been reverted due finding GNU-ABI libraries
|
||||
in cases we did not previously.
|
||||
|
||||
3.25.2
|
||||
------
|
||||
|
||||
* CUDA language level 20 (corresponding to C++20) is now supported with
|
||||
NVCC 12.0 and above.
|
||||
|
||||
* On Windows, the ``icpx`` compiler now provided by Intel oneAPI 2023.0
|
||||
and above is no longer selected because its GNU-like command-line is
|
||||
not yet supported by CMake.
|
||||
|
||||
3.25.3
|
||||
------
|
||||
|
||||
* This version made no changes to documented features or interfaces.
|
||||
Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
183
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.26.rst
Normal file
183
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.26.rst
Normal file
@ -0,0 +1,183 @@
|
||||
CMake 3.26 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.25 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
* The ``ASM_MARMASM`` language was added to support the
|
||||
Microsoft ARM assembler language.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* The :option:`cmake -E copy <cmake-E copy>` command-line tool now
|
||||
supports a ``-t`` argument.
|
||||
|
||||
* The :option:`cmake -E copy_directory_if_different
|
||||
<cmake-E copy_directory_if_different>` command-line tool was added.
|
||||
|
||||
Configure Log
|
||||
-------------
|
||||
|
||||
* CMake now writes a YAML log of configure-time checks to
|
||||
``CMakeFiles/CMakeConfigureLog.yaml`` under the top of the build tree.
|
||||
See the :manual:`cmake-configure-log(7)` manual.
|
||||
|
||||
File-Based API
|
||||
--------------
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has
|
||||
been updated to 2.5.
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object
|
||||
gained a new ``fileSets`` field and associated ``fileSetIndex``
|
||||
field to ``sources`` objects.
|
||||
|
||||
* The :manual:`cmake-file-api(7)` gained a new "configureLog" object kind
|
||||
that enables stable access to the :manual:`cmake-configure-log(7)`.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_custom_command` and :command:`add_custom_target` commands
|
||||
now support :manual:`generator expressions <cmake-generator-expressions(7)>`
|
||||
in their ``COMMENT`` option.
|
||||
|
||||
* The :command:`message` command gained a ``CONFIGURE_LOG`` mode to
|
||||
record an entry in the :manual:`cmake-configure-log(7)`.
|
||||
|
||||
* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` commands
|
||||
now support the ``%z`` and ``%Z`` specifiers for the time zone.
|
||||
|
||||
* The :command:`try_compile` and :command:`try_run` commands gained
|
||||
a ``LOG_DESCRIPTION`` option specifying text to be recorded in the
|
||||
:manual:`cmake-configure-log(7)`.
|
||||
|
||||
* The :command:`try_compile` and :command:`try_run` commands gained a
|
||||
``NO_LOG`` option to skip recording a :manual:`cmake-configure-log(7)`
|
||||
entry.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :variable:`CMAKE_<LANG>_COMPILER_FRONTEND_VARIANT` variable is now
|
||||
set for ``GNU``, ``MSVC``, and ``AppleClang`` compilers that have only
|
||||
one frontend variant.
|
||||
|
||||
* A :variable:`CMAKE_VS_VERSION_BUILD_NUMBER` variable is now set by
|
||||
:ref:`Visual Studio Generators` for VS 2017 and above to report the
|
||||
four-component Visual Studio version number.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`<LANG>_CLANG_TIDY_EXPORT_FIXES_DIR` target property was
|
||||
added to allow the ``clang-tidy`` tool to export its suggested fixes to a
|
||||
set of ``.yaml`` files. A new
|
||||
:variable:`CMAKE_<LANG>_CLANG_TIDY_EXPORT_FIXES_DIR` variable was created to
|
||||
initialize this property.
|
||||
|
||||
* The :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS <XCODE_EMBED_<type>>`
|
||||
target property was added to tell the :generator:`Xcode` generator to embed
|
||||
ExtensionKit-based extensions such as extensions using the Background
|
||||
Assets framework. Aspects of the embedding can be customized with:
|
||||
|
||||
* :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_PATH <XCODE_EMBED_<type>>`
|
||||
* :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_CODE_SIGN_ON_COPY <XCODE_EMBED_<type>_CODE_SIGN_ON_COPY>`
|
||||
* :prop_tgt:`XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_REMOVE_HEADERS_ON_COPY <XCODE_EMBED_<type>_REMOVE_HEADERS_ON_COPY>`
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`ExternalProject` module's :command:`ExternalProject_Add` command
|
||||
gained an ``INSTALL_BYPRODUCTS`` option to specify files generated by the
|
||||
``install`` step.
|
||||
|
||||
* The :module:`FindCUDAToolkit` module:
|
||||
|
||||
* gained support for the ``sbsa-linux`` cross compilation target, and
|
||||
|
||||
* now provides an imported target for ``nvrtc_static``, if found.
|
||||
|
||||
* The :module:`FindImageMagick` module now provides imported targets.
|
||||
|
||||
* The :module:`FindPython3` and :module:`FindPython` modules gained
|
||||
support for the `Stable Application Binary Interface`_.
|
||||
|
||||
* The :module:`UseSWIG` module gained support for the ``perl5`` language.
|
||||
|
||||
.. _`Stable Application Binary Interface`: https://docs.python.org/3/c-api/stable.html
|
||||
|
||||
Generator Expressions
|
||||
---------------------
|
||||
|
||||
* The :genex:`$<BUILD_LOCAL_INTERFACE:...>` generator expression was added to
|
||||
prevent usage requirements from being exported to dependent projects.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :envvar:`CTEST_NO_TESTS_ACTION` environment variable was added to
|
||||
provide a default value for the
|
||||
:option:`--no-tests=\<action\> <ctest --no-tests>` command line
|
||||
argument of :manual:`ctest(1)`.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The ``CMakeFiles/CMakeOutput.log`` and ``CMakeFiles/CMakeError.log``
|
||||
files are no longer populated by CMake's built-in modules.
|
||||
:manual:`cmake(1)` no longer suggests looking at them after a
|
||||
``CMake Error`` occurs. Information previously logged to those
|
||||
files is instead logged to the :manual:`cmake-configure-log(7)`.
|
||||
|
||||
* On CYGWIN, the undocumented ``CMAKE_LEGACY_CYGWIN_WIN32`` mode for
|
||||
compatibility with CMake versions older than 2.8.4 has been removed.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* :ref:`Language Standard Flags`, such as ``-std=c++11``, when generated due
|
||||
to :command:`target_compile_features` or :variable:`CMAKE_<LANG>_STANDARD`,
|
||||
are now placed before flags added by :command:`target_compile_options`,
|
||||
rather than after them.
|
||||
|
||||
* For all ``COMPILE_DEFINITIONS`` properties, any leading ``-D`` on an item
|
||||
is removed whether or not it was specified by a generator expression.
|
||||
|
||||
* The ``compile_commands.json`` database enabled by
|
||||
:variable:`CMAKE_EXPORT_COMPILE_COMMANDS` now provides the ``output``
|
||||
field in the compile commands objects. This allows multi-config
|
||||
generators, such as the :generator:`Ninja Multi-Config` generator,
|
||||
to provide the compile commands for all configurations.
|
||||
|
||||
* The :prop_gbl:`USE_FOLDERS` global property is treated as ``ON`` by default.
|
||||
See policy :policy:`CMP0143`.
|
||||
|
||||
* The top-level :command:`project` call will now emit an author warning if the
|
||||
documented command order in relation to :command:`cmake_minimum_required` is
|
||||
not respected.
|
||||
|
||||
* The :option:`cmake --trace` option now follows :command:`try_compile` and
|
||||
:command:`try_run` invocations.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.26.0 include the following.
|
||||
|
||||
3.26.1, 3.26.2, 3.26.3, 3.26.4, 3.26.5
|
||||
--------------------------------------
|
||||
|
||||
* These versions made no changes to documented features or interfaces.
|
||||
Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
293
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.27.rst
Normal file
293
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.27.rst
Normal file
@ -0,0 +1,293 @@
|
||||
CMake 3.27 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.26 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Debugger
|
||||
--------
|
||||
|
||||
* :manual:`cmake(1)` now supports interactive debugging of the CMake language.
|
||||
See the :option:`--debugger <cmake --debugger>` option.
|
||||
|
||||
Presets
|
||||
-------
|
||||
|
||||
* :manual:`cmake-presets(7)` files now support schema version ``7``.
|
||||
|
||||
* :manual:`cmake-presets(7)` now supports ``$penv{}`` macro expansion
|
||||
in ``include`` fields.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :ref:`Makefile <Makefile Generators>` and :ref:`Ninja <Ninja Generators>`
|
||||
generators now support using the ``--dependency-file`` linker flag,
|
||||
added by GNU Binutils 2.35 and LLVM's LLD 12.0.0, so that files read by the
|
||||
linker will cause a relink if they change (typically modified timestamps).
|
||||
See the :variable:`CMAKE_LINK_DEPENDS_USE_LINKER` variable.
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 14 (2015) and above learned to
|
||||
select the Windows SDK version explicitly using a ``version=`` field
|
||||
in the :variable:`CMAKE_GENERATOR_PLATFORM` variable.
|
||||
See :ref:`Visual Studio Platform Selection`.
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
* The ``CXX`` language now treats source file extensions
|
||||
``.ccm``, ``.cxxm``, and ``.c++m`` as C++.
|
||||
|
||||
File-Based API
|
||||
--------------
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has
|
||||
been updated to 2.6.
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object gained
|
||||
a new "frameworks" field in the "compileGroups" objects.
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* Apple text-based stubs (i.e. ``.tbd`` files) may now be created for shared
|
||||
libraries on macOS. See the :prop_tgt:`ENABLE_EXPORTS` property.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_custom_command` command gained a new
|
||||
``DEPENDS_EXPLICIT_ONLY`` option to tell the :ref:`Ninja Generators`
|
||||
not to add any dependencies implied by the target to which it is
|
||||
attached. The :variable:`CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY`
|
||||
variable was added to enable ``DEPENDS_EXPLICIT_ONLY`` on all calls to
|
||||
:command:`add_custom_command` command.
|
||||
|
||||
* The :command:`cmake_file_api` command was added for projects to add
|
||||
:manual:`CMake file API <cmake-file-api(7)>` queries for the current
|
||||
CMake run.
|
||||
|
||||
* The :command:`find_package` command now searches prefixes specified by
|
||||
upper-case :variable:`<PACKAGENAME>_ROOT` CMake variables and upper-case
|
||||
:envvar:`<PACKAGENAME>_ROOT` environment variables.
|
||||
See policy :policy:`CMP0144`.
|
||||
|
||||
* The :command:`install(CODE)` and :command:`install(SCRIPT)` commands
|
||||
now support the :genex:`$<INSTALL_PREFIX>` generator expression.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :variable:`CMAKE_DLL_NAME_WITH_SOVERSION` variable and associated
|
||||
:prop_tgt:`DLL_NAME_WITH_SOVERSION` target property were added to
|
||||
optionally append the :prop_tgt:`SOVERSION` to the filename of the
|
||||
``.dll`` part of a shared library on Windows.
|
||||
|
||||
* Variables :variable:`CMAKE_VS_DEBUGGER_COMMAND`,
|
||||
:variable:`CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS`,
|
||||
:variable:`CMAKE_VS_DEBUGGER_ENVIRONMENT`, and
|
||||
:variable:`CMAKE_VS_DEBUGGER_WORKING_DIRECTORY` were added to initialize
|
||||
corresponding target properties.
|
||||
|
||||
* The :variable:`CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION` variable
|
||||
was added to initialize the :prop_tgt:`VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION`
|
||||
target property on all targets when they are created.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* A :prop_tgt:`CUDA_CUBIN_COMPILATION` target property was added to
|
||||
:ref:`Object Libraries` to support compiling to ``.cubin`` files
|
||||
instead of host object files. Currently only supported with NVIDIA.
|
||||
|
||||
* A :prop_tgt:`CUDA_FATBIN_COMPILATION` target property was added to
|
||||
:ref:`Object Libraries` to support compiling to ``.fatbin`` files
|
||||
instead of host object files. Currently only supported with NVIDIA.
|
||||
|
||||
* A :prop_tgt:`CUDA_OPTIX_COMPILATION` target property was added to
|
||||
:ref:`Object Libraries` to support compiling to ``.optixir`` files
|
||||
instead of host object files. Currently only supported with NVIDIA.
|
||||
|
||||
* The :prop_tgt:`<LANG>_CLANG_TIDY`, :prop_tgt:`<LANG>_CPPCHECK`,
|
||||
:prop_tgt:`<LANG>_CPPLINT`, and :prop_tgt:`<LANG>_INCLUDE_WHAT_YOU_USE`,
|
||||
target properties now support
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :prop_tgt:`<LANG>_LINKER_LAUNCHER` target property now supports
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :prop_sf:`SKIP_LINTING` source file property was added to suppress
|
||||
target-wide code checks on specific sources.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`FindCUDAToolkit` module now provides an imported target for
|
||||
``cudla``, and imported targets for CUPTI's ``nvperf`` and ``pcsampling``
|
||||
components.
|
||||
|
||||
* The :module:`FindDoxygen` module's :command:`doxygen_add_docs` command gained
|
||||
a ``CONFIG_FILE`` option to specify a custom doxygen configuration file.
|
||||
|
||||
* The :module:`FindOpenGL` module gained support for components
|
||||
``GLES2`` and ``GLES3``.
|
||||
|
||||
* The :module:`FindwxWidgets` module now provides an imported target.
|
||||
|
||||
Generator Expressions
|
||||
---------------------
|
||||
|
||||
* The :genex:`COMPILE_ONLY` generator expression was added to specify
|
||||
compilation usage requirements without any linking requirements.
|
||||
|
||||
* ``$<LIST:...>`` generator expressions were added for
|
||||
:ref:`query <GenEx List Queries>`,
|
||||
:ref:`transformation <GenEx List Transformations>`, and
|
||||
:ref:`ordering <GenEx List Ordering>` operations on
|
||||
:ref:`lists <CMake Language Lists>`.
|
||||
|
||||
* ``$<PATH:...>`` generator expressions for
|
||||
:ref:`decomposition <GenEx Path Decomposition>` and
|
||||
:ref:`transformation <GenEx Path Transformations>` operations learned
|
||||
to process :ref:`lists <CMake Language Lists>` of paths element-wise.
|
||||
|
||||
* The :genex:`TARGET_IMPORT_FILE`, :genex:`TARGET_IMPORT_FILE_BASE_NAME`,
|
||||
:genex:`TARGET_IMPORT_FILE_PREFIX`, :genex:`TARGET_IMPORT_FILE_SUFFIX`,
|
||||
:genex:`TARGET_IMPORT_FILE_NAME`, and :genex:`TARGET_IMPORT_FILE_DIR`
|
||||
generator expressions were added. These expand to details about the
|
||||
linker import file for a target.
|
||||
|
||||
* The :genex:`TARGET_RUNTIME_DLL_DIRS` generator expression was added.
|
||||
It expands to a list of the directories containing DLLs in
|
||||
:genex:`TARGET_RUNTIME_DLLS`.
|
||||
|
||||
Autogen
|
||||
-------
|
||||
|
||||
* The :variable:`CMAKE_AUTOMOC_EXECUTABLE`,
|
||||
:variable:`CMAKE_AUTORCC_EXECUTABLE`, and
|
||||
:variable:`CMAKE_AUTOUIC_EXECUTABLE` variables were added to initialize the
|
||||
corresponding target properties as targets are created.
|
||||
|
||||
* The :prop_tgt:`AUTOGEN_USE_SYSTEM_INCLUDE` target property and
|
||||
corresponding :variable:`CMAKE_AUTOGEN_USE_SYSTEM_INCLUDE` variable were
|
||||
added to explicitly control whether autogen headers are
|
||||
considered system headers.
|
||||
|
||||
* The :prop_tgt:`INTERFACE_AUTOMOC_MACRO_NAMES` target property was added to
|
||||
specify macro names for ``moc`` as a transitive usage requirement.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :prop_test:`TIMEOUT_SIGNAL_NAME` and
|
||||
:prop_test:`TIMEOUT_SIGNAL_GRACE_PERIOD` test properties were added
|
||||
to specify a POSIX signal to send to a test process when its timeout
|
||||
is reached.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack Inno Setup Generator` was added to package using
|
||||
Inno Setup.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* Compatibility with versions of CMake older than 3.5 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 :ref:`Extra Generators` have been deprecated. IDEs may use the
|
||||
:manual:`cmake-file-api(7)` to view CMake-generated project build trees.
|
||||
|
||||
* The :module:`FindCUDA` module, which has been deprecated since CMake 3.10,
|
||||
has been removed by policy :policy:`CMP0146`. Port projects to CMake's
|
||||
first-class ``CUDA`` language support.
|
||||
|
||||
* The :module:`FindPythonInterp` and :module:`FindPythonLibs` modules,
|
||||
which have been deprecated since CMake 3.12, have been removed by
|
||||
policy :policy:`CMP0148`. Port projects to :module:`FindPython3`,
|
||||
:module:`FindPython2`, or :module:`FindPython`.
|
||||
|
||||
* The :module:`Dart` and :module:`FindDart` modules have been deprecated via
|
||||
policy :policy:`CMP0145`. Port projects to the :module:`CTest` module.
|
||||
|
||||
* The :generator:`Visual Studio 9 2008` generator is now deprecated
|
||||
and will be removed in a future version of CMake.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* ``cmake --build $dir --verbose`` will now print the working directory and
|
||||
command line used to perform the build.
|
||||
|
||||
* The :module:`ExternalProject` and :module:`FetchContent` modules
|
||||
now resolve relative ``GIT_REPOSITORY`` paths as relative to the
|
||||
parent project's remote, not as a relative local file system path.
|
||||
See :policy:`CMP0150`.
|
||||
|
||||
* The :module:`ExternalProject` ``configure`` step no longer re-runs on
|
||||
every build when the ``UPDATE_DISCONNECTED`` option is enabled.
|
||||
It will only re-run if details of the ``download``, ``update``,
|
||||
or ``patch`` step change.
|
||||
|
||||
* The :module:`ExternalProject` ``update`` and ``patch`` steps now always
|
||||
re-run if any of their details change, even if the ``UPDATE_DISCONNECTED``
|
||||
option is enabled. If using the ``GIT`` download method, and the ``GIT_TAG``
|
||||
is changed to a commit that is not already known locally, an error is now
|
||||
issued instead of silently using the previous ``GIT_TAG``.
|
||||
|
||||
* The :module:`FindPython`, :module:`FindPython2` and :module:`FindPython3`
|
||||
modules now support the Windows ARM64 platform.
|
||||
|
||||
* The :command:`file(GET_RUNTIME_DEPENDENCIES)` command now case-preserves
|
||||
DLL names reported on Windows. They are still converted to lowercase
|
||||
for filter matching.
|
||||
|
||||
* The :prop_tgt:`SYSTEM` target property is now honored for Apple Frameworks.
|
||||
|
||||
* :ref:`Visual Studio Generators`, for VS 15.8 (2017) and newer, now
|
||||
build custom commands in parallel. See policy :policy:`CMP0147`.
|
||||
|
||||
* :ref:`Visual Studio Generators` for VS 14 (2015) and above now prefer
|
||||
to select the latest Windows SDK version. See policy :policy:`CMP0149`.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.27.0 include the following.
|
||||
|
||||
3.27.1
|
||||
------
|
||||
|
||||
* This version made no changes to documented features or interfaces.
|
||||
Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
||||
|
||||
3.27.2
|
||||
------
|
||||
|
||||
* :ref:`Visual Studio Generators` for VS 14 (2015) and above now prefer to
|
||||
select the latest Windows SDK, as documented by policy :policy:`CMP0149`,
|
||||
when targeting any version of Windows. In CMake 3.27.[0-1] the
|
||||
preference was limited to targeting Windows 10 and above.
|
||||
|
||||
* :ref:`Visual Studio Generators` for VS 14 (2015) and above now support
|
||||
using ``version=8.1`` in the :variable:`CMAKE_GENERATOR_PLATFORM` variable
|
||||
to select the Windows 8.1 SDK. In CMake 3.27.[0-1] the ``version=`` field
|
||||
was limited to selecting Windows 10 SDKs.
|
||||
|
||||
3.27.3, 3.27.4, 3.27.5, 3.27.6, 3.27.7
|
||||
--------------------------------------
|
||||
|
||||
* These versions made no changes to documented features or interfaces.
|
||||
Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
287
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.3.rst
Normal file
287
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.3.rst
Normal file
@ -0,0 +1,287 @@
|
||||
CMake 3.3 Release Notes
|
||||
***********************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.2 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :ref:`Makefile Generators` now add ``.DELETE_ON_ERROR`` to the
|
||||
makefiles that contain the actual build rules for files on disk.
|
||||
This tells GNU make to remove rule outputs when their recipe
|
||||
modifies an output but fails.
|
||||
|
||||
* The :ref:`Visual Studio Generators` learned to support ``.xaml``
|
||||
source files and automatically associate them with corresponding
|
||||
``.h`` and ``.cpp`` sources.
|
||||
|
||||
* A new experimental :generator:`Green Hills MULTI` generator was
|
||||
added on Windows. `Green Hills MULTI`_ is an IDE for embedded
|
||||
real-time systems.
|
||||
|
||||
.. _`Green Hills MULTI`: https://www.ghs.com/products/MULTI_IDE.html
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_dependencies` command learned to allow dependencies
|
||||
to be added to :ref:`interface libraries <Interface Libraries>`.
|
||||
Dependencies added to an interface library are followed transitively
|
||||
in its place since the target itself does not build.
|
||||
|
||||
* The :command:`execute_process` command learned to support specifying
|
||||
the same file for ``OUTPUT_FILE`` and ``ERROR_FILE``.
|
||||
|
||||
* The :command:`file(GLOB)` and :command:`file(GLOB_RECURSE)` commands
|
||||
learned a new ``LIST_DIRECTORIES <bool>`` option to specify whether
|
||||
the glob result should include directories.
|
||||
|
||||
* The :command:`find_library`, :command:`find_path`, and :command:`find_file`
|
||||
commands now search in installation prefixes derived from the ``PATH``
|
||||
environment variable.
|
||||
|
||||
* The :command:`if` command learned a new ``IN_LIST`` operator that
|
||||
evaluates to true if a given element is contained in a named list.
|
||||
|
||||
* The :command:`install(EXPORT)` and :command:`export()` commands
|
||||
learned to export targets that populate the :prop_tgt:`INTERFACE_SOURCES`
|
||||
target property.
|
||||
|
||||
* The :command:`install(TARGETS)` command learned to support
|
||||
generator expressions in the ``DESTINATION`` value.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The version of some Fortran compilers is now detected and stored in the
|
||||
:variable:`CMAKE_Fortran_COMPILER_VERSION <CMAKE_<LANG>_COMPILER_VERSION>`
|
||||
variable.
|
||||
|
||||
* The :ref:`Visual Studio Generators` learned a new
|
||||
:variable:`CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD` option
|
||||
to put the ``INSTALL`` target in the default build of a
|
||||
solution (``.sln``) file.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* A :prop_tgt:`CROSSCOMPILING_EMULATOR` target property and supporting
|
||||
:variable:`CMAKE_CROSSCOMPILING_EMULATOR` variable were introduced
|
||||
to allow target platform binaries to run on the host during cross
|
||||
compiling.
|
||||
|
||||
* A :prop_tgt:`<LANG>_INCLUDE_WHAT_YOU_USE` target property and supporting
|
||||
:variable:`CMAKE_<LANG>_INCLUDE_WHAT_YOU_USE` variable were introduced
|
||||
to tell the :ref:`Makefile Generators` and the :generator:`Ninja` generator
|
||||
to run ``include-what-you-use`` along with the compiler for ``C`` and
|
||||
``CXX`` languages.
|
||||
|
||||
* The :prop_tgt:`<LANG>_VISIBILITY_PRESET` and
|
||||
:prop_tgt:`VISIBILITY_INLINES_HIDDEN` target properties now
|
||||
affect compilation in sources of all target types. See
|
||||
policy :policy:`CMP0063`.
|
||||
|
||||
* The :prop_tgt:`XCODE_ATTRIBUTE_<an-attribute>` target property learned
|
||||
to support generator expressions.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`CheckFortranCompilerFlag` module was introduced
|
||||
to check ``Fortran`` compiler flags, much like the
|
||||
:module:`CheckCCompilerFlag` module already does for ``C``.
|
||||
|
||||
* The :module:`ExternalData` module learned a new
|
||||
:variable:`ExternalData_NO_SYMLINKS` option to disable use of
|
||||
symbolic links to populate the real data files and use copies
|
||||
instead.
|
||||
|
||||
* The :module:`ExternalData` module learned a new ``RECURSE:``
|
||||
option in ``DATA{}`` references specifying directories.
|
||||
This allows an entire directory tree of associated files
|
||||
to be matched.
|
||||
|
||||
* The :module:`ExternalData` module learned a new URL template
|
||||
placeholder ``%(algo:<key>)`` to allow custom mapping from
|
||||
algorithm name to URL component through configuration of new
|
||||
:variable:`ExternalData_URL_ALGO_<algo>_<key>` variables.
|
||||
This allows more flexibility in remote URLs.
|
||||
|
||||
* The :module:`ExternalProject` module learned to replace tokens
|
||||
like ``<BINARY_DIR>`` in the ``BYPRODUCTS`` of each step.
|
||||
|
||||
* The :module:`ExternalProject` module APIs learned to support
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`
|
||||
when using ``LOG_*`` options and in CMake initial cache options.
|
||||
|
||||
* The :module:`FindBoost` module now tracks the directories containing
|
||||
libraries separately for RELEASE and DEBUG configurations.
|
||||
|
||||
* The :module:`FindCUDA` module now defaults to using the static
|
||||
CUDA runtime library if it is available. A new
|
||||
``CUDA_USE_STATIC_CUDA_RUNTIME`` option is offered to control
|
||||
this behavior.
|
||||
|
||||
* The :module:`FindMatlab` module was completely rewritten. It learned
|
||||
about versions and components and to find Matlab in a more precise and
|
||||
multiplatform way. The module now offers APIs to create mex extensions,
|
||||
documentation, and unit tests.
|
||||
|
||||
* The :module:`FindPackageHandleStandardArgs` module
|
||||
``FIND_PACKAGE_HANDLE_STANDARD_ARGS`` function now
|
||||
always populates both the ``<PackageName>_FOUND``
|
||||
and ``<UPPERCASE_NAME>_FOUND`` variables (the latter
|
||||
for backwards compatibility). The ``FOUND_VAR``
|
||||
option is now ignored except to enforce its allowed
|
||||
values.
|
||||
|
||||
* The :module:`InstallRequiredSystemLibraries` module learned a new
|
||||
``CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT`` option to specify the
|
||||
installation component.
|
||||
|
||||
Generator Expressions
|
||||
---------------------
|
||||
|
||||
* A new ``COMPILE_LANGUAGE`` generator expression was introduced to
|
||||
allow specification of compile options for target files based on the
|
||||
:prop_sf:`LANGUAGE` of each source file. Due to limitations of the
|
||||
underlying native build tools, this feature has varying support across
|
||||
generators. See the :manual:`cmake-generator-expressions(7)` manual
|
||||
for details.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :manual:`ctest(1)` tool learned a new ``--repeat-until-fail <n>``
|
||||
option to help find sporadic test failures.
|
||||
|
||||
* The :module:`CTestCoverageCollectGCOV` module learned to support
|
||||
the same ``CTEST_CUSTOM_COVERAGE_EXCLUDE`` option as the
|
||||
:command:`ctest_coverage` command.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` learned to support
|
||||
Qt Framework Installer 2.0 tools.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned a new
|
||||
:variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS`
|
||||
variable to specify per-component use of ``dpkg-shlibdeps``.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned a new
|
||||
:variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS`
|
||||
option to specify per-component dependencies.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned to package symbolic links
|
||||
more cleanly and now supports directory symlinks with recent
|
||||
``rpmbuild`` versions.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned a new
|
||||
:variable:`CPACK_RPM_ADDITIONAL_MAN_DIRS` variable to specify
|
||||
directories containing man pages for the brp-compress RPM macro.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned a new
|
||||
:variable:`CPACK_RPM_<component>_PACKAGE_ARCHITECTURE` variable
|
||||
to specify a component-specific package architecture.
|
||||
|
||||
* The CPack WIX generator learned the new
|
||||
:prop_inst:`CPACK_START_MENU_SHORTCUTS`,
|
||||
:prop_inst:`CPACK_DESKTOP_SHORTCUTS` and
|
||||
:prop_inst:`CPACK_STARTUP_SHORTCUTS` installed file properties which can
|
||||
be used to install shortcuts in the Start Menu, on the Desktop and
|
||||
in the Startup Folder respectively.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of features supported by GNU compilers on Windows, versions
|
||||
4.4 through 5.0.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` command learned a new
|
||||
``--format<format>`` option to specify the archive format to
|
||||
be written.
|
||||
|
||||
* On OS X, CMake learned to create XCTest bundles to test Frameworks
|
||||
and App Bundles within Xcode. The :module:`FindXCTest` module
|
||||
provides convenience functions to handle :prop_tgt:`XCTEST` bundles.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* On OS X the :manual:`cmake-gui(1)` no longer has the
|
||||
``Install For Command Line Use`` menu item. Instead there
|
||||
is a ``How to Install For Command Line Use`` menu item
|
||||
that shows an informational dialog box explaining how to
|
||||
make the command line tools available. For example::
|
||||
|
||||
/Applications/CMake.app/Contents/bin/cmake-gui --install
|
||||
|
||||
* The :command:`ctest_build` and :command:`build_command` commands
|
||||
no longer tell ``make`` tools to ignore errors with the ``-i`` option.
|
||||
Previously this was done for :ref:`Makefile Generators` but not others.
|
||||
See policy :policy:`CMP0061`.
|
||||
|
||||
* The :generator:`Visual Studio 10 2010` generator no longer checks
|
||||
for running VS IDEs with the project open or asks them to reload.
|
||||
This was originally done for VS 10 because it had been done for
|
||||
VS 7 through 9 to avoid prompting for every project in a solution.
|
||||
Since VS >= 10 allow the whole solution to reload at once they
|
||||
do not need CMake to help them.
|
||||
|
||||
* The :generator:`Visual Studio 7` generator (.NET 2002) is now
|
||||
deprecated and will be removed in a future version of CMake.
|
||||
|
||||
* The :generator:`Visual Studio 6` generator is now deprecated
|
||||
and will be removed in a future version of CMake.
|
||||
|
||||
* The :command:`find_package` command no longer considers project
|
||||
build trees recently configured in a :manual:`cmake-gui(1)`.
|
||||
This was previously done only on Windows and is now never done.
|
||||
The ``NO_CMAKE_BUILDS_PATH`` option is now ignored if given
|
||||
and effectively always on.
|
||||
Projects may populate the :ref:`User Package Registry` to aid
|
||||
users building multiple dependent projects one after another.
|
||||
|
||||
* The :command:`add_definitions()` command no longer causes a
|
||||
:prop_dir:`DEFINITIONS` directory property to be populated. See policy
|
||||
:policy:`CMP0059`.
|
||||
|
||||
* With Visual Studio 7, 8, and 9 generators the value of the ``$(OutDir)``
|
||||
placeholder no longer evaluates to the configuration name. Projects
|
||||
should use ``$(ConfigurationName)`` for that instead.
|
||||
|
||||
* Using the output of :command:`export()` with the :command:`install(FILES)`
|
||||
command is no longer allowed. See policy :policy:`CMP0062` for details.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The :generator:`Ninja` generator now requires that calls to the
|
||||
:command:`add_custom_command` and :command:`add_custom_target`
|
||||
commands use the ``BYPRODUCTS`` option to explicitly specify any
|
||||
files generated by the custom commands that are not listed as
|
||||
outputs (perhaps because their timestamps are allowed to be older
|
||||
than the inputs). See policy :policy:`CMP0058`.
|
||||
|
||||
* Build-time progress output of :ref:`Makefile Generators` has been improved.
|
||||
It no longer mixes progress and build rule messages during parallel builds.
|
||||
The link rule messages now have progress and are displayed as bold green
|
||||
instead of bold red (since red is often associated with an error message).
|
||||
|
||||
* The :variable:`CMAKE_CFG_INTDIR` variable value for Visual Studio
|
||||
7, 8, and 9 is now ``$(ConfigurationName)`` instead of ``$(OutDir)``.
|
||||
This should have no effect on the intended use cases of the variable.
|
||||
|
||||
* Linking to library files by a full path in an implicit linker search
|
||||
directory (e.g. ``/usr/lib/libfoo.a``) no longer asks the linker to
|
||||
search for the library (e.g. ``-lfoo``) and now links by full path.
|
||||
See policy :policy:`CMP0060`.
|
273
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.4.rst
Normal file
273
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.4.rst
Normal file
@ -0,0 +1,273 @@
|
||||
CMake 3.4 Release Notes
|
||||
***********************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.3 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :generator:`Visual Studio 14 2015` generator learned to select
|
||||
a Windows 10 SDK based on the value of the :variable:`CMAKE_SYSTEM_VERSION`
|
||||
variable and the SDKs available on the host.
|
||||
|
||||
* CMake learned rudimentary support for the Apple Swift language. When using
|
||||
the :generator:`Xcode` generator with Xcode 6.1 or higher, one may enable
|
||||
the ``Swift`` language with the :command:`enable_language` command or the
|
||||
:command:`project` command (this is an error with other generators or when
|
||||
Xcode is too old). Then one may list ``.swift`` source files in targets
|
||||
for compilation.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`find_program` command learned a ``NAMES_PER_DIR``
|
||||
option to consider all given ``NAMES`` in each directory before
|
||||
moving on to the next directory.
|
||||
|
||||
* The :command:`get_filename_component` command learned a new ``BASE_DIR``
|
||||
subcommand. This is used to specify a base directory when calculating an
|
||||
absolute path from a relative path.
|
||||
|
||||
* The :command:`if` command learned a new ``TEST`` operator that evaluates
|
||||
to true if a given test name has been defined by the :command:`add_test`
|
||||
command. See policy :policy:`CMP0064`.
|
||||
|
||||
* The :command:`install(DIRECTORY)` command ``DESTINATION`` option learned to
|
||||
support :manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :command:`install(FILES)` command ``DESTINATION`` option learned to
|
||||
support :manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :command:`string` command learned a new ``APPEND`` subcommand.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :ref:`Makefile Generators` and the :generator:`Ninja` generator
|
||||
learned to add compiler launcher tools like distcc and ccache along
|
||||
with the compiler for ``C`` and ``CXX`` languages. See the
|
||||
:variable:`CMAKE_<LANG>_COMPILER_LAUNCHER` variable and
|
||||
:prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property for details.
|
||||
|
||||
* New :variable:`CMAKE_LINK_SEARCH_START_STATIC` and
|
||||
:variable:`CMAKE_LINK_SEARCH_END_STATIC` variables were
|
||||
introduced to initialize the
|
||||
:prop_tgt:`LINK_SEARCH_START_STATIC` and
|
||||
:prop_tgt:`LINK_SEARCH_END_STATIC` target properties,
|
||||
respectively.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* :ref:`Visual Studio Generators` learned to support additional
|
||||
target properties to customize projects for NVIDIA Nsight
|
||||
Tegra Visual Studio Edition:
|
||||
|
||||
* :prop_tgt:`ANDROID_ANT_ADDITIONAL_OPTIONS`
|
||||
* :prop_tgt:`ANDROID_ARCH`
|
||||
* :prop_tgt:`ANDROID_ASSETS_DIRECTORIES`
|
||||
* :prop_tgt:`ANDROID_JAR_DEPENDENCIES`
|
||||
* :prop_tgt:`ANDROID_JAR_DIRECTORIES`
|
||||
* :prop_tgt:`ANDROID_JAVA_SOURCE_DIR`
|
||||
* :prop_tgt:`ANDROID_NATIVE_LIB_DEPENDENCIES`
|
||||
* :prop_tgt:`ANDROID_NATIVE_LIB_DIRECTORIES`
|
||||
* :prop_tgt:`ANDROID_PROCESS_MAX`
|
||||
* :prop_tgt:`ANDROID_PROGUARD`
|
||||
* :prop_tgt:`ANDROID_PROGUARD_CONFIG_PATH`
|
||||
* :prop_tgt:`ANDROID_SECURE_PROPS_PATH`
|
||||
* :prop_tgt:`ANDROID_SKIP_ANT_STEP`
|
||||
* :prop_tgt:`ANDROID_STL_TYPE`
|
||||
|
||||
* The :prop_tgt:`ARCHIVE_OUTPUT_DIRECTORY`,
|
||||
:prop_tgt:`LIBRARY_OUTPUT_DIRECTORY`, and
|
||||
:prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` target properties learned to
|
||||
support :manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :prop_tgt:`SOURCE_DIR` and :prop_tgt:`BINARY_DIR` target properties
|
||||
were introduced to allow project code to query where a target is defined.
|
||||
|
||||
* The :prop_tgt:`OUTPUT_NAME` target property and its variants learned to
|
||||
support :manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* A :prop_gbl:`TARGET_MESSAGES` global property was added to tell the
|
||||
:ref:`Makefile Generators` whether to generate commands to print output
|
||||
after each target is completed.
|
||||
|
||||
* On Windows with MS-compatible tools, CMake learned to optionally
|
||||
generate a module definition (``.def``) file for ``SHARED`` libraries.
|
||||
See the :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`ExternalProject` module :command:`ExternalProject_Add`
|
||||
function ``GIT_SUBMODULES`` option now also limits the set of
|
||||
submodules that are initialized in addition to the prior behavior
|
||||
of limiting the set of submodules that are updated.
|
||||
|
||||
* The :module:`ExternalProject` module learned new ``USES_TERMINAL``
|
||||
arguments for giving steps exclusive terminal access. This is
|
||||
useful with the :generator:`Ninja` generator to monitor CMake
|
||||
superbuild progress and prevent CPU oversubscription.
|
||||
|
||||
* The :module:`FindBISON` module ``BISON_TARGET`` macro learned a
|
||||
new ``DEFINES_FILE`` option to specify a custom output header
|
||||
to be generated.
|
||||
|
||||
* The :module:`FindHDF5` module learend a new ``HDF5_PREFER_PARALLEL``
|
||||
option allowing users to specify that a parallel HDF5 tool is
|
||||
preferred if both are available.
|
||||
|
||||
* The :module:`FindIce` module now provides imported targets.
|
||||
|
||||
* The :module:`FindJava` module learned to optionally find
|
||||
the ``idlj`` and ``jarsigner`` tools.
|
||||
|
||||
* The :module:`FindOpenSSL` module now provides imported targets.
|
||||
|
||||
* The :module:`FindOpenSSL` module learned a new ``OPENSSL_USE_STATIC_LIBS``
|
||||
option to search only for static libraries.
|
||||
|
||||
* The :module:`FindPkgConfig` learned a new :command:`pkg_get_variable`
|
||||
command which may be used to query for arbitrary variables from a package
|
||||
(such as for related tools or data and plugin install paths).
|
||||
|
||||
* The :module:`FindProtobuf` module gained a new
|
||||
:command:`protobuf_generate_python` function to generate python
|
||||
sources from ``.proto`` files.
|
||||
|
||||
* The :module:`FindTIFF` module learned to search separately for
|
||||
debug and release variants.
|
||||
|
||||
* The :module:`FindwxWidgets` module learned to support version requests.
|
||||
|
||||
* The :module:`FindXercesC` module learned to search separately for
|
||||
debug and release variants.
|
||||
|
||||
* The :module:`FindZLIB` module learned to search separately for
|
||||
debug and release variants.
|
||||
|
||||
* The :module:`GNUInstallDirs` module learned special default values
|
||||
for certain installation prefixes according to the `GNU Coding
|
||||
Standards`_ and the `Filesystem Hierarchy Standard`_.
|
||||
|
||||
* The :module:`UseJava` module ``add_jar`` function learned
|
||||
to support response files (e.g. ``@srcs.txt``) for source
|
||||
specification.
|
||||
|
||||
* The :module:`UseJava` module ``install_jar`` function learned
|
||||
new ``DESTINATION`` and ``COMPONENT`` options to specify
|
||||
the corresponding :command:`install` command options.
|
||||
|
||||
* The :module:`UseJava` module gained a new ``create_javah``
|
||||
function to create C headers from Java classes.
|
||||
|
||||
.. _`GNU Coding Standards`: https://www.gnu.org/prep/standards/html_node/Directory-Variables.html
|
||||
.. _`Filesystem Hierarchy Standard`: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
|
||||
|
||||
Generator Expressions
|
||||
---------------------
|
||||
|
||||
* A new ``$<SHELL_PATH:...>``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
has been added.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* CTest learned to optionally measure the CPU load during parallel
|
||||
testing and avoid starting tests that may cause the load to exceed
|
||||
a given threshold. See the :manual:`ctest(1)` command ``--test-load``
|
||||
option, the ``TestLoad`` setting of the :ref:`CTest Test Step`,
|
||||
the :variable:`CTEST_TEST_LOAD` variable, and the ``TEST_LOAD``
|
||||
option of the :command:`ctest_test` command.
|
||||
|
||||
* :manual:`ctest(1)` learned options
|
||||
``--test-output-size-passed`` and ``--test-output-size-failed``
|
||||
to customize the limit on test output size submitted when
|
||||
running as a :ref:`Dashboard Client`.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned to set package dependencies
|
||||
per component. See variables:
|
||||
|
||||
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS`
|
||||
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS`
|
||||
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES`
|
||||
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS`
|
||||
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES`
|
||||
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS`
|
||||
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES`
|
||||
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS`
|
||||
|
||||
* The :module:`CPack` module learned to package empty directories.
|
||||
|
||||
* The :module:`CPack` module gained a new setting, ``CPACK_VERBATIM_VARIABLES``,
|
||||
which can be used to ensure the cpack program receives the settings' values
|
||||
exactly as they were set, even if they contain CMake-special characters.
|
||||
For compatibility, it's off by default.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of features supported by GNU C compilers on Windows.
|
||||
|
||||
* CMake learned to honor ``*.manifest`` source files with MSVC tools.
|
||||
Manifest files named as sources of ``.exe`` and ``.dll`` targets
|
||||
will be merged with linker-generated manifests and embedded in the
|
||||
binary.
|
||||
|
||||
* The Concurrent Fortran 77 compiler is now supported.
|
||||
Its :variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` is ``CCur``.
|
||||
|
||||
* :manual:`cmake(1)` gained a new ``--trace-expand`` command line option
|
||||
that is like ``--trace`` but expands variable references in the output.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The :module:`CMakeExpandImportedTargets` module is now documented
|
||||
as deprecated. See module documentation for an explanation.
|
||||
|
||||
* The :variable:`CMAKE_USE_RELATIVE_PATHS` variable no longer has any
|
||||
effect. Previously it was partially implemented and unreliable.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The :module:`CheckFunctionExists`, :module:`CheckLibraryExists`,
|
||||
:module:`CheckSymbolExists`, and :module:`FindThreads` modules learned to
|
||||
work in environments where only CXX is enabled.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` now correctly excludes symlinks
|
||||
during package checksum calculation.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` no longer uses fakeroot and
|
||||
system tar program for packaging.
|
||||
|
||||
* The :module:`CPack` module no longer mangles settings with CMake-special
|
||||
characters when they're used as defaults for other settings. The macro
|
||||
``cpack_set_if_not_set``, which was responsible for this, is now deprecated.
|
||||
|
||||
* CMake no longer links executables with flags to export symbols
|
||||
unless the :prop_tgt:`ENABLE_EXPORTS` target property is set.
|
||||
See policy :policy:`CMP0065`.
|
||||
|
||||
* The ``SONAME`` field is no longer set for ``MODULE`` libraries
|
||||
created with the :command:`add_library` command. ``MODULE``
|
||||
libraries are meant for explicit dynamic loading at runtime.
|
||||
They cannot be linked so ``SONAME`` is not useful.
|
||||
|
||||
* The internal :variable:`CMAKE_<LANG>_COMPILE_OBJECT` rule variable now
|
||||
substitutes compiler include flags in a separate ``<INCLUDES>`` placeholder
|
||||
instead of the main ``<FLAGS>`` placeholder.
|
187
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.5.rst
Normal file
187
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.5.rst
Normal file
@ -0,0 +1,187 @@
|
||||
CMake 3.5 Release Notes
|
||||
***********************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.4 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
GUI
|
||||
---
|
||||
|
||||
* The :manual:`cmake-gui(1)` gained options to control warnings about
|
||||
deprecated functionality.
|
||||
|
||||
* The :manual:`cmake-gui(1)` learned an option to set the toolset
|
||||
to be used with VS IDE and Xcode generators, much like the
|
||||
existing ``-T`` option to :manual:`cmake(1)`.
|
||||
|
||||
* The :manual:`cmake-gui(1)` gained a Regular Expression Explorer which
|
||||
may be used to create and evaluate regular expressions in real-time.
|
||||
The explorer window is available via the ``Tools`` menu.
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
* The ``-Wdev`` and ``-Wno-dev`` :manual:`cmake(1)` options now also enable
|
||||
and suppress the deprecated warnings output by default.
|
||||
|
||||
* The suppression of developer warnings as errors can now be controlled with
|
||||
the new ``-Werror=dev`` and ``-Wno-error=dev`` :manual:`cmake(1)` options.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E`` command-line tools ``copy``,
|
||||
``copy_if_different``, ``copy_directory``, and ``make_directory``
|
||||
learned to support multiple input files or directories.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`cmake_parse_arguments` command is now implemented natively.
|
||||
The :module:`CMakeParseArguments` module remains as an empty placeholder
|
||||
for compatibility.
|
||||
|
||||
* The :command:`install(DIRECTORY)` command learned to support
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`
|
||||
in the list of directories.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* The :variable:`CMAKE_ERROR_DEPRECATED` variable can now be set using the
|
||||
``-Werror=deprecated`` and ``-Wno-error=deprecated`` :manual:`cmake(1)`
|
||||
options.
|
||||
|
||||
* The :variable:`CMAKE_WARN_DEPRECATED` variable can now be set using the
|
||||
``-Wdeprecated`` and ``-Wno-deprecated`` :manual:`cmake(1)` options.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_tgt:`VS_GLOBAL_<variable>` target property is now implemented
|
||||
for VS 2010 and above. Previously it worked only in VS 2008 and below.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`ExternalProject` module learned a new ``GIT_REMOTE_NAME``
|
||||
option to control the ``git clone --origin`` value.
|
||||
|
||||
* The :module:`FindBoost` module now provides imported targets
|
||||
such as ``Boost::boost`` and ``Boost::filesystem``.
|
||||
|
||||
* The :module:`FindFLEX` module ``FLEX_TARGET`` macro learned a
|
||||
new ``DEFINES_FILE`` option to specify a custom output header
|
||||
to be generated.
|
||||
|
||||
* The :module:`FindGTest` module now provides imported targets.
|
||||
|
||||
* The :module:`FindGTK2` module, when ``GTK2_USE_IMPORTED_TARGETS`` is
|
||||
enabled, now sets ``GTK2_LIBRARIES`` to contain the list of imported
|
||||
targets instead of the paths to the libraries. Moreover it now sets
|
||||
a new ``GTK2_TARGETS`` variable containing all the targets imported.
|
||||
|
||||
* The :module:`FindOpenMP` module learned to support Clang.
|
||||
|
||||
* The :module:`FindOpenSSL` module gained a new
|
||||
``OPENSSL_MSVC_STATIC_RT`` option to search for libraries using
|
||||
the MSVC static runtime.
|
||||
|
||||
* The :module:`FindPNG` module now provides imported targets.
|
||||
|
||||
* The :module:`FindTIFF` module now provides imported targets.
|
||||
|
||||
* A :module:`FindXalanC` module was introduced to find the
|
||||
Apache Xalan-C++ XSL transform processing library.
|
||||
|
||||
* The :module:`FindXercesC` module now provides imported targets.
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* Support was added for the ARM Compiler (arm.com) with compiler id ``ARMCC``.
|
||||
|
||||
* A new platform file for cross-compiling in the Cray Linux Environment to
|
||||
target compute nodes was added. See
|
||||
:ref:`Cross Compiling for the Cray Linux Environment <Cray Cross-Compile>`
|
||||
for usage details.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of features supported by Clang compilers on Windows (MinGW).
|
||||
|
||||
* When building for embedded Apple platforms like iOS CMake learned to build and
|
||||
install combined targets which contain both a device and a simulator build.
|
||||
This behavior can be enabled by setting the :prop_tgt:`IOS_INSTALL_COMBINED`
|
||||
target property.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack DragNDrop Generator` learned new variable to
|
||||
specify AppleScript file run to customize appearance of ``DragNDrop``
|
||||
installer folder, including background image setting using supplied
|
||||
PNG or multi-resolution TIFF file.
|
||||
See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and
|
||||
:variable:`CPACK_DMG_BACKGROUND_IMAGE` variables.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned to set the optional config
|
||||
file ``Source`` field using a monolithic or per-component variable.
|
||||
See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned to set Package, Section
|
||||
and Priority control fields per-component.
|
||||
See variables :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION` and
|
||||
:variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY`.
|
||||
|
||||
* The :cpack_gen:`CPack DragNDrop Generator` learned to add
|
||||
multi-lingual SLAs to a DMG which is presented to the user when they try to
|
||||
mount the DMG. See the :variable:`CPACK_DMG_SLA_LANGUAGES` and
|
||||
:variable:`CPACK_DMG_SLA_DIR` variables for details.
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` learned new variables to
|
||||
add bitmaps to the installer.
|
||||
See the :variable:`CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP`
|
||||
and :variable:`CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP` variables.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned to set Name and Group
|
||||
control fields per-component.
|
||||
See :variable:`CPACK_RPM_<component>_PACKAGE_NAME`
|
||||
and :variable:`CPACK_RPM_<component>_PACKAGE_GROUP`.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* Warnings about deprecated functionality are now enabled by default.
|
||||
They may be suppressed with ``-Wno-deprecated`` or by setting the
|
||||
:variable:`CMAKE_WARN_DEPRECATED` variable to false.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The :manual:`cmake(1)` ``-E time`` command now properly passes arguments
|
||||
with spaces or special characters through to the child process. This
|
||||
may break scripts that worked around the bug with their own extra
|
||||
quoting or escaping.
|
||||
|
||||
* The :generator:`Xcode` generator was fixed to escape backslashes in
|
||||
strings consistently with other generators. Projects that previously
|
||||
worked around the inconsistecy with an extra level of backslashes
|
||||
conditioned on the Xcode generator must be updated to remove the
|
||||
workaround for CMake 3.5 and greater.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The :generator:`Visual Studio 14 2015` generator learned to map the
|
||||
``/debug:fastlink`` linker flag to the ``.vcxproj`` file property.
|
||||
|
||||
* The :module:`FindGTK2` module now configures the ``GTK2::sigc++`` imported
|
||||
target to enable c++11 on its dependents when using sigc++ 2.5.1 or higher.
|
||||
|
||||
* The precompiled Windows binary provided on ``cmake.org`` is now a
|
||||
``.msi`` package instead of an installer executable. One may need
|
||||
to manually uninstall CMake versions lower than 3.5 before installing
|
||||
the new package.
|
318
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.6.rst
Normal file
318
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.6.rst
Normal file
@ -0,0 +1,318 @@
|
||||
CMake 3.6 Release Notes
|
||||
***********************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.5 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :generator:`Ninja` generator learned to produce phony targets
|
||||
of the form ``sub/dir/all`` to drive the build of a subdirectory.
|
||||
This is equivalent to ``cd sub/dir; make all`` with
|
||||
:ref:`Makefile Generators`.
|
||||
|
||||
* The :generator:`Ninja` generator now includes system header files in build
|
||||
dependencies to ensure correct re-builds when system packages are updated.
|
||||
|
||||
* The :generator:`Visual Studio 14 2015` generator learned to support the
|
||||
Clang/C2 toolsets, e.g. with the ``-T v140_clang_3_7`` option.
|
||||
This feature is experimental.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_custom_command` and :command:`add_custom_target` commands
|
||||
learned how to use the :prop_tgt:`CROSSCOMPILING_EMULATOR` executable
|
||||
target property.
|
||||
|
||||
* The :command:`install` command learned a new ``EXCLUDE_FROM_ALL`` option
|
||||
to leave installation rules out of the default installation.
|
||||
|
||||
* The :command:`list` command gained a ``FILTER`` sub-command to filter
|
||||
list elements by regular expression.
|
||||
|
||||
* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)`
|
||||
commands gained support for the ``%s`` placeholder. This is
|
||||
the number of seconds since the UNIX Epoch.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* A :variable:`CMAKE_DEPENDS_IN_PROJECT_ONLY` variable was introduced
|
||||
to tell :ref:`Makefile Generators` to limit dependency scanning only
|
||||
to files in the project source and build trees.
|
||||
|
||||
* A new :variable:`CMAKE_HOST_SOLARIS` variable was introduced to
|
||||
indicate when CMake is running on an Oracle Solaris host.
|
||||
|
||||
* A :variable:`CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` variable was
|
||||
added for use by toolchain files to specify system include directories
|
||||
to be appended to all compiler command lines.
|
||||
|
||||
* The :variable:`CMAKE_<LANG>_STANDARD_LIBRARIES` variable is now documented.
|
||||
It is intended for use by toolchain files to specify system libraries to be
|
||||
added to all linker command lines.
|
||||
|
||||
* A :variable:`CMAKE_NINJA_OUTPUT_PATH_PREFIX` variable was introduced
|
||||
to tell the :generator:`Ninja` generator to configure the generated
|
||||
``build.ninja`` file for use as a ``subninja``.
|
||||
|
||||
* A :variable:`CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable was
|
||||
added for use by toolchain files to specify platform-specific
|
||||
variables that must be propagated by the :command:`try_compile`
|
||||
command into test projects.
|
||||
|
||||
* A :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable was added
|
||||
to optionally tell the :command:`try_compile` command to build
|
||||
a static library instead of an executable. This is useful for
|
||||
cross-compiling toolchains that cannot link binaries without
|
||||
custom flags or scripts.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* A :prop_tgt:`DEPLOYMENT_REMOTE_DIRECTORY` target property was introduced
|
||||
to tell the :generator:`Visual Studio 9 2008` and
|
||||
:generator:`Visual Studio 8 2005` generators to generate the "remote
|
||||
directory" for WinCE project deployment and debugger settings.
|
||||
|
||||
* A :prop_tgt:`<LANG>_CLANG_TIDY` target property and supporting
|
||||
:variable:`CMAKE_<LANG>_CLANG_TIDY` variable were introduced to tell the
|
||||
:ref:`Makefile Generators` and the :generator:`Ninja` generator to run
|
||||
``clang-tidy`` along with the compiler for ``C`` and ``CXX`` languages.
|
||||
|
||||
* A :prop_test:`TIMEOUT_AFTER_MATCH` test property was introduced to
|
||||
optionally tell CTest to enforce a secondary timeout after matching
|
||||
certain output from a test.
|
||||
|
||||
* A :prop_tgt:`VS_CONFIGURATION_TYPE` target property was introduced
|
||||
to specify a custom project file type for :ref:`Visual Studio Generators`
|
||||
supporting VS 2010 and above.
|
||||
|
||||
* A :prop_dir:`VS_STARTUP_PROJECT` directory property was introduced
|
||||
to specify for :ref:`Visual Studio Generators` the default startup
|
||||
project for generated solutions (``.sln`` files).
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`CMakePushCheckState` module now pushes/pops/resets the variable
|
||||
``CMAKE_EXTRA_INCLUDE_FILE`` used in :module:`CheckTypeSize`.
|
||||
|
||||
* The :module:`ExternalProject` module leared the ``GIT_SHALLOW 1``
|
||||
option to perform a shallow clone of a Git repository.
|
||||
|
||||
* The :module:`ExternalProject` module learned to initialize Git submodules
|
||||
recursively and also to initialize new submodules on updates. Use the
|
||||
``GIT_SUBMODULES`` option to restrict which submodules are initialized and
|
||||
updated.
|
||||
|
||||
* The :module:`ExternalProject` module leared the ``DOWNLOAD_NO_EXTRACT 1``
|
||||
argument to skip extracting the file that is downloaded (e.g., for
|
||||
self-extracting shell installers or ``.msi`` files).
|
||||
|
||||
* The :module:`ExternalProject` module now uses ``TLS_VERIFY`` when fetching
|
||||
from git repositories.
|
||||
|
||||
* The :module:`FindBLAS` and :module:`FindLAPACK` modules learned to
|
||||
support `OpenBLAS <http://www.openblas.net>`__.
|
||||
|
||||
* The :module:`FindCUDA` module learned to find the ``cublas_device`` library.
|
||||
|
||||
* The :module:`FindGTest` module ``gtest_add_tests`` function now causes
|
||||
CMake to automatically re-run when test sources change so that they
|
||||
can be re-scanned.
|
||||
|
||||
* The :module:`FindLTTngUST` module was introduced to find the LTTng-UST
|
||||
library.
|
||||
|
||||
* The :module:`FindPkgConfig` module learned to optionally create imported
|
||||
targets for the libraries it has found.
|
||||
|
||||
* The :module:`FindProtobuf` module learned to provide a ``Protobuf_VERSION``
|
||||
variable and check the version number requested in a :command:`find_package`
|
||||
call.
|
||||
|
||||
* The :module:`InstallRequiredSystemLibraries` module learned a new
|
||||
``CMAKE_INSTALL_UCRT_LIBRARIES`` option to enable app-local deployment
|
||||
of the Windows Universal CRT libraries with Visual Studio 2015.
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* The Clang compiler is now supported on CYGWIN.
|
||||
|
||||
* Support was added for the Bruce C Compiler with compiler id ``Bruce``.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :command:`ctest_update` command now looks at the
|
||||
:variable:`CTEST_GIT_INIT_SUBMODULES` variable to determine whether
|
||||
submodules should be updated or not before updating.
|
||||
|
||||
* The :command:`ctest_update` command will now synchronize submodules on an
|
||||
update. Updates which add submodules or change a submodule's URL will now be
|
||||
pulled properly.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned how to handle ``$ORIGIN``
|
||||
in ``CMAKE_INSTALL_RPATH`` when :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS`
|
||||
is used for dependency auto detection.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned how to generate
|
||||
``DEBIAN/shlibs`` control file when package contains shared libraries.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned how to generate
|
||||
``DEBIAN/postinst`` and ``DEBIAN/postrm`` files if the package installs
|
||||
libraries in ldconfig-controlled locations (e.g. ``/lib/``, ``/usr/lib/``).
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned how to generate dependencies
|
||||
between Debian packages if multi-component setup is used and
|
||||
:variable:`CPACK_COMPONENT_<compName>_DEPENDS` variables are set.
|
||||
For backward compatibility this feature is disabled by default.
|
||||
See :variable:`CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS`.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned how to set custom package
|
||||
file names including how to generate properly-named Debian packages::
|
||||
|
||||
<PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
|
||||
|
||||
For backward compatibility this feature is disabled by default. See
|
||||
:variable:`CPACK_DEBIAN_FILE_NAME` and
|
||||
:variable:`CPACK_DEBIAN_<COMPONENT>_FILE_NAME`.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned how to set the package
|
||||
release number (``DebianRevisionNumber`` in package file name when
|
||||
used in combination with ``DEB-DEFAULT`` value set by
|
||||
:variable:`CPACK_DEBIAN_FILE_NAME`).
|
||||
See :variable:`CPACK_DEBIAN_PACKAGE_RELEASE`.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned how to set the package
|
||||
architecture per-component.
|
||||
See :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE`.
|
||||
|
||||
* The :cpack_gen:`CPack DragNDrop Generator` learned a new option to skip the
|
||||
``/Applications`` symlink.
|
||||
See the :variable:`CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK` variable.
|
||||
|
||||
* The :module:`CPackIFW` module gained a new
|
||||
:command:`cpack_ifw_update_repository` command to update a QtIFW-specific
|
||||
repository from a remote repository.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned how to set RPM ``dist`` tag
|
||||
as part of RPM ``Release:`` tag when enabled (mandatory on some Linux
|
||||
distributions for e.g. on Fedora).
|
||||
See :variable:`CPACK_RPM_PACKAGE_RELEASE_DIST`.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned how to set default values
|
||||
for owning user/group and file/directory permissions of package content.
|
||||
See :variable:`CPACK_RPM_DEFAULT_USER`, :variable:`CPACK_RPM_DEFAULT_GROUP`,
|
||||
:variable:`CPACK_RPM_DEFAULT_FILE_PERMISSIONS`,
|
||||
:variable:`CPACK_RPM_DEFAULT_DIR_PERMISSIONS` and their per component
|
||||
counterparts.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned how to set user defined
|
||||
package file names, how to specify that rpmbuild should decide on file
|
||||
name format as well as handling of multiple rpm packages generated by a
|
||||
single user defined spec file.
|
||||
See :variable:`CPACK_RPM_PACKAGE_NAME` and
|
||||
:variable:`CPACK_RPM_<component>_PACKAGE_NAME`.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned how to correctly handle symlinks
|
||||
that are pointing outside generated packages.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of features supported by Intel C++ compilers versions 12.1
|
||||
through 16.0 on UNIX platforms.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The :module:`CMakeForceCompiler` module and its macros are now deprecated.
|
||||
See module documentation for an explanation.
|
||||
|
||||
* The :command:`find_library`, :command:`find_path`, and :command:`find_file`
|
||||
commands no longer search in installation prefixes derived from the ``PATH``
|
||||
environment variable on non-Windows platforms. This behavior was added in
|
||||
CMake 3.3 to support Windows hosts but has proven problematic on UNIX hosts.
|
||||
Users that keep some ``<prefix>/bin`` directories in the ``PATH`` just for
|
||||
their tools do not necessarily want any supporting ``<prefix>/lib``
|
||||
directories searched. One may set the ``CMAKE_PREFIX_PATH`` environment
|
||||
variable with a :ref:`semicolon-separated list <CMake Language Lists>` of prefixes that are
|
||||
to be searched.
|
||||
|
||||
* The :generator:`Visual Studio 7 .NET 2003` generator is now
|
||||
deprecated and will be removed in a future version of CMake.
|
||||
|
||||
* The :generator:`Visual Studio 7` generator (for VS .NET 2002) has been
|
||||
removed. It had been deprecated since CMake 3.3.
|
||||
|
||||
* The :generator:`Visual Studio 6` generator has been removed.
|
||||
It had been deprecated since CMake 3.3.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The precompiled OS X binary provided on ``cmake.org`` now requires
|
||||
OS X 10.7 or newer.
|
||||
|
||||
* On Linux and FreeBSD platforms, when building CMake itself from source and
|
||||
not using a system-provided libcurl, OpenSSL is now used by default if it is
|
||||
found on the system. This enables SSL/TLS support for commands supporting
|
||||
network communication via ``https``, such as :command:`file(DOWNLOAD)`,
|
||||
:command:`file(UPLOAD)`, and :command:`ctest_submit`.
|
||||
|
||||
* The :manual:`cmake(1)` ``--build`` command-line tool now rejects multiple
|
||||
``--target`` options with an error instead of silently ignoring all but the
|
||||
last one.
|
||||
|
||||
* :prop_tgt:`AUTOMOC` now diagnoses name collisions when multiple source
|
||||
files in different directories use ``#include <moc_foo.cpp>`` with the
|
||||
same name (because the generated ``moc_foo.cpp`` files would collide).
|
||||
|
||||
* The :module:`FindBISON` module ``BISON_TARGET`` macro now supports
|
||||
special characters by passing the ``VERBATIM`` option to internal
|
||||
:command:`add_custom_command` calls. This may break clients that
|
||||
added escaping manually to work around the bug.
|
||||
|
||||
* The :module:`FindFLEX` module ``FLEX_TARGET`` macro now supports
|
||||
special characters by passing the ``VERBATIM`` option to internal
|
||||
:command:`add_custom_command` calls. This may break clients that
|
||||
added escaping manually to work around the bug.
|
||||
|
||||
* The :module:`FindProtobuf` module input and output variables were all renamed
|
||||
from ``PROTOBUF_`` to ``Protobuf_`` for consistency with other find modules.
|
||||
Input variables of the old case will be honored if provided, and output
|
||||
variables of the old case are always provided.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` now supports upper cased component
|
||||
names in per component CPackRPM specific variables.
|
||||
E.g. component named ``foo`` now expects component specific
|
||||
variable to be ``CPACK_RPM_FOO_PACKAGE_NAME`` while before
|
||||
it expected ``CPACK_RPM_foo_PACKAGE_NAME``.
|
||||
Upper cased component name part in variables is compatible
|
||||
with convention used for other CPack variables.
|
||||
For back compatibility old format of variables is still valid
|
||||
and preferred if both versions of variable are set, but the
|
||||
preferred future use is upper cased component names in variables.
|
||||
New variables that will be added to CPackRPM in later versions
|
||||
will only support upper cased component variable format.
|
||||
|
||||
* The CPack NSIS generator's configuration file template was fixed to
|
||||
quote the path to the uninstaller tool used by the
|
||||
:variable:`CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL` option.
|
||||
This avoids depending on an insecure Windows feature to run an
|
||||
uninstaller tool with a space in the path.
|
319
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.7.rst
Normal file
319
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.7.rst
Normal file
@ -0,0 +1,319 @@
|
||||
CMake 3.7 Release Notes
|
||||
***********************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.6 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* CMake now supports :ref:`Cross Compiling for Android` with simple
|
||||
toolchain files.
|
||||
|
||||
* The Clang compiler is now supported on AIX.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :generator:`Ninja` generator learned to conditionally support
|
||||
Fortran when using a ``ninja`` tool that has the necessary features.
|
||||
See generator documentation for details.
|
||||
|
||||
* The :generator:`Ninja` generator learned to produce phony targets
|
||||
of the form ``sub/dir/{test,install,package}`` to drive the build
|
||||
of a subdirectory installation, test or packaging target.
|
||||
This is equivalent to ``cd sub/dir; make {test,install,package}``
|
||||
with :ref:`Makefile Generators`.
|
||||
|
||||
* The :generator:`Visual Studio 15 2017` generator was added. This is
|
||||
experimental and based on "Visual Studio 2017 RC" because this version
|
||||
of VS has not been released.
|
||||
|
||||
* :ref:`Visual Studio Generators` for VS 2010 and above learned to
|
||||
place ``.natvis`` source files into VS project files properly.
|
||||
|
||||
* The :generator:`Xcode` generator's rudimentary Swift language support
|
||||
learned to honor a new :variable:`CMAKE_Swift_LANGUAGE_VERSION` variable
|
||||
to tell Xcode what version of Swift is used by the source.
|
||||
|
||||
* The :generator:`CodeLite` generator gained a new
|
||||
:variable:`CMAKE_CODELITE_USE_TARGETS` option
|
||||
to change project creation from projects to targets.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_custom_command` command gained a new ``DEPFILE``
|
||||
option that works with the :generator:`Ninja` generator to provide
|
||||
implicit dependency information to the build tool.
|
||||
|
||||
* The :command:`cmake_parse_arguments` command gained a new ``PARSE_ARGV``
|
||||
mode to read arguments directly from ``ARGC`` and ``ARGV#``
|
||||
variables inside a :command:`function` body.
|
||||
|
||||
* The :command:`export` command gained an ``ANDROID_MK`` option
|
||||
to generate ``Android.mk`` files referencing CMake-built
|
||||
libraries as prebuilts for the Android NDK build system.
|
||||
|
||||
* The :command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands gained
|
||||
``HTTPHEADER <HTTP-header>`` and ``USERPWD <username>:<password>`` options.
|
||||
|
||||
* The :command:`find_library` and :command:`find_package` commands learned
|
||||
to search in ``lib32/`` directories when the build targets a 32-bit
|
||||
architecture. See the :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` global
|
||||
property.
|
||||
|
||||
* The :command:`find_package` command gained the possibility of
|
||||
sorting compatible libraries by ``NAME`` or by ``NATURAL`` sorting by
|
||||
setting the two new variables :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER`
|
||||
and :variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION`.
|
||||
|
||||
* The :command:`if` command gained new boolean comparison operations
|
||||
``LESS_EQUAL``, ``GREATER_EQUAL``, ``STRLESS_EQUAL``, ``STRGREATER_EQUAL``,
|
||||
``VERSION_LESS_EQUAL``, and ``VERSION_GREATER_EQUAL``.
|
||||
|
||||
* The :command:`install` command gained an ``EXPORT_ANDROID_MK``
|
||||
subcommand to install ``Android.mk`` files referencing installed
|
||||
libraries as prebuilts for the Android NDK build system.
|
||||
|
||||
* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)`
|
||||
commands gained support for the ``%a`` and ``%b`` placeholders.
|
||||
These are the abbreviated weekday and month names.
|
||||
|
||||
* The :command:`try_compile` command source file signature now honors
|
||||
configuration-specific flags (e.g. :variable:`CMAKE_<LANG>_FLAGS_DEBUG`)
|
||||
in the generated test project. Previously only the default such flags
|
||||
for the current toolchain were used. See policy :policy:`CMP0066`.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* Variable :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER` was added to control
|
||||
the sorting mode of the :command:`find_package` command.
|
||||
|
||||
* Variable :variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION` was added to control
|
||||
the sorting direction the :command:`find_package` command.
|
||||
|
||||
* :variable:`Toolchain files <CMAKE_TOOLCHAIN_FILE>` may now set a
|
||||
:variable:`CMAKE_<LANG>_FLAGS_INIT` variable to initialize the
|
||||
:variable:`CMAKE_<LANG>_FLAGS` cache entry the first time a language is
|
||||
enabled in a build tree.
|
||||
|
||||
* :variable:`Toolchain files <CMAKE_TOOLCHAIN_FILE>` may now set
|
||||
:variable:`CMAKE_EXE_LINKER_FLAGS_INIT`,
|
||||
:variable:`CMAKE_SHARED_LINKER_FLAGS_INIT`, and
|
||||
:variable:`CMAKE_MODULE_LINKER_FLAGS_INIT` variables to initialize the
|
||||
:variable:`CMAKE_EXE_LINKER_FLAGS`,
|
||||
:variable:`CMAKE_SHARED_LINKER_FLAGS`, and
|
||||
:variable:`CMAKE_MODULE_LINKER_FLAGS` cache entries the first time
|
||||
a language is enabled in a build tree.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* On Apple platforms the :prop_tgt:`BUNDLE_EXTENSION` target property
|
||||
now also applies to Frameworks and App Bundles.
|
||||
|
||||
* A :prop_dir:`BINARY_DIR` directory property was added to get the
|
||||
absolute path to the binary directory corresponding to the source
|
||||
directory on which the property is read.
|
||||
|
||||
* A :prop_dir:`BUILDSYSTEM_TARGETS` directory property was added to
|
||||
get the list of logical buildsystem target names added by the
|
||||
project in a directory.
|
||||
|
||||
* A :prop_tgt:`LINK_WHAT_YOU_USE` target property and supporting
|
||||
:variable:`CMAKE_LINK_WHAT_YOU_USE` variable were introduced
|
||||
to detect (on UNIX) shared libraries that are linked but not
|
||||
needed by running ``ldd -r -u``.
|
||||
|
||||
* A :prop_dir:`SOURCE_DIR` directory property was added to get the
|
||||
absolute path to the source directory associated with a directory.
|
||||
|
||||
* A :prop_dir:`SUBDIRECTORIES` directory property was added to
|
||||
get the list of subdirectories added by a project in a directory.
|
||||
|
||||
* A :prop_tgt:`VS_SDK_REFERENCES` target property was added to tell
|
||||
:ref:`Visual Studio Generators` to reference the named SDKs.
|
||||
|
||||
* A :prop_sf:`VS_TOOL_OVERRIDE` source file property was created to tell
|
||||
:ref:`Visual Studio Generators` what tool to use for a source file.
|
||||
|
||||
* The :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property now applies
|
||||
to executable targets with the :prop_tgt:`ENABLE_EXPORTS` property set.
|
||||
|
||||
* A :prop_sf:`XCODE_FILE_ATTRIBUTES` source file property was
|
||||
added to tell the :generator:`Xcode` generator to generate
|
||||
custom content in the Xcode project attributes for the file.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* An :module:`AndroidTestUtilities` module was added to manage transfer
|
||||
of test data to an Android device.
|
||||
|
||||
* The :module:`CheckFortranSourceCompiles` module macro
|
||||
``CHECK_Fortran_SOURCE_COMPILES`` gained a ``SRC_EXT`` option
|
||||
to specify a custom test Fortran source file extension.
|
||||
|
||||
* The :module:`ExternalProject` module gained ``HTTP_USERNAME`` and
|
||||
``HTTP_PASSWORD`` options to set http download credentials.
|
||||
|
||||
* The :module:`ExternalProject` module gained a ``HTTP_HEADER``
|
||||
option to add http download headers.
|
||||
|
||||
* The :module:`FindBISON` module ``BISON_TARGET`` macro learned a new
|
||||
``REPORT_FILE`` option to specify the bison ``--report-file=`` option.
|
||||
|
||||
* The :module:`FindBZip2` module now provides imported targets.
|
||||
|
||||
* A :module:`FindICU` module was introduced to find the International
|
||||
Components for Unicode (ICU) libraries and programs.
|
||||
|
||||
* The :module:`FindMatlab` module learned to find the SIMULINK and MAT
|
||||
components.
|
||||
|
||||
* The :module:`FindMatlab` module :command:`matlab_add_mex` command learned
|
||||
to add executables and modules.
|
||||
|
||||
* The :module:`FindMatlab` module :command:`matlab_add_unit_test` command
|
||||
learned to support inline Matlab test code.
|
||||
|
||||
* The :module:`FindOpenCL` module now provides imported targets.
|
||||
|
||||
* The :module:`FindOpenMP` module learned to detect the OpenMP
|
||||
version (specification date) from the compiler.
|
||||
|
||||
* A :module:`FindVulkan` module was added.
|
||||
|
||||
* The :module:`GenerateExportHeader` module learned a new
|
||||
``CUSTOM_CONTENT_FROM_VARIABLE`` option to specify a variable
|
||||
containing custom content for inclusion in the generated header.
|
||||
|
||||
* The :module:`GNUInstallDirs` module gained a new
|
||||
:command:`GNUInstallDirs_get_absolute_install_dir` command.
|
||||
|
||||
* The :module:`UseJava` module gained APIs to "export" jar targets
|
||||
for use by external CMake projects. See the ``install_jar_exports``
|
||||
and ``export_jars`` functions.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* CTest now supports test fixtures through the new :prop_test:`FIXTURES_SETUP`,
|
||||
:prop_test:`FIXTURES_CLEANUP` and :prop_test:`FIXTURES_REQUIRED` test
|
||||
properties. When using regular expressions or ``--rerun-failed`` to limit
|
||||
the tests to be run, a fixture's setup and cleanup tests will automatically
|
||||
be added to the execution set if any test requires that fixture.
|
||||
|
||||
* The :command:`ctest_configure`, :command:`ctest_build`,
|
||||
:command:`ctest_test`, :command:`ctest_coverage`, and :command:`ctest_upload`
|
||||
commands gained a new ``CAPTURE_CMAKE_ERROR`` option to capture any errors
|
||||
that occur as the commands run into a variable and avoid affecting the return
|
||||
code of the :manual:`ctest(1)` process.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* CPack gained a :cpack_gen:`CPack productbuild Generator` on OS X.
|
||||
|
||||
* CPack gained a new :variable:`CPACK_PACKAGE_CHECKSUM` variable to
|
||||
enable generation of a checksum file for each package file.
|
||||
|
||||
* The :cpack_gen:`CPack DEB Generator` learned to support long file names
|
||||
when archive format is set to GNU tar.
|
||||
See :variable:`CPACK_DEBIAN_ARCHIVE_TYPE`
|
||||
|
||||
* The :module:`CPackIFW` module gained a new
|
||||
:command:`cpack_ifw_add_package_resources` command to include additional
|
||||
resources in the installer binary.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
|
||||
:command:`cpack_ifw_configure_component_group` commands gained a new
|
||||
``USER_INTERFACES`` option to add a list of additional pages to the IFW
|
||||
installer.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned to generate debuginfo
|
||||
packages on demand. See :variable:`CPACK_RPM_DEBUGINFO_PACKAGE`
|
||||
and its per component version.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned to generate source rpm
|
||||
(SRPM) packages on demand. See :variable:`CPACK_RPM_PACKAGE_SOURCES`,
|
||||
:variable:`CPACK_RPM_SOURCE_PKG_BUILD_PARAMS` and
|
||||
:variable:`CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX`.
|
||||
|
||||
* The :cpack_gen:`CPack NSIS Generator` now supports
|
||||
:variable:`CPACK_NSIS_<compName>_INSTALL_DIRECTORY`.
|
||||
This can be used to set component specific installation directories.
|
||||
|
||||
* The :cpack_gen:`CPack WIX Generator` now supports
|
||||
:variable:`CPACK_WIX_SKIP_PROGRAM_FOLDER` to allow specification
|
||||
of a custom absolute installation prefix outside
|
||||
of the ProgramFiles folders.
|
||||
|
||||
* The :cpack_gen:`CPack WIX Generator` now supports
|
||||
:variable:`CPACK_COMPONENT_<compName>_DISABLED`.
|
||||
This can be used to deselect a component from being installed by default.
|
||||
|
||||
* The :cpack_gen:`CPack WIX Generator` now supports
|
||||
:variable:`CPACK_WIX_PATCH_FILE` fragments for Feature elements.
|
||||
|
||||
* The :cpack_gen:`CPack WIX Generator` now supports
|
||||
:variable:`CPACK_WIX_ROOT_FEATURE_TITLE` and
|
||||
:variable:`CPACK_WIX_ROOT_FEATURE_DESCRIPTION` to allow the specification
|
||||
of a custom title and description for the root feature element.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* :manual:`cmake(1)` gained a ``-E capabilities`` option to provide a
|
||||
machine-readable (JSON) description of the capabilities of the
|
||||
cmake tool (available generators, etc.).
|
||||
|
||||
* A new :manual:`cmake-server(7)` mode was added to provide semantic
|
||||
information about a CMake-generated buildsystem to clients through
|
||||
a JSON protocol. Currently all protocols are experimental and subject
|
||||
to change.
|
||||
|
||||
* The :manual:`cmake(1)` command learned a ``--trace-source=<file>`` option.
|
||||
|
||||
* :manual:`ccmake(1)` learned to support vim-like navigation bindings.
|
||||
|
||||
* :manual:`cmake-gui(1)` gained a button to open the generated project file
|
||||
for :ref:`Visual Studio Generators` and the :generator:`Xcode` generator.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* We no longer provide Linux i386 binaries for download from ``cmake.org``
|
||||
for new versions of CMake.
|
||||
|
||||
* Vim support files ``cmake-indent.vim``, ``cmake-syntax.vim``, and
|
||||
``cmake-help.vim`` have been removed in favor of the files now provided
|
||||
from the `vim-cmake-syntax`_ project.
|
||||
|
||||
* Support for building CMake itself with some compilers was dropped:
|
||||
|
||||
* Visual Studio 7.1 and 2005 -- superseded by VS 2008 and above
|
||||
* MinGW.org mingw32 -- superseded by MSYS2 mingw32 and mingw64
|
||||
|
||||
CMake still supports generating build systems for other projects using
|
||||
these compilers.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* The Fortran dependency scanner learned to support the syntax of
|
||||
`Fortran Submodules`_.
|
||||
|
||||
* Vim support files ``indent/cmake.vim`` and ``syntax/cmake.vim``
|
||||
from the `vim-cmake-syntax`_ project are now distributed with CMake.
|
||||
|
||||
.. _`Fortran Submodules`: https://fortranwiki.org/fortran/show/Submodules
|
||||
.. _`vim-cmake-syntax`: https://github.com/pboettch/vim-cmake-syntax
|
417
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.8.rst
Normal file
417
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.8.rst
Normal file
@ -0,0 +1,417 @@
|
||||
CMake 3.8 Release Notes
|
||||
***********************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.7 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
C#
|
||||
^^
|
||||
|
||||
* CMake learned to support ``CSharp`` (C#) as a first-class language that
|
||||
can be enabled via the :command:`project` and :command:`enable_language`
|
||||
commands. It is currently supported by the :ref:`Visual Studio Generators`
|
||||
for VS 2010 and above.
|
||||
|
||||
C# assemblies and programs can be added just like common C++ targets using
|
||||
the :command:`add_library` and :command:`add_executable` commands.
|
||||
References between C# targets in the same source tree may be specified by
|
||||
:command:`target_link_libraries` like for C++. References to system or
|
||||
3rd-party assemblies may be specified by the target properties
|
||||
:prop_tgt:`VS_DOTNET_REFERENCE_<refname>` and
|
||||
:prop_tgt:`VS_DOTNET_REFERENCES`.
|
||||
|
||||
* More fine tuning of C# targets may be done using target and source
|
||||
file properties. Specifically the target properties related to
|
||||
Visual Studio (``VS_*``) are worth a look (for setting toolset
|
||||
versions, root namespaces, assembly icons, ...).
|
||||
|
||||
CUDA
|
||||
^^^^
|
||||
|
||||
* CMake learned to support ``CUDA`` as a first-class language that can be
|
||||
enabled via the :command:`project` and :command:`enable_language` commands.
|
||||
|
||||
* ``CUDA`` is currently supported by the :ref:`Makefile Generators`
|
||||
and the :generator:`Ninja` generator on Linux, macOS, and Windows.
|
||||
Support for the Visual Studio IDE is under development but not
|
||||
included in this release.
|
||||
|
||||
* The NVIDIA CUDA Toolkit compiler (``nvcc``) is supported.
|
||||
|
||||
C & C++
|
||||
^^^^^^^
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
now offers meta-features that request compiler modes for specific language
|
||||
standard levels (e.g. ``cxx_std_11``). See
|
||||
:prop_gbl:`CMAKE_C_KNOWN_FEATURES` and :prop_gbl:`CMAKE_CXX_KNOWN_FEATURES`.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of C++ 17. No specific features are yet enumerated besides
|
||||
the ``cxx_std_17`` meta-feature.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of the availability of C99 in gcc since version 3.4.
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* A new minimal platform file for ``Fuchsia`` was added.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :generator:`CodeBlocks` extra generator may now be used to
|
||||
generate with :generator:`NMake Makefiles JOM`.
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2013 and above learned to
|
||||
support a ``host=x64`` option in the :variable:`CMAKE_GENERATOR_TOOLSET`
|
||||
value (e.g. via the :manual:`cmake(1)` ``-T`` option) to request use
|
||||
of a VS 64-bit toolchain on 64-bit hosts.
|
||||
|
||||
* The :ref:`Visual Studio Generators` learned to treat files passed to
|
||||
:command:`target_link_libraries` whose names end in ``.targets``
|
||||
as MSBuild "targets" files to be imported into generated project files.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_custom_command` and :command:`add_custom_target` commands
|
||||
learned the option ``COMMAND_EXPAND_LISTS`` which causes lists in the
|
||||
``COMMAND`` argument to be expanded, including lists created by generator
|
||||
expressions.
|
||||
|
||||
* The :command:`execute_process` command gained an ``ENCODING`` option to
|
||||
specify on Windows which encoding is used for output from child process.
|
||||
|
||||
* The :command:`math(EXPR)` command gained support for unary
|
||||
``+`` and ``-`` operators.
|
||||
|
||||
* The :command:`source_group` command gained ``TREE`` and ``PREFIX``
|
||||
options to add groups following source tree directory structure.
|
||||
|
||||
* The :command:`string(TIMESTAMP)` command learned to treat ``%%``
|
||||
as a way to encode plain ``%``.
|
||||
|
||||
* The :command:`string(TIMESTAMP)` command will now honor the
|
||||
``SOURCE_DATE_EPOCH`` environment variable and use its value
|
||||
instead of the current time.
|
||||
|
||||
* The :command:`try_compile` command source file signature gained new options
|
||||
to specify the language standard to use in the generated test project.
|
||||
|
||||
* The :command:`try_compile` command source file signature now honors
|
||||
language standard variables like :variable:`CMAKE_CXX_STANDARD`.
|
||||
See policy :policy:`CMP0067`.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* A :variable:`CMAKE_CODELITE_USE_TARGETS` variable was added to tell the
|
||||
:generator:`CodeLite` extra generator to change the generated project
|
||||
to have target-centric organization.
|
||||
The ``build``, ``rebuild``, and ``clean`` operations within ``CodeLite``
|
||||
then work on a selected target rather than the whole workspace.
|
||||
(Note that the :generator:`Ninja` clean operation on a target
|
||||
includes its dependencies, though.)
|
||||
|
||||
* The :variable:`CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS` variable was added to
|
||||
tell the :generator:`Sublime Text 2` extra generator to place specified
|
||||
environment variables in the generated ``.sublime-project``.
|
||||
|
||||
* The :variable:`CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE` variable was added
|
||||
to tell the :generator:`Sublime Text 2` extra generator whether to exclude
|
||||
the build tree from the ``.sublime-project`` when it is inside the source
|
||||
tree.
|
||||
|
||||
* A :variable:`CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD` variable was
|
||||
added to tell :ref:`Visual Studio Generators` for VS 2010 and above
|
||||
to include the ``PACKAGE`` target in the default build, similar to
|
||||
the existing :variable:`CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD`
|
||||
variable for the ``INSTALL`` target.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* A :prop_tgt:`BUILD_RPATH` target property and corresponding
|
||||
:variable:`CMAKE_BUILD_RPATH` variable were added to support custom
|
||||
``RPATH`` locations to be added to binaries in the build tree.
|
||||
|
||||
* The :prop_sf:`COMPILE_FLAGS` source file property learned to support
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* The :prop_tgt:`FRAMEWORK` target property may now also be applied to
|
||||
static libraries on Apple targets. It will result in a proper
|
||||
Framework but with a static library inside.
|
||||
|
||||
* :ref:`Imported <Imported Targets>` :ref:`Interface Libraries` learned new
|
||||
:prop_tgt:`IMPORTED_LIBNAME` and :prop_tgt:`IMPORTED_LIBNAME_<CONFIG>`
|
||||
target properties to specify a link library name since interface libraries
|
||||
do not build their own library files.
|
||||
|
||||
* A :prop_tgt:`<LANG>_CPPLINT` target property and supporting
|
||||
:variable:`CMAKE_<LANG>_CPPLINT` variable were introduced to tell
|
||||
the :ref:`Makefile Generators` and the :generator:`Ninja` generator to
|
||||
run the ``cpplint`` style checker along with the compiler for ``C`` and
|
||||
``CXX`` languages.
|
||||
|
||||
* A :prop_tgt:`MANUALLY_ADDED_DEPENDENCIES` target property has been added.
|
||||
It provides a read-only list of dependencies that have been added with
|
||||
the :command:`add_dependencies` command.
|
||||
|
||||
* The :prop_tgt:`MAP_IMPORTED_CONFIG_<CONFIG>` target property learned
|
||||
to interpret empty list elements as referring to the configuration-less
|
||||
imported location specified by :prop_tgt:`IMPORTED_LOCATION`.
|
||||
|
||||
* The :prop_tgt:`NO_SYSTEM_FROM_IMPORTED` target property is now supported
|
||||
on :ref:`Imported <Imported Targets>` :ref:`Interface Libraries`.
|
||||
|
||||
* New source file properties :prop_sf:`SKIP_AUTOMOC`, :prop_sf:`SKIP_AUTOUIC`,
|
||||
:prop_sf:`SKIP_AUTORCC`, and :prop_sf:`SKIP_AUTOGEN` were added to allow
|
||||
source files to be excluded from processing by :prop_tgt:`AUTOMOC`,
|
||||
:prop_tgt:`AUTOUIC`, and :prop_tgt:`AUTORCC` target properties.
|
||||
|
||||
* A :prop_sf:`VS_COPY_TO_OUT_DIR` source file property was added to
|
||||
tell :ref:`Visual Studio Generators` for VS 2010 and above whether
|
||||
or not a file should e copied to the output directory.
|
||||
|
||||
* A :prop_tgt:`VS_DEBUGGER_WORKING_DIRECTORY` target property was added
|
||||
to tell :ref:`Visual Studio Generators` for VS 2010 and above what
|
||||
debugger working directory should be set for the target.
|
||||
|
||||
* A :prop_tgt:`VS_DOTNET_REFERENCES_COPY_LOCAL` target property was added
|
||||
to specify whether to copy referenced assemblies to the output directory.
|
||||
|
||||
* A :prop_tgt:`VS_DOTNET_REFERENCE_<refname>` target property was added
|
||||
to tell :ref:`Visual Studio Generators` for VS 2010 and above to add
|
||||
a .NET reference with a given hint path.
|
||||
|
||||
* A :prop_sf:`VS_INCLUDE_IN_VSIX` source file property was added to
|
||||
tell :ref:`Visual Studio Generators` for VS 2010 and above whether
|
||||
to include the file in a Visual Studio extension package.
|
||||
|
||||
* A :prop_sf:`VS_RESOURCE_GENERATOR` source file property was added to
|
||||
give :ref:`Visual Studio Generators` for VS 2010 and above a setting
|
||||
for the resource generator (``C#`` only).
|
||||
|
||||
* A :prop_tgt:`VS_USER_PROPS` target property was added to tell
|
||||
:ref:`Visual Studio Generators` for VS 2010 and above to use a
|
||||
custom MSBuild user ``.props`` file.
|
||||
|
||||
* A :prop_gbl:`XCODE_EMIT_EFFECTIVE_PLATFORM_NAME` global property was
|
||||
added to tell the :generator:`Xcode` generator whether to emit the
|
||||
``EFFECTIVE_PLATFORM_NAME`` variable. This is useful when building
|
||||
with multiple SDKs like ``macosx`` and ``iphoneos`` in parallel.
|
||||
|
||||
* New :prop_tgt:`XCODE_PRODUCT_TYPE` and :prop_tgt:`XCODE_EXPLICIT_FILE_TYPE`
|
||||
target properties were created to tell the :generator:`Xcode` generator
|
||||
to use custom values of the corresponding attributes for a target in the
|
||||
generated Xcode project.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* A :module:`CSharpUtilities` module was added to aid parameterization of
|
||||
Visual Studio C# targets. It provides functions to allow automated
|
||||
setting of source file properties to support Windows Forms, WPF/XAML or
|
||||
other technologies as needed.
|
||||
|
||||
* The :module:`ExternalData` module learned to support multiple
|
||||
content links for one data file using different hashes, e.g.
|
||||
``img.png.sha256`` and ``img.png.sha1``. This allows objects
|
||||
to be fetched from sources indexed by different hash algorithms.
|
||||
|
||||
* The :module:`ExternalProject` module gained the ``GIT_PROGRESS`` option to
|
||||
force Git to show progress when cloning repositories.
|
||||
|
||||
* The :module:`ExternalProject` module gained a ``GIT_CONFIG`` option
|
||||
to pass ``--config`` options to Git when cloning repositories.
|
||||
|
||||
* The :module:`FeatureSummary` module :command:`feature_summary` command now
|
||||
accepts a new ``QUIET_ON_EMPTY`` option that suppresses the output when
|
||||
the list of packages that belong to the selected category is empty.
|
||||
|
||||
* The :module:`FeatureSummary` module :command:`add_feature_info` command
|
||||
now accepts lists of dependencies for deciding whether a feature is enabled
|
||||
or not.
|
||||
|
||||
* The package types accepted by the :module:`FeatureSummary` module can now
|
||||
be tweaked by changing the :variable:`FeatureSummary_PKG_TYPES`,
|
||||
:variable:`FeatureSummary_REQUIRED_PKG_TYPES` and
|
||||
:variable:`FeatureSummary_DEFAULT_PKG_TYPE` global properties.
|
||||
|
||||
* The :module:`FindOpenGL` module now provides imported targets
|
||||
``OpenGL::GL`` and ``OpenGL::GLU`` when the libraries are found.
|
||||
|
||||
* The :module:`UseSWIG` module gained a ``swig_add_library`` command
|
||||
to give more flexibility over the old ``swig_add_module`` command.
|
||||
|
||||
* The :module:`UseSWIG` module ``swig_add_source_to_module`` command
|
||||
learned a new ``SWIG_OUTFILE_DIR`` option to control the output
|
||||
file location (``swig -o``).
|
||||
|
||||
* The :module:`WriteCompilerDetectionHeader` module gained the
|
||||
``ALLOW_UNKNOWN_COMPILERS`` and ``ALLOW_UNKNOWN_COMPILER_VERSIONS`` options
|
||||
that allow creation of headers that will work also with unknown or old
|
||||
compilers by simply assuming they do not support any of the requested
|
||||
features.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :command:`ctest_memcheck` command gained a ``DEFECT_COUNT <var>``
|
||||
option to capture the number of memory defects detected.
|
||||
|
||||
* The :command:`ctest_memcheck` command learned to read the location of
|
||||
suppressions files for sanitizers from the
|
||||
:variable:`CTEST_MEMORYCHECK_SUPPRESSIONS_FILE` variable.
|
||||
|
||||
* The :command:`ctest_memcheck` command learned to support ``LeakSanitizer``
|
||||
independently from ``AddressSanitizer``.
|
||||
|
||||
* The :command:`ctest_update` command ``CDASH_UPLOAD`` signature was taught
|
||||
to honor the ``RETRY_COUNT``, ``RETRY_DELAY``, and ``QUIET`` options.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :module:`CPackIFWConfigureFile` module was added to define a new
|
||||
:command:`cpack_ifw_configure_file` command to configure file templates
|
||||
prepared in QtIFW/SDK/Creator style.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
|
||||
:command:`cpack_ifw_configure_component_group` commands gained a new
|
||||
``DEFAULT``, ``VIRTUAL``, ``FORCED_INSTALLATION``, ``REQUIRES_ADMIN_RIGHTS``,
|
||||
``DISPLAY_NAME``, ``UPDATE_TEXT``, ``DESCRIPTION``, ``RELEASE_DATE``,
|
||||
``AUTO_DEPEND_ON`` and ``TRANSLATIONS`` options to more specific
|
||||
configuration.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component`
|
||||
command gained a new ``DEPENDENCIES`` alias for ``DEPENDS`` option.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component_group`
|
||||
command gained a new ``DEPENDS`` option. The ``DEPENDENCIES`` alias also
|
||||
added.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
|
||||
:command:`cpack_ifw_configure_component_group` commands ``PRIORITY``
|
||||
option now is deprecated and will be removed in a future version of CMake.
|
||||
Please use new ``SORTING_PRIORITY`` option instead.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained new
|
||||
:variable:`CPACK_IFW_PACKAGE_WATERMARK`,
|
||||
:variable:`CPACK_IFW_PACKAGE_BANNER`,
|
||||
:variable:`CPACK_IFW_PACKAGE_BACKGROUND`,
|
||||
:variable:`CPACK_IFW_PACKAGE_WIZARD_STYLE`,
|
||||
:variable:`CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH`,
|
||||
:variable:`CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT`, and
|
||||
:variable:`CPACK_IFW_PACKAGE_TITLE_COLOR`
|
||||
variables to customize a QtIFW installer look.
|
||||
|
||||
* The :cpack_gen:`CPack productbuild Generator` gained options to sign packages.
|
||||
See the variables :variable:`CPACK_PRODUCTBUILD_IDENTITY_NAME`,
|
||||
:variable:`CPACK_PRODUCTBUILD_KEYCHAIN_PATH`,
|
||||
:variable:`CPACK_PKGBUILD_IDENTITY_NAME`, and
|
||||
:variable:`CPACK_PKGBUILD_KEYCHAIN_PATH`.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned to omit tags that are not
|
||||
supported by provided ``rpmbuild`` tool. If unsupported tags are set they
|
||||
are ignored and a developer warning is printed out.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned to generate main component
|
||||
package which forces generation of a rpm for defined component without
|
||||
component suffix in filename and package name.
|
||||
See :variable:`CPACK_RPM_MAIN_COMPONENT` variable.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned to generate a single
|
||||
``debuginfo`` package on demand even if components packaging is used.
|
||||
See :variable:`CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE` variable.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned to support
|
||||
multiple directives per file when using
|
||||
:variable:`CPACK_RPM_USER_FILELIST` variable.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* CMake functionality using cryptographic hashes now supports SHA-3 algorithms.
|
||||
|
||||
* A new generator expression ``$<IF:cond,true-value,false-value>`` was added.
|
||||
It resolves to the true-value if the condition is ``1`` and resolves to
|
||||
the false-value if the condition is ``0``.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* The :module:`FeatureSummary` module commands :command:`set_package_info`,
|
||||
:command:`set_feature_info`, :command:`print_enabled_features`, and
|
||||
:command:`print_disabled_features` are now deprecated.
|
||||
|
||||
* The :module:`UseSWIG` module ``swig_add_module`` command is now
|
||||
deprecated in favor of ``swig_add_library``.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* If a command specified by the :prop_tgt:`<LANG>_CLANG_TIDY` target property
|
||||
returns non-zero at build time this is now treated as an error instead of
|
||||
silently ignored.
|
||||
|
||||
* The :command:`ctest_memcheck` command no longer automatically adds
|
||||
``leak_check=1`` to the options used by ``AddressSanitizer``. The default
|
||||
behavior of ``AddressSanitizer`` is to run `LeakSanitizer` to check leaks
|
||||
unless ``leak_check=0``.
|
||||
|
||||
* The :command:`ctest_memcheck` command was fixed to correctly append extra
|
||||
sanitizer options read from the
|
||||
:variable:`CTEST_MEMORYCHECK_SANITIZER_OPTIONS` variable to the environment
|
||||
variables used internally by the sanitizers.
|
||||
|
||||
* The :module:`FeatureSummary` module :command:`set_package_properties`
|
||||
command no longer forces the package type to ``OPTIONAL`` when the type
|
||||
is not explicitly set.
|
||||
|
||||
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
|
||||
is now aware of features supported by Intel C++ compilers versions 12.1
|
||||
through 17.0 on UNIX and Windows platforms.
|
||||
|
||||
* Calls to the :module:`FindPkgConfig` module :command:`pkg_check_modules`
|
||||
command following a successful call learned to re-evaluate the cached values
|
||||
for a given prefix after changes to the parameters to the command for that
|
||||
prefix.
|
||||
|
||||
* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC`, generated
|
||||
``moc_*``, ``*.moc`` and ``ui_*`` are placed in the
|
||||
``<CMAKE_CURRENT_BINARY_DIR>/<TARGETNAME>_autogen/include`` directory which
|
||||
is automatically added to the target's :prop_tgt:`INCLUDE_DIRECTORIES`.
|
||||
It is therefore not necessary anymore to have
|
||||
:variable:`CMAKE_CURRENT_BINARY_DIR` in the target's
|
||||
:prop_tgt:`INCLUDE_DIRECTORIES`.
|
||||
|
||||
* The :generator:`Sublime Text 2` generator no longer runs the native
|
||||
build command (e.g. ``ninja`` or ``make``) with verbose build output
|
||||
enabled.
|
||||
|
||||
* The :command:`try_compile` command source file signature now
|
||||
honors the :variable:`CMAKE_WARN_DEPRECATED` variable value
|
||||
in the generated test project.
|
||||
|
||||
* The :ref:`Visual Studio Generators` for VS 2010 and above now place
|
||||
per-source file flags after target-wide flags when they are classified
|
||||
as raw flags with no project file setting (``AdditionalOptions``).
|
||||
This behavior is more consistent with the ordering of flags produced
|
||||
by other generators, and allows flags on more-specific properties
|
||||
(per-source) to override those on more general ones (per-target).
|
||||
|
||||
* The precompiled Windows binary MSI package provided on ``cmake.org`` now
|
||||
records the installation directory in the Windows Registry under the key
|
||||
``HKLM\Software\Kitware\CMake`` with a value named ``InstallDir``.
|
343
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.9.rst
Normal file
343
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/3.9.rst
Normal file
@ -0,0 +1,343 @@
|
||||
CMake 3.9 Release Notes
|
||||
***********************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.8 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
* ``CUDA`` is now supported by the :ref:`Visual Studio Generators`
|
||||
for VS 2010 and above. This complements the existing support by the
|
||||
:ref:`Makefile Generators` and the :generator:`Ninja` generator.
|
||||
CUDA 8.0.61 or higher is recommended due to known bugs in the VS
|
||||
integration by earlier versions.
|
||||
|
||||
* CMake is now aware of the :prop_tgt:`C++ standards <CXX_STANDARD>` and
|
||||
:prop_tgt:`C standards <C_STANDARD>` and their associated meta-features for
|
||||
the following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>`: ``Cray``,
|
||||
``PGI``, and ``XL``.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* :ref:`Visual Studio Generators` for VS 2010 and above learned to support
|
||||
the ``ASM_NASM`` language when ``nasm`` is installed.
|
||||
|
||||
* The :generator:`Xcode` generator learned to create Xcode schema files.
|
||||
This is an experimental feature and can be activated by setting the
|
||||
:variable:`CMAKE_XCODE_GENERATE_SCHEME` variable to a ``TRUE`` value.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* The :command:`add_library` command ``IMPORTED`` option learned to support
|
||||
:ref:`Object Libraries`.
|
||||
|
||||
* The :command:`find_library` command learned to search ``libx32`` paths
|
||||
when the build targets the ``x32`` ABI. See the
|
||||
:prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS` global property.
|
||||
|
||||
* The :command:`include_external_msproject` command learned to use
|
||||
the :prop_tgt:`MAP_IMPORTED_CONFIG_<CONFIG>` target property
|
||||
to map current configurations to the external configurations.
|
||||
|
||||
* The :command:`install(TARGETS)` command learned a new ``OBJECTS`` option to
|
||||
specify where to install :ref:`Object Libraries`.
|
||||
|
||||
* The :command:`install(EXPORT)` command learned how to export
|
||||
:ref:`Object Libraries`.
|
||||
|
||||
* The :command:`project` command learned an optional ``DESCRIPTION``
|
||||
parameter to set the :variable:`PROJECT_DESCRIPTION` variable.
|
||||
|
||||
* The :command:`separate_arguments` command gained a ``NATIVE_COMMAND`` mode
|
||||
that performs argument separation depending on the host operating system.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* A :variable:`CMAKE_ANDROID_NDK_DEPRECATED_HEADERS` variable was added
|
||||
for use when :ref:`Cross Compiling for Android with the NDK` to request
|
||||
use of the deprecated headers even when unified headers are available.
|
||||
The default is now to use unified headers if available.
|
||||
|
||||
* A :variable:`CMAKE_AUTOMOC_DEPEND_FILTERS` variable was introduced to
|
||||
allow :variable:`CMAKE_AUTOMOC` to extract additional dependency file names
|
||||
for ``moc`` from the contents of source files.
|
||||
|
||||
* A :variable:`CMAKE_AUTOUIC_SEARCH_PATHS` variable was introduced to
|
||||
allow :variable:`CMAKE_AUTOUIC` to search for ``foo.ui`` in more
|
||||
places than the vicinity of the file including ``ui_foo.h``.
|
||||
|
||||
* A :variable:`CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable was added to
|
||||
tell the :command:`find_library` command to search in a ``lib<suffix>``
|
||||
directory before each ``lib`` directory that would normally be searched.
|
||||
|
||||
* A :variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` variable was added to
|
||||
initialize the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` property on all
|
||||
targets.
|
||||
|
||||
* A :variable:`CMAKE_<LANG>_COMPILER_AR` variable was added to hold
|
||||
the path to the GCC/Clang wrapper of ``ar``.
|
||||
|
||||
* A :variable:`CMAKE_<LANG>_COMPILER_RANLIB` variable was added to hold
|
||||
the path to the GCC/Clang wrapper of ``ranlib``.
|
||||
|
||||
* The :variable:`CMAKE_SYSROOT_COMPILE` and :variable:`CMAKE_SYSROOT_LINK`
|
||||
variables were added to use separate sysroots for compiling and linking.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* A new :prop_tgt:`AUTOGEN_BUILD_DIR` target property was introduced to set
|
||||
a custom output directory for :prop_tgt:`AUTOMOC`, :prop_tgt:`AUTOUIC`,
|
||||
and :prop_tgt:`AUTORCC`.
|
||||
|
||||
* A new :prop_tgt:`AUTOMOC_DEPEND_FILTERS` target property was introduced to
|
||||
allow :prop_tgt:`AUTOMOC` to extract additional dependency file names
|
||||
for ``moc`` from the contents of source files.
|
||||
|
||||
* A new :prop_tgt:`AUTOUIC_SEARCH_PATHS` target property was introduced to
|
||||
allow :prop_tgt:`AUTOUIC` to search for ``foo.ui`` in more
|
||||
places than the vicinity of the file including ``ui_foo.h``.
|
||||
|
||||
* Global properties :prop_gbl:`AUTOGEN_SOURCE_GROUP`,
|
||||
:prop_gbl:`AUTOMOC_SOURCE_GROUP` and
|
||||
:prop_gbl:`AUTORCC_SOURCE_GROUP` were
|
||||
introduced to allow files generated by :prop_tgt:`AUTOMOC` or
|
||||
:prop_tgt:`AUTORCC` to be placed in a :command:`source_group`.
|
||||
|
||||
* A :prop_tgt:`BUILD_WITH_INSTALL_NAME_DIR` target property and corresponding
|
||||
:variable:`CMAKE_BUILD_WITH_INSTALL_NAME_DIR` variable were added to
|
||||
control whether to use the :prop_tgt:`INSTALL_NAME_DIR` target property
|
||||
value for binaries in the build tree. This is for macOS ``install_name``
|
||||
as :prop_tgt:`BUILD_WITH_INSTALL_RPATH` is for ``RPATH``.
|
||||
|
||||
* A :prop_tgt:`CUDA_PTX_COMPILATION` target property was added to
|
||||
:ref:`Object Libraries` to support compiling to ``.ptx`` files
|
||||
instead of host object files.
|
||||
|
||||
* A :prop_gbl:`GENERATOR_IS_MULTI_CONFIG` global property was
|
||||
added to determine whether the current generator is a multi-configuration
|
||||
generator (such as :ref:`Visual Studio Generators` or :generator:`Xcode`).
|
||||
|
||||
* The :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property is now enforced
|
||||
when enabled. CMake will add IPO flags unconditionally or produce an error
|
||||
if it does not know the flags for the current compiler. The project is now
|
||||
responsible to use the :module:`CheckIPOSupported` module to check for IPO
|
||||
support before enabling the target property. See policy :policy:`CMP0069`.
|
||||
|
||||
* The :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property may now
|
||||
be used in combination with explicit ``.def`` files in order to
|
||||
export all symbols from the object files within a target plus
|
||||
an explicit list of symbols that the linker finds in dependencies
|
||||
(e.g. ``msvcrt.lib``).
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* A :module:`CheckIPOSupported` module was added to help projects
|
||||
check whether interprocedural optimization (IPO) is supported by
|
||||
the current toolchain and CMake version.
|
||||
|
||||
* The :module:`CMakeFindDependencyMacro` module ``find_dependency`` macro
|
||||
now forwards all arguments to the underlying :command:`find_package`
|
||||
call. Existing uses will continue to function as before, but callers can
|
||||
now access the full suite of arguments that :command:`find_package` accepts.
|
||||
|
||||
* The :module:`FeatureSummary` module :command:`feature_summary` command now
|
||||
accepts the new ``DEFAULT_DESCRIPTION`` option that will print the default
|
||||
title for the selected package type.
|
||||
|
||||
* The :module:`FeatureSummary` module gained a new
|
||||
:variable:`FeatureSummary_<TYPE>_DESCRIPTION` variable that can be defined
|
||||
for each ``<TYPE>`` to replace the type name with the specified string
|
||||
whenever the package type is used in an output string by the module.
|
||||
|
||||
* The :module:`FindDoxygen` module learned to control Doxygen behavior using
|
||||
CMake variables and generate documentation via the newly added
|
||||
:command:`doxygen_add_docs` function. The Doxygen input file (``Doxyfile``)
|
||||
is automatically generated and doxygen is run as part of a custom target.
|
||||
Additional components can be specified to find optional tools: ``dot``,
|
||||
``mscgen`` and ``dia``.
|
||||
|
||||
* The :module:`FindMPI` module now provides imported targets.
|
||||
|
||||
* The :module:`FindProtobuf` module :command:`protobuf_generate_cpp`
|
||||
command gained an ``EXPORT_MACRO`` option to specify the name of
|
||||
a DLL export markup macro.
|
||||
|
||||
* The :module:`FindProtobuf` module now supports usage of static libraries
|
||||
for Unix via a new ``Protobuf_USE_STATIC_LIBS`` input variable.
|
||||
|
||||
* The :module:`FindProtobuf` module now provides imported targets
|
||||
when the libraries are found.
|
||||
|
||||
* A new :module:`GoogleTest` module was added to provide the
|
||||
:command:`gtest_add_tests` function independently of the :module:`FindGTest`
|
||||
module. The function was also updated to support keyword arguments, with
|
||||
functionality expanded to allow a test name prefix and suffix to be
|
||||
specified, the dependency on the source files to be optional and the list of
|
||||
discovered test cases to be returned to the caller.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :command:`ctest_submit` command gained a ``HTTPHEADER`` option
|
||||
to specify custom headers to send during submission.
|
||||
|
||||
* The :manual:`ctest(1)` executable gained new options which allow the
|
||||
developer to disable automatically adding tests to the test set to satisfy
|
||||
fixture dependencies. ``-FS`` prevents adding setup tests for fixtures
|
||||
matching the provided regular expression, ``-FC`` prevents adding cleanup
|
||||
tests for matching fixtures and ``-FA`` prevents adding any test for matching
|
||||
fixtures.
|
||||
|
||||
* A :prop_test:`DISABLED` test property was added to mark tests that
|
||||
are configured but explicitly disabled so they do not run.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* The :cpack_gen:`CPack Archive Generator` learned to modify the filename
|
||||
per-component. See the :variable:`CPACK_ARCHIVE_FILE_NAME` variable and
|
||||
its per-component version :variable:`CPACK_ARCHIVE_<component>_FILE_NAME`.
|
||||
|
||||
* The :module:`CPackComponent` module :command:`cpack_add_component` command
|
||||
gained a new ``PLIST <filename>`` option to specify the ``pkgbuild``
|
||||
``--component-plist`` argument when using the
|
||||
:module:`productbuild <CPackProductBuild>` generator.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
|
||||
:command:`cpack_ifw_configure_component_group` commands gained
|
||||
internationalization support for ``DISPLAY_NAME`` and ``DESCRIPTION``
|
||||
options.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` learned the new hint
|
||||
:variable:`CPACK_IFW_ROOT` variable for finding the QtIFW tool suite
|
||||
installed in a non-standard place.
|
||||
|
||||
* The :cpack_gen:`CPack productbuild Generator` gained a new
|
||||
:variable:`CPACK_PRODUCTBUILD_RESOURCES_DIR` variable to
|
||||
specify resources to be copied into the ``Resources``
|
||||
directory.
|
||||
|
||||
* The :cpack_gen:`CPack RPM Generator` learned to modify the ``debuginfo``
|
||||
package name. See the :variable:`CPACK_RPM_DEBUGINFO_FILE_NAME` variable.
|
||||
|
||||
* The :cpack_gen:`CPack WIX Generator` patching system now has the
|
||||
ability to set additional attributes. This can be done by specifying
|
||||
attributes with the ``CPackWiXFragment`` XML tag after the ``Id`` attribute.
|
||||
See the :variable:`CPACK_WIX_PATCH_FILE` variable.
|
||||
|
||||
* The :cpack_gen:`CPack WIX Generator` implemented a new
|
||||
:variable:`CPACK_WIX_ROOT_FOLDER_ID` variable which allows
|
||||
using a custom root folder ID instead of the default
|
||||
``ProgramFilesFolder`` / ``ProgramFiles64Folder``.
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* Interprocedural optimization (IPO) is now supported for GNU and Clang
|
||||
compilers using link time optimization (LTO) flags. See the
|
||||
:prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property and
|
||||
:module:`CheckIPOSupported` module.
|
||||
|
||||
* The ``TARGET_OBJECTS``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
is now supported by the :command:`add_custom_command` and
|
||||
:command:`file(GENERATE)` commands.
|
||||
|
||||
* Two new informational generator expressions to retrieve Apple Bundle
|
||||
directories have been added. The first one :genex:`$<TARGET_BUNDLE_DIR:tgt>`
|
||||
outputs the full path to the Bundle directory, the other one
|
||||
:genex:`$<TARGET_BUNDLE_CONTENT_DIR:tgt>` outputs the full path to the
|
||||
``Contents`` directory of macOS Bundles and App Bundles. For all other
|
||||
bundle types and SDKs it is identical with :genex:`$<TARGET_BUNDLE_DIR:tgt>`.
|
||||
The new expressions are helpful to query Bundle locations independent of
|
||||
the different Bundle types and layouts on macOS and iOS.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* An explicit deprecation diagnostic was added for policies ``CMP0036``
|
||||
and below. The :manual:`cmake-policies(7)` manual explains that the
|
||||
OLD behaviors of all policies are deprecated and that projects should
|
||||
always port to the NEW behaviors as soon as possible.
|
||||
|
||||
* The :generator:`Visual Studio 8 2005` generator is now deprecated
|
||||
and will be removed in a future version of CMake.
|
||||
|
||||
* The :generator:`Visual Studio 7 .NET 2003` generator has been removed.
|
||||
|
||||
* The :generator:`Xcode` generator dropped support for Xcode versions
|
||||
older than 3.
|
||||
|
||||
* The :module:`FindDoxygen` module has deprecated several variables.
|
||||
|
||||
* The version of curl bundled with CMake no longer accepts URLs of the form
|
||||
``file://c:/...`` on Windows due to a change in upstream curl 7.52. Use
|
||||
the form ``file:///c:/...`` instead to work on all versions.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* When using :prop_tgt:`AUTOMOC`, CMake now scans for the presence of the
|
||||
``Q_PLUGIN_METADATA`` macro and reruns moc when the file from the
|
||||
macro's ``FILE`` argument changes.
|
||||
|
||||
* When :prop_tgt:`AUTOMOC` detects an include statement of the form
|
||||
``#include "moc_<basename>.cpp"`` the search for the respective header file
|
||||
now looks in the :prop_tgt:`INCLUDE_DIRECTORIES` of the target as well.
|
||||
|
||||
* When running tests, CTest learned to treat skipped tests (using the
|
||||
:prop_test:`SKIP_RETURN_CODE` property) the same as tests with the new
|
||||
:prop_test:`DISABLED` property. Due to this change, CTest will not indicate
|
||||
failure when all tests are either skipped or pass.
|
||||
|
||||
* The :generator:`Ninja` generator has loosened the dependencies of object
|
||||
compilation. Object compilation now depends only on custom targets
|
||||
and custom commands associated with libraries on which the object's target
|
||||
depends and no longer depends on the libraries themselves. Source files
|
||||
in dependent targets may now compile without waiting for their targets'
|
||||
dependencies to link.
|
||||
|
||||
* On macOS, ``RPATH`` settings such as :prop_tgt:`BUILD_WITH_INSTALL_RPATH`
|
||||
no longer affect the ``install_name`` field. See policy :policy:`CMP0068`.
|
||||
|
||||
* The :generator:`Visual Studio 14 2015` generator has been taught about
|
||||
a change to the ``v140`` toolset made by a VS 2015 update. VS changed
|
||||
the set of values it understands for the ``GenerateDebugInformation``
|
||||
linker setting that produces the ``-DEBUG`` linker flag variants.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.9.0 include the following.
|
||||
|
||||
3.9.1
|
||||
-----
|
||||
|
||||
* The ``find_`` command ``PACKAGE_ROOT`` search path group added by
|
||||
CMake 3.9.0 has been removed for the 3.9 series due to regressions
|
||||
caused by new use of ``<PackageName>_ROOT`` variables. The behavior
|
||||
may be re-introduced in the future in a more-compatible way.
|
||||
|
||||
3.9.2
|
||||
-----
|
||||
|
||||
* On macOS, the default application bundle ``Info.plist`` file no longer
|
||||
enables Hi-DPI support as it did in 3.9.0 and 3.9.1. The change had
|
||||
to be reverted because it broke iOS applications.
|
||||
|
||||
* The Xcode generator no longer adds "outputPaths" to custom script
|
||||
build phases as it did in 3.9.0 and 3.9.1. This was added in an
|
||||
attempt to support Xcode 9's new build system, but broke incremental
|
||||
rebuilds for both the old and new Xcode build systems.
|
16
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/dev.txt
Normal file
16
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/dev.txt
Normal file
@ -0,0 +1,16 @@
|
||||
..
|
||||
This file should be included by the adjacent "index.rst"
|
||||
in development versions but not in release versions.
|
||||
|
||||
Changes Since Release
|
||||
=====================
|
||||
|
||||
The following noteworthy changes have been made in this development
|
||||
version since the preceding release but have not yet been consolidated
|
||||
into notes for a specific release version:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:glob:
|
||||
|
||||
dev/*
|
43
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/index.rst
Normal file
43
6.5.3/_tools/cmake/share/cmake-3.27/Help/release/index.rst
Normal file
@ -0,0 +1,43 @@
|
||||
:orphan:
|
||||
|
||||
CMake Release Notes
|
||||
*******************
|
||||
|
||||
..
|
||||
This file should include the adjacent "dev.txt" file
|
||||
in development versions but not in release versions.
|
||||
|
||||
Releases
|
||||
========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
3.27 <3.27>
|
||||
3.26 <3.26>
|
||||
3.25 <3.25>
|
||||
3.24 <3.24>
|
||||
3.23 <3.23>
|
||||
3.22 <3.22>
|
||||
3.21 <3.21>
|
||||
3.20 <3.20>
|
||||
3.19 <3.19>
|
||||
3.18 <3.18>
|
||||
3.17 <3.17>
|
||||
3.16 <3.16>
|
||||
3.15 <3.15>
|
||||
3.14 <3.14>
|
||||
3.13 <3.13>
|
||||
3.12 <3.12>
|
||||
3.11 <3.11>
|
||||
3.10 <3.10>
|
||||
3.9 <3.9>
|
||||
3.8 <3.8>
|
||||
3.7 <3.7>
|
||||
3.6 <3.6>
|
||||
3.5 <3.5>
|
||||
3.4 <3.4>
|
||||
3.3 <3.3>
|
||||
3.2 <3.2>
|
||||
3.1 <3.1>
|
||||
3.0 <3.0>
|
Reference in New Issue
Block a user