diff options
Diffstat (limited to 'Help')
70 files changed, 468 insertions, 369 deletions
diff --git a/Help/command/ctest_update.rst b/Help/command/ctest_update.rst index 74af1f7..b205bca 100644 --- a/Help/command/ctest_update.rst +++ b/Help/command/ctest_update.rst @@ -25,3 +25,7 @@ The options are: have otherwise printed to the console. CTest will still report the new revision of the repository and any conflicting files that were found. + +The update always follows the version control branch currently checked +out in the source directory. See the :ref:`CTest Update Step` +documentation for more information. diff --git a/Help/command/file.rst b/Help/command/file.rst index 96ac6c7..256d16d 100644 --- a/Help/command/file.rst +++ b/Help/command/file.rst @@ -103,8 +103,9 @@ Generate a list of files that match the ``<globbing-expressions>`` and store it into the ``<variable>``. Globbing expressions are similar to regular expressions, but much simpler. If ``RELATIVE`` flag is specified, the results will be returned as relative paths to the given -path. No specific order of results is defined. If order is important then -sort the list explicitly (e.g. using the :command:`list(SORT)` command). +path. No specific order of results is defined other than that it is +deterministic. If order is important then sort the list explicitly +(e.g. using the :command:`list(SORT)` command). By default ``GLOB`` lists directories - directories are omited in result if ``LIST_DIRECTORIES`` is set to false. diff --git a/Help/command/try_compile.rst b/Help/command/try_compile.rst index 78b1bc7..7830deb 100644 --- a/Help/command/try_compile.rst +++ b/Help/command/try_compile.rst @@ -115,3 +115,7 @@ a build configuration. Set the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable to specify the type of target used for the source file signature. + +Set the :variable:`CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify +variables that must be propagated into the test project. This variable is +meant for use only in toolchain files. diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 181fbbc..85b8eae 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -68,7 +68,6 @@ Variables that Provide Information /variable/CMAKE_SKIP_INSTALL_RULES /variable/CMAKE_SKIP_RPATH /variable/CMAKE_SOURCE_DIR - /variable/CMAKE_STANDARD_LIBRARIES /variable/CMAKE_STATIC_LIBRARY_PREFIX /variable/CMAKE_STATIC_LIBRARY_SUFFIX /variable/CMAKE_TOOLCHAIN_FILE @@ -281,6 +280,7 @@ Variables that Control the Build /variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG /variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG /variable/CMAKE_MODULE_LINKER_FLAGS + /variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX /variable/CMAKE_NO_BUILTIN_CHRPATH /variable/CMAKE_NO_SYSTEM_FROM_IMPORTED /variable/CMAKE_OSX_ARCHITECTURES @@ -298,6 +298,7 @@ Variables that Control the Build /variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG /variable/CMAKE_STATIC_LINKER_FLAGS /variable/CMAKE_TRY_COMPILE_CONFIGURATION + /variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES /variable/CMAKE_TRY_COMPILE_TARGET_TYPE /variable/CMAKE_USE_RELATIVE_PATHS /variable/CMAKE_VISIBILITY_INLINES_HIDDEN @@ -365,6 +366,8 @@ Variables for Languages /variable/CMAKE_LANG_SIMULATE_VERSION /variable/CMAKE_LANG_SIZEOF_DATA_PTR /variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS + /variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES + /variable/CMAKE_LANG_STANDARD_LIBRARIES /variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG Variables for CTest diff --git a/Help/manual/ctest.1.rst b/Help/manual/ctest.1.rst index 1179f56..e797333 100644 --- a/Help/manual/ctest.1.rst +++ b/Help/manual/ctest.1.rst @@ -589,6 +589,11 @@ Configuration settings to specify the version control tool include: * `CTest Script`_ variable: :variable:`CTEST_GIT_COMMAND` * :module:`CTest` module variable: ``GITCOMMAND`` + The source tree is updated by ``git fetch`` followed by + ``git reset --hard`` to the ``FETCH_HEAD``. The result is the same + as ``git pull`` except that any local moficiations are overwritten. + Use ``GITUpdateCustom`` to specify a different approach. + ``GITInitSubmodules`` If set, CTest will update the repository's submodules before updating. diff --git a/Help/prop_dir/VS_STARTUP_PROJECT.rst b/Help/prop_dir/VS_STARTUP_PROJECT.rst index edd4832..04441b6 100644 --- a/Help/prop_dir/VS_STARTUP_PROJECT.rst +++ b/Help/prop_dir/VS_STARTUP_PROJECT.rst @@ -3,10 +3,16 @@ VS_STARTUP_PROJECT Specify the default startup project in a Visual Studio solution. +The :ref:`Visual Studio Generators` create a ``.sln`` file for each directory +whose ``CMakeLists.txt`` file calls the :command:`project` command. Set this +property in the same directory as a :command:`project` command call (e.g. in +the top-level ``CMakeLists.txt`` file) to specify the default startup project +for the correpsonding solution file. + The property must be set to the name of an existing target. This will cause that project to be listed first in the generated solution file causing Visual Studio to make it the startup project if the solution has never been opened before. -If this property is not specified, then the "ALL_BUILD" project +If this property is not specified, then the ``ALL_BUILD`` project will be the default. diff --git a/Help/prop_tgt/CXX_EXTENSIONS.rst b/Help/prop_tgt/CXX_EXTENSIONS.rst index 0f547e2..280bb3a 100644 --- a/Help/prop_tgt/CXX_EXTENSIONS.rst +++ b/Help/prop_tgt/CXX_EXTENSIONS.rst @@ -6,7 +6,8 @@ Boolean specifying whether compiler specific extensions are requested. This property specifies whether compiler specific extensions should be used. For some compilers, this results in adding a flag such as ``-std=gnu++11`` instead of ``-std=c++11`` to the compile line. This -property is ``ON`` by default. +property is ``ON`` by default. The basic C++ standard level is +controlled by the :prop_tgt:`CXX_STANDARD` target property. See the :manual:`cmake-compile-features(7)` manual for information on compile features and a list of supported compilers. diff --git a/Help/prop_tgt/CXX_STANDARD.rst b/Help/prop_tgt/CXX_STANDARD.rst index edc9ba5..5b186c1 100644 --- a/Help/prop_tgt/CXX_STANDARD.rst +++ b/Help/prop_tgt/CXX_STANDARD.rst @@ -22,6 +22,8 @@ with a compiler which does not support ``-std=gnu++11`` or an equivalent flag will not result in an error or warning, but will instead add the ``-std=gnu++98`` flag if supported. This "decay" behavior may be controlled with the :prop_tgt:`CXX_STANDARD_REQUIRED` target property. +Additionally, the :prop_tgt:`CXX_EXTENSIONS` target property may be used to +control whether compiler-specific extensions are enabled on a per-target basis. See the :manual:`cmake-compile-features(7)` manual for information on compile features and a list of supported compilers. diff --git a/Help/prop_tgt/C_EXTENSIONS.rst b/Help/prop_tgt/C_EXTENSIONS.rst index fce67f4..05b14ce 100644 --- a/Help/prop_tgt/C_EXTENSIONS.rst +++ b/Help/prop_tgt/C_EXTENSIONS.rst @@ -6,7 +6,8 @@ Boolean specifying whether compiler specific extensions are requested. This property specifies whether compiler specific extensions should be used. For some compilers, this results in adding a flag such as ``-std=gnu11`` instead of ``-std=c11`` to the compile line. This -property is ``ON`` by default. +property is ``ON`` by default. The basic C standard level is +controlled by the :prop_tgt:`C_STANDARD` target property. See the :manual:`cmake-compile-features(7)` manual for information on compile features and a list of supported compilers. diff --git a/Help/prop_tgt/C_STANDARD.rst b/Help/prop_tgt/C_STANDARD.rst index 5e36821..815a686 100644 --- a/Help/prop_tgt/C_STANDARD.rst +++ b/Help/prop_tgt/C_STANDARD.rst @@ -22,6 +22,8 @@ with a compiler which does not support ``-std=gnu11`` or an equivalent flag will not result in an error or warning, but will instead add the ``-std=gnu99`` or ``-std=gnu90`` flag if supported. This "decay" behavior may be controlled with the :prop_tgt:`C_STANDARD_REQUIRED` target property. +Additionally, the :prop_tgt:`C_EXTENSIONS` target property may be used to +control whether compiler-specific extensions are enabled on a per-target basis. See the :manual:`cmake-compile-features(7)` manual for information on compile features and a list of supported compilers. diff --git a/Help/prop_tgt/FRAMEWORK.rst b/Help/prop_tgt/FRAMEWORK.rst index 6c212c3..8120c36 100644 --- a/Help/prop_tgt/FRAMEWORK.rst +++ b/Help/prop_tgt/FRAMEWORK.rst @@ -26,6 +26,10 @@ Example of creation ``dynamicFramework``: FRAMEWORK_VERSION C MACOSX_FRAMEWORK_IDENTIFIER com.cmake.dynamicFramework MACOSX_FRAMEWORK_INFO_PLIST Info.plist + # "current version" in semantic format in Mach-O binary file + VERSION 16.4.0 + # "compatibility version" in semantic format in Mach-O binary file + SOVERSION 1.0.0 PUBLIC_HEADER dynamicFramework.h XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer" ) diff --git a/Help/prop_tgt/SOVERSION.rst b/Help/prop_tgt/SOVERSION.rst index 672ff23..82b6b97 100644 --- a/Help/prop_tgt/SOVERSION.rst +++ b/Help/prop_tgt/SOVERSION.rst @@ -3,12 +3,25 @@ SOVERSION What version number is this target. -For shared libraries VERSION and SOVERSION can be used to specify the -build version and API version respectively. When building or +For shared libraries :prop_tgt:`VERSION` and ``SOVERSION`` can be used to +specify the build version and API version respectively. When building or installing appropriate symlinks are created if the platform supports symlinks and the linker supports so-names. If only one of both is specified the missing is assumed to have the same version number. -SOVERSION is ignored if NO_SONAME property is set. For shared -libraries and executables on Windows the VERSION attribute is parsed -to extract a "major.minor" version number. These numbers are used as -the image version of the binary. +``SOVERSION`` is ignored if :prop_tgt:`NO_SONAME` property is set. + +Windows Versions +^^^^^^^^^^^^^^^^ + +For shared libraries and executables on Windows the :prop_tgt:`VERSION` +attribute is parsed to extract a ``<major>.<minor>`` version number. +These numbers are used as the image version of the binary. + +Mach-O Versions +^^^^^^^^^^^^^^^ + +For shared libraries and executables on Mach-O systems (e.g. OS X, iOS), +the ``SOVERSION`` property corresponds to *compatibility version* and +:prop_tgt:`VERSION` to *current version*. See the :prop_tgt:`FRAMEWORK` target +property for an example. Versions of Mach-O binaries may be checked with the +``otool -L <binary>`` command. diff --git a/Help/prop_tgt/VERSION.rst b/Help/prop_tgt/VERSION.rst index 87f6c49..66e7bde 100644 --- a/Help/prop_tgt/VERSION.rst +++ b/Help/prop_tgt/VERSION.rst @@ -3,14 +3,27 @@ VERSION What version number is this target. -For shared libraries VERSION and SOVERSION can be used to specify the -build version and API version respectively. When building or +For shared libraries ``VERSION`` and :prop_tgt:`SOVERSION` can be used +to specify the build version and API version respectively. When building or installing appropriate symlinks are created if the platform supports symlinks and the linker supports so-names. If only one of both is specified the missing is assumed to have the same version number. For -executables VERSION can be used to specify the build version. When +executables ``VERSION`` can be used to specify the build version. When building or installing appropriate symlinks are created if the -platform supports symlinks. For shared libraries and executables on -Windows the VERSION attribute is parsed to extract a "major.minor" -version number. These numbers are used as the image version of the -binary. +platform supports symlinks. + +Windows Versions +^^^^^^^^^^^^^^^^ + +For shared libraries and executables on Windows the ``VERSION`` +attribute is parsed to extract a ``<major>.<minor>`` version number. +These numbers are used as the image version of the binary. + +Mach-O Versions +^^^^^^^^^^^^^^^ + +For shared libraries and executables on Mach-O systems (e.g. OS X, iOS), +the :prop_tgt:`SOVERSION` property correspond to *compatibility version* and +``VERSION`` to *current version*. See the :prop_tgt:`FRAMEWORK` target +property for an example. Versions of Mach-O binaries may be checked with the +``otool -L <binary>`` command. diff --git a/Help/release/3.6.rst b/Help/release/3.6.rst new file mode 100644 index 0000000..771c9dd --- /dev/null +++ b/Help/release/3.6.rst @@ -0,0 +1,310 @@ +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 initalized 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 :module:`CPackDeb` module learned how to handle ``$ORIGIN`` + in ``CMAKE_INSTALL_RPATH`` when :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS` + is used for dependency auto detection. + +* The :module:`CPackDeb` module learned how to generate ``DEBIAN/shlibs`` + contorl file when package contains shared libraries. + +* The :module:`CPackDeb` module 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 :module:`CPackDeb` module 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 :module:`CPackDeb` module 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 :module:`CPackDeb` module 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 :module:`CPackDeb` module learned how to set the package architecture + per-component. See :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE`. + +* The :module:`CPackDMG` module learned a new option to tell the CPack + ``DragNDrop`` generaor 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 :module:`CPackRPM` module 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 :module:`CPackRPM` module 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 :module:`CPackRPM` module 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 :module:`CPackRPM` module 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:`;-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 :module:`CPackRPM` module 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. diff --git a/Help/release/dev/0-sample-topic.rst b/Help/release/dev/0-sample-topic.rst deleted file mode 100644 index e4cc01e..0000000 --- a/Help/release/dev/0-sample-topic.rst +++ /dev/null @@ -1,7 +0,0 @@ -0-sample-topic --------------- - -* This is a sample release note for the change in a topic. - Developers should add similar notes for each topic branch - making a noteworthy change. Each document should be named - and titled to match the topic name to avoid merge conflicts. diff --git a/Help/release/dev/CMakePushCheckState-CMAKE_EXTRA_INCLUDE_FILES.rst b/Help/release/dev/CMakePushCheckState-CMAKE_EXTRA_INCLUDE_FILES.rst deleted file mode 100644 index a4e9a14..0000000 --- a/Help/release/dev/CMakePushCheckState-CMAKE_EXTRA_INCLUDE_FILES.rst +++ /dev/null @@ -1,5 +0,0 @@ -CMakePushCheckState-CMAKE_EXTRA_INCLUDE_FILE --------------------------------------------- - -* The :module:`CMakePushCheckState` module now pushes/pops/resets the variable - ``CMAKE_EXTRA_INCLUDE_FILE`` used in :module:`CheckTypeSize`. diff --git a/Help/release/dev/ExternalProject-git-clone-shallow.rst b/Help/release/dev/ExternalProject-git-clone-shallow.rst deleted file mode 100644 index f06fe34..0000000 --- a/Help/release/dev/ExternalProject-git-clone-shallow.rst +++ /dev/null @@ -1,5 +0,0 @@ -ExternalProject-git-clone-shallow ---------------------------------- - -* The :module:`ExternalProject` module leared the ``GIT_SHALLOW 1`` - option to perform a shallow clone of a Git repository. diff --git a/Help/release/dev/ExternalProject-git-recursive-init.rst b/Help/release/dev/ExternalProject-git-recursive-init.rst deleted file mode 100644 index 1ebcced..0000000 --- a/Help/release/dev/ExternalProject-git-recursive-init.rst +++ /dev/null @@ -1,7 +0,0 @@ -ExternalProject-git-recursive-init ----------------------------------- - -* 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 initalized and - updated. diff --git a/Help/release/dev/FindGTest-depends.rst b/Help/release/dev/FindGTest-depends.rst deleted file mode 100644 index 33c1489..0000000 --- a/Help/release/dev/FindGTest-depends.rst +++ /dev/null @@ -1,6 +0,0 @@ -FindGTest-depends ------------------ - -* 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. diff --git a/Help/release/dev/FindPkgConfig-targets.rst b/Help/release/dev/FindPkgConfig-targets.rst deleted file mode 100644 index b18cb7b..0000000 --- a/Help/release/dev/FindPkgConfig-targets.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindPkgConfig-targets ---------------------- - -* The :module:`FindPkgConfig` module learned to optionally create imported - targets for the libraries it has found. diff --git a/Help/release/dev/FindProtobuf-variable-case.rst b/Help/release/dev/FindProtobuf-variable-case.rst deleted file mode 100644 index 0df00e7..0000000 --- a/Help/release/dev/FindProtobuf-variable-case.rst +++ /dev/null @@ -1,7 +0,0 @@ -FindProtobuf-variable-case --------------------------- - -* 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. diff --git a/Help/release/dev/FindProtobuf-version.rst b/Help/release/dev/FindProtobuf-version.rst deleted file mode 100644 index 40c2ff5..0000000 --- a/Help/release/dev/FindProtobuf-version.rst +++ /dev/null @@ -1,6 +0,0 @@ -FindProtobuf-version --------------------- - -* The :module:`FindProtobuf` module learned to provide a ``Protobuf_VERSION`` - variable and check the version number requested in a :command:`find_package` - call. diff --git a/Help/release/dev/InstallRequiredSystemLibraries-Windows-UCRT.rst b/Help/release/dev/InstallRequiredSystemLibraries-Windows-UCRT.rst deleted file mode 100644 index e52531d..0000000 --- a/Help/release/dev/InstallRequiredSystemLibraries-Windows-UCRT.rst +++ /dev/null @@ -1,6 +0,0 @@ -InstallRequiredSystemLibraries-Windows-UCRT -------------------------------------------- - -* 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. diff --git a/Help/release/dev/add-FindLTTngUST.rst b/Help/release/dev/add-FindLTTngUST.rst deleted file mode 100644 index a156cc8..0000000 --- a/Help/release/dev/add-FindLTTngUST.rst +++ /dev/null @@ -1,5 +0,0 @@ -add-FindLTTngUST ----------------- - -* The :module:`FindLTTngUST` module was introduced to find the LTTng-UST - library. diff --git a/Help/release/dev/add-bruce-c.rst b/Help/release/dev/add-bruce-c.rst deleted file mode 100644 index 9e47900..0000000 --- a/Help/release/dev/add-bruce-c.rst +++ /dev/null @@ -1,4 +0,0 @@ -add-bruce-c ------------ - -* Support was added for the Bruce C Compiler with compiler id ``Bruce``. diff --git a/Help/release/dev/automoc-diagnostics.rst b/Help/release/dev/automoc-diagnostics.rst deleted file mode 100644 index d89f2e1..0000000 --- a/Help/release/dev/automoc-diagnostics.rst +++ /dev/null @@ -1,6 +0,0 @@ -automoc-diagnostics -------------------- - -* :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). diff --git a/Help/release/dev/clang-tidy.rst b/Help/release/dev/clang-tidy.rst deleted file mode 100644 index 030a7c9..0000000 --- a/Help/release/dev/clang-tidy.rst +++ /dev/null @@ -1,7 +0,0 @@ -clang-tidy ----------- - -* 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. diff --git a/Help/release/dev/cmake-depend-in-project-only.rst b/Help/release/dev/cmake-depend-in-project-only.rst deleted file mode 100644 index 8553e80..0000000 --- a/Help/release/dev/cmake-depend-in-project-only.rst +++ /dev/null @@ -1,6 +0,0 @@ -cmake-depend-in-project-only ----------------------------- - -* The :ref:`Makefile Generators` learned to optionally limit dependency - scanning only to files in the project source and build trees. - See the :variable:`CMAKE_DEPENDS_IN_PROJECT_ONLY` variable. diff --git a/Help/release/dev/cmake-host-solaris.rst b/Help/release/dev/cmake-host-solaris.rst deleted file mode 100644 index da7ab89..0000000 --- a/Help/release/dev/cmake-host-solaris.rst +++ /dev/null @@ -1,5 +0,0 @@ -cmake-host-solaris ------------------- - -* A new :variable:`CMAKE_HOST_SOLARIS` variable was introduced to - indicate when CMake is running on an Oracle Solaris host. diff --git a/Help/release/dev/cpack-deb-autodep-ORIGIN-RPATH.rst b/Help/release/dev/cpack-deb-autodep-ORIGIN-RPATH.rst deleted file mode 100644 index b0d6196..0000000 --- a/Help/release/dev/cpack-deb-autodep-ORIGIN-RPATH.rst +++ /dev/null @@ -1,6 +0,0 @@ -cpack-deb-autodep-ORIGIN-RPATH --------------------------------- - -* The "CPackDeb" module learned how to handle ``$ORIGIN`` - in ``CMAKE_INSTALL_RPATH`` when :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS` - is used for dependency auto detection. diff --git a/Help/release/dev/cpack-deb-imporvements.rst b/Help/release/dev/cpack-deb-imporvements.rst deleted file mode 100644 index 4fd35b8..0000000 --- a/Help/release/dev/cpack-deb-imporvements.rst +++ /dev/null @@ -1,27 +0,0 @@ -cpack-deb-imporvements ----------------------- - -* The :module:`CPackDeb` module learned how to generate ``DEBIAN/shlibs`` - contorl file when package contains shared libraries. - -* The :module:`CPackDeb` module 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 :module:`CPackDeb` module learned how to generate dependencies between - Debian packages if multi-component setup is used and - :variable:`CPACK_COMPONENT_<compName>_DEPENDS` variables are set. - This breaks compatibility with previous versions. - -* The :module:`CPackDeb` module learned how to set the package release number - (``DebianRevisionNumber`` in package file name). See - :variable:`CPACK_DEBIAN_PACKAGE_RELEASE`. - -* The :module:`CPackDeb` module now generates properly-named Debian packages:: - - <PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb - - This breaks compatibility with previous versions. - -* The :module:`CPackDeb` module learned how to set the package architecture - per-component. See :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE`. diff --git a/Help/release/dev/cpack-rpm-adding-dist-to-release-tag.rst b/Help/release/dev/cpack-rpm-adding-dist-to-release-tag.rst deleted file mode 100644 index 42599a9..0000000 --- a/Help/release/dev/cpack-rpm-adding-dist-to-release-tag.rst +++ /dev/null @@ -1,7 +0,0 @@ -cpack-rpm-adding-dist-to-release-tag ------------------------------------- - -* The :module:`CPackRPM` module 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`. diff --git a/Help/release/dev/cpack-rpm-default-user-and-group.rst b/Help/release/dev/cpack-rpm-default-user-and-group.rst deleted file mode 100644 index 7667c7f..0000000 --- a/Help/release/dev/cpack-rpm-default-user-and-group.rst +++ /dev/null @@ -1,9 +0,0 @@ -cpack-rpm-default-user-and-group --------------------------------- - -* The "CPackRPM" module 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. diff --git a/Help/release/dev/cpack-rpm-different-package-names.rst b/Help/release/dev/cpack-rpm-different-package-names.rst deleted file mode 100644 index 48679e1..0000000 --- a/Help/release/dev/cpack-rpm-different-package-names.rst +++ /dev/null @@ -1,9 +0,0 @@ -cpack-rpm-different-package-names ---------------------------------- - -* The :module:`CPackRPM` module 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`. diff --git a/Help/release/dev/cpack-rpm-external-symlink-handling.rst b/Help/release/dev/cpack-rpm-external-symlink-handling.rst deleted file mode 100644 index ff74e1d..0000000 --- a/Help/release/dev/cpack-rpm-external-symlink-handling.rst +++ /dev/null @@ -1,5 +0,0 @@ -cpack-rpm-external-symlink-handling ------------------------------------ - -* The "CPackRPM" module learned how to correctly handle symlinks - that are pointing outside generated packages. diff --git a/Help/release/dev/cpack-rpm-upper-cased-components.rst b/Help/release/dev/cpack-rpm-upper-cased-components.rst deleted file mode 100644 index 0628170..0000000 --- a/Help/release/dev/cpack-rpm-upper-cased-components.rst +++ /dev/null @@ -1,15 +0,0 @@ -cpack-rpm-upper-cased-components --------------------------------- - -* The "CPackRPM" module now supports upper cased component name - 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. diff --git a/Help/release/dev/ctest-run-submodule-sync.rst b/Help/release/dev/ctest-run-submodule-sync.rst deleted file mode 100644 index c41cc2f..0000000 --- a/Help/release/dev/ctest-run-submodule-sync.rst +++ /dev/null @@ -1,9 +0,0 @@ -ctest-run-submodule-sync ------------------------- - -* 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. diff --git a/Help/release/dev/custom-command-CROSSCOMPILING_EMULATOR.rst b/Help/release/dev/custom-command-CROSSCOMPILING_EMULATOR.rst deleted file mode 100644 index 390463e..0000000 --- a/Help/release/dev/custom-command-CROSSCOMPILING_EMULATOR.rst +++ /dev/null @@ -1,6 +0,0 @@ -custom-command-CROSSCOMPILING_EMULATOR --------------------------------------- - -* The :command:`add_custom_command` and :command:`add_custom_target` commands - learned how to use the :prop_tgt:`CROSSCOMPILING_EMULATOR` executable - target property. diff --git a/Help/release/dev/cygwin-clang.rst b/Help/release/dev/cygwin-clang.rst deleted file mode 100644 index 7d06d2a..0000000 --- a/Help/release/dev/cygwin-clang.rst +++ /dev/null @@ -1,4 +0,0 @@ -cygwin-clang ------------- - -* The Clang compiler is now supported on CYGWIN. diff --git a/Help/release/dev/deprecate-CMakeForceCompiler.rst b/Help/release/dev/deprecate-CMakeForceCompiler.rst deleted file mode 100644 index dc6e817..0000000 --- a/Help/release/dev/deprecate-CMakeForceCompiler.rst +++ /dev/null @@ -1,5 +0,0 @@ -deprecate-CMakeForceCompiler ----------------------------- - -* The :module:`CMakeForceCompiler` module and its macros are now deprecated. - See module documentation for an explanation. diff --git a/Help/release/dev/enable-ssl-automatically.rst b/Help/release/dev/enable-ssl-automatically.rst deleted file mode 100644 index 8ded656..0000000 --- a/Help/release/dev/enable-ssl-automatically.rst +++ /dev/null @@ -1,8 +0,0 @@ -enable-ssl-automatically ------------------------- - -* 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`. diff --git a/Help/release/dev/ep-tls-verify-git.rst b/Help/release/dev/ep-tls-verify-git.rst deleted file mode 100644 index 3c727de..0000000 --- a/Help/release/dev/ep-tls-verify-git.rst +++ /dev/null @@ -1,5 +0,0 @@ -ep-tls-verify-git ------------------ - -* The :module:`ExternalProject` module now uses ``TLS_VERIFY`` when fetching - from git repositories. diff --git a/Help/release/dev/error-multiple-targets.rst b/Help/release/dev/error-multiple-targets.rst deleted file mode 100644 index 060b26b..0000000 --- a/Help/release/dev/error-multiple-targets.rst +++ /dev/null @@ -1,6 +0,0 @@ -error-multiple-targets ----------------------- - -* 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. diff --git a/Help/release/dev/external-project-no-extract.rst b/Help/release/dev/external-project-no-extract.rst deleted file mode 100644 index b3293cd..0000000 --- a/Help/release/dev/external-project-no-extract.rst +++ /dev/null @@ -1,6 +0,0 @@ -external-project-no-extract ---------------------------- - -* 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). diff --git a/Help/release/dev/find-blas-lapack-OpenBLAS.rst b/Help/release/dev/find-blas-lapack-OpenBLAS.rst deleted file mode 100644 index 893422a..0000000 --- a/Help/release/dev/find-blas-lapack-OpenBLAS.rst +++ /dev/null @@ -1,5 +0,0 @@ -find-blas-lapack-OpenBLAS -------------------------- - -* The :module:`FindBLAS` and :module:`FindLAPACK` modules learned to - support `OpenBLAS <http://www.openblas.net>`__. diff --git a/Help/release/dev/find-command-prefix-from-PATH-windows-only.rst b/Help/release/dev/find-command-prefix-from-PATH-windows-only.rst deleted file mode 100644 index be6eb3e..0000000 --- a/Help/release/dev/find-command-prefix-from-PATH-windows-only.rst +++ /dev/null @@ -1,12 +0,0 @@ -find-command-prefix-from-PATH-windows-only ------------------------------------------- - -* 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:`;-list <CMake Language Lists>` of prefixes that are - to be searched. diff --git a/Help/release/dev/fix-bison-flex-command-escaping.rst b/Help/release/dev/fix-bison-flex-command-escaping.rst deleted file mode 100644 index dc2e87b..0000000 --- a/Help/release/dev/fix-bison-flex-command-escaping.rst +++ /dev/null @@ -1,12 +0,0 @@ -fix-bison-flex-command-escaping -------------------------------- - -* 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. diff --git a/Help/release/dev/install-EXCLUDE_FROM_ALL.rst b/Help/release/dev/install-EXCLUDE_FROM_ALL.rst deleted file mode 100644 index a611eae..0000000 --- a/Help/release/dev/install-EXCLUDE_FROM_ALL.rst +++ /dev/null @@ -1,5 +0,0 @@ -install-EXCLUDE_FROM_ALL ------------------------- - -* The :command:`install` command learned a new ``EXCLUDE_FROM_ALL`` option - to leave installation rules out of the default installation. diff --git a/Help/release/dev/intel-compiler-features.rst b/Help/release/dev/intel-compiler-features.rst deleted file mode 100644 index f154dc9..0000000 --- a/Help/release/dev/intel-compiler-features.rst +++ /dev/null @@ -1,6 +0,0 @@ -intel-compiler-features ------------------------ - -* 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. diff --git a/Help/release/dev/list-FILTER-command.rst b/Help/release/dev/list-FILTER-command.rst deleted file mode 100644 index 3fee4f0..0000000 --- a/Help/release/dev/list-FILTER-command.rst +++ /dev/null @@ -1,5 +0,0 @@ -list-FILTER-command -------------------- - -* The :command:`list` command gained a ``FILTER`` sub-command to filter - list elements by regular expression. diff --git a/Help/release/dev/ninja-depfile-system-headers.rst b/Help/release/dev/ninja-depfile-system-headers.rst deleted file mode 100644 index 7033cef..0000000 --- a/Help/release/dev/ninja-depfile-system-headers.rst +++ /dev/null @@ -1,5 +0,0 @@ -ninja-depfile-system-headers ----------------------------- - -* The :generator:`Ninja` generator now includes system header files in build - dependencies to ensure correct re-builds when system packages are updated. diff --git a/Help/release/dev/ninja-directory-targets.rst b/Help/release/dev/ninja-directory-targets.rst deleted file mode 100644 index 4826228..0000000 --- a/Help/release/dev/ninja-directory-targets.rst +++ /dev/null @@ -1,7 +0,0 @@ -ninja-directory-targets ------------------------ - -* 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`. diff --git a/Help/release/dev/remove-vs6-generator.rst b/Help/release/dev/remove-vs6-generator.rst deleted file mode 100644 index 921b93a..0000000 --- a/Help/release/dev/remove-vs6-generator.rst +++ /dev/null @@ -1,4 +0,0 @@ -remove-vs6-generator --------------------- - -* The :generator:`Visual Studio 6` generator has been removed. diff --git a/Help/release/dev/remove-vs7.0-generator.rst b/Help/release/dev/remove-vs7.0-generator.rst deleted file mode 100644 index 314bef9..0000000 --- a/Help/release/dev/remove-vs7.0-generator.rst +++ /dev/null @@ -1,5 +0,0 @@ -remove-vs7.0-generator ----------------------- - -* The :generator:`Visual Studio 7` generator (for VS .NET 2002) has been - removed. diff --git a/Help/release/dev/timeout_after_match.rst b/Help/release/dev/timeout_after_match.rst deleted file mode 100644 index 83f316d..0000000 --- a/Help/release/dev/timeout_after_match.rst +++ /dev/null @@ -1,6 +0,0 @@ -timeout_after_match -------------------- - -* CTest learned to optionally enforce a secondary timeout after matching - certain output from a test. See the :prop_test:`TIMEOUT_AFTER_MATCH` test - property. diff --git a/Help/release/dev/try_compile-config-flags.rst b/Help/release/dev/try_compile-config-flags.rst deleted file mode 100644 index 7e5e461..0000000 --- a/Help/release/dev/try_compile-config-flags.rst +++ /dev/null @@ -1,7 +0,0 @@ -try_compile-config-flags ------------------------- - -* 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. diff --git a/Help/release/dev/try_compile-target-type.rst b/Help/release/dev/try_compile-target-type.rst deleted file mode 100644 index cc41bf3..0000000 --- a/Help/release/dev/try_compile-target-type.rst +++ /dev/null @@ -1,8 +0,0 @@ -try_compile-target-type ------------------------ - -* The :command:`try_compile` command learned to check a new - :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable to optionally - build a static library instead of an executable. This is useful - for cross-compiling toolchains that cannot link binaries without - custom flags or scripts. diff --git a/Help/release/dev/unix-timestamps.rst b/Help/release/dev/unix-timestamps.rst deleted file mode 100644 index cdb0e5b..0000000 --- a/Help/release/dev/unix-timestamps.rst +++ /dev/null @@ -1,6 +0,0 @@ -unix-timestamps ---------------- - -* 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. diff --git a/Help/release/dev/update-osx-release.rst b/Help/release/dev/update-osx-release.rst deleted file mode 100644 index 7634c05..0000000 --- a/Help/release/dev/update-osx-release.rst +++ /dev/null @@ -1,5 +0,0 @@ -update-osx-release ------------------- - -* The precompiled OS X binary provided on ``cmake.org`` now requires - OS X 10.7 or newer. diff --git a/Help/release/dev/vs-clang-cl.rst b/Help/release/dev/vs-clang-cl.rst deleted file mode 100644 index ac09188..0000000 --- a/Help/release/dev/vs-clang-cl.rst +++ /dev/null @@ -1,5 +0,0 @@ -vs-clang-cl ------------ - -* The :generator:`Visual Studio 14 2015` generator learned to support the - Clang/C2 toolsets, e.g. with the ``-T v140_clang_3_7`` option. diff --git a/Help/release/dev/vs-remote-directory.rst b/Help/release/dev/vs-remote-directory.rst deleted file mode 100644 index 194236d..0000000 --- a/Help/release/dev/vs-remote-directory.rst +++ /dev/null @@ -1,7 +0,0 @@ -vs-remote-directory -------------------- - -* The :generator:`Visual Studio 9 2008` and :generator:`Visual Studio 8 2005` - generators learned to generate the remote directory for WinCE project - deployment and debugger settings. See the - :prop_tgt:`DEPLOYMENT_REMOTE_DIRECTORY` target property. diff --git a/Help/release/dev/vs-startup-project.rst b/Help/release/dev/vs-startup-project.rst deleted file mode 100644 index f467400..0000000 --- a/Help/release/dev/vs-startup-project.rst +++ /dev/null @@ -1,6 +0,0 @@ -vs-startup-project ------------------- - -* The :ref:`Visual Studio Generators` learned to honor a new - :prop_dir:`VS_STARTUP_PROJECT` directory property that specifies - the default startup project for generated solutions (``.sln`` files). diff --git a/Help/release/dev/vs-vcxproj-ConfigurationType.rst b/Help/release/dev/vs-vcxproj-ConfigurationType.rst deleted file mode 100644 index 46d05b4..0000000 --- a/Help/release/dev/vs-vcxproj-ConfigurationType.rst +++ /dev/null @@ -1,6 +0,0 @@ -vs-vcxproj-ConfigurationType ----------------------------- - -* :ref:`Visual Studio Generators` for VS 2010 and above learned a new - :prop_tgt:`VS_CONFIGURATION_TYPE` target property to specify a custom - project file type. diff --git a/Help/release/dev/vs71-deprecate.rst b/Help/release/dev/vs71-deprecate.rst deleted file mode 100644 index 1946304..0000000 --- a/Help/release/dev/vs71-deprecate.rst +++ /dev/null @@ -1,5 +0,0 @@ -vs71-deprecate --------------- - -* The :generator:`Visual Studio 7 .NET 2003` generator is now - deprecated and will be removed in a future version of CMake. diff --git a/Help/release/index.rst b/Help/release/index.rst index 7ecf910..92c3b63 100644 --- a/Help/release/index.rst +++ b/Help/release/index.rst @@ -5,14 +5,13 @@ CMake Release Notes This file should include the adjacent "dev.txt" file in development versions but not in release versions. -.. include:: dev.txt - Releases ======== .. toctree:: :maxdepth: 1 + 3.6 <3.6> 3.5 <3.5> 3.4 <3.4> 3.3 <3.3> diff --git a/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst b/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst new file mode 100644 index 0000000..c8e3d57 --- /dev/null +++ b/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst @@ -0,0 +1,14 @@ +CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES +----------------------------------------- + +Include directories to be used for every source file compiled with +the ``<LANG>`` compiler. This is meant for specification of system +include directories needed by the language for the current platform. +The directories always appear at the end of the include path passed +to the compiler. + +This variable should not be set by project code. It is meant to be set by +CMake's platform information modules for the current toolchain, or by a +toolchain file when used with :variable:`CMAKE_TOOLCHAIN_FILE`. + +See also :variable:`CMAKE_<LANG>_STANDARD_LIBRARIES`. diff --git a/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst b/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst new file mode 100644 index 0000000..ba6df93 --- /dev/null +++ b/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst @@ -0,0 +1,12 @@ +CMAKE_<LANG>_STANDARD_LIBRARIES +------------------------------- + +Libraries linked into every executable and shared library linked +for language ``<LANG>``. This is meant for specification of system +libraries needed by the language for the current platform. + +This variable should not be set by project code. It is meant to be set by +CMake's platform information modules for the current toolchain, or by a +toolchain file when used with :variable:`CMAKE_TOOLCHAIN_FILE`. + +See also :variable:`CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES`. diff --git a/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst b/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst new file mode 100644 index 0000000..64091aa --- /dev/null +++ b/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst @@ -0,0 +1,27 @@ +CMAKE_NINJA_OUTPUT_PATH_PREFIX +------------------------------ + +Set output files path prefix for the :generator:`Ninja` generator. + +Every output files listed in the generated ``build.ninja`` will be +prefixed by the contents of this variable (a trailing slash is +appended if missing). This is useful when the generated ninja file is +meant to be embedded as a ``subninja`` file into a *super* ninja +project. For example, a ninja build file generated with a command +like:: + + cd top-build-dir/sub && + cmake -G Ninja -DCMAKE_NINJA_OUTPUT_PATH_PREFIX=sub/ path/to/source + +can be embedded in ``top-build-dir/build.ninja`` with a directive like +this:: + + subninja sub/build.ninja + +The ``auto-regeneration`` rule in ``top-build-dir/build.ninja`` must have an +order-only dependency on ``sub/build.ninja``. + +.. note:: + When ``CMAKE_NINJA_OUTPUT_PATH_PREFIX`` is set, the project generated + by CMake cannot be used as a standalone project. No default targets + are specified. diff --git a/Help/variable/CMAKE_STANDARD_LIBRARIES.rst b/Help/variable/CMAKE_STANDARD_LIBRARIES.rst deleted file mode 100644 index 9c728cd..0000000 --- a/Help/variable/CMAKE_STANDARD_LIBRARIES.rst +++ /dev/null @@ -1,7 +0,0 @@ -CMAKE_STANDARD_LIBRARIES ------------------------- - -Libraries linked into every executable and shared library. - -This is the list of libraries that are linked into all executables and -libraries. diff --git a/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst b/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst new file mode 100644 index 0000000..0f96787 --- /dev/null +++ b/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst @@ -0,0 +1,26 @@ +CMAKE_TRY_COMPILE_PLATFORM_VARIABLES +------------------------------------ + +List of variables that the :command:`try_compile` command source file signature +must propagate into the test project in order to target the same platform as +the host project. + +This variable should not be set by project code. It is meant to be set by +CMake's platform information modules for the current toolchain, or by a +toolchain file when used with :variable:`CMAKE_TOOLCHAIN_FILE`. + +Variables meaningful to CMake, such as :variable:`CMAKE_<LANG>_FLAGS`, are +propagated automatically. The ``CMAKE_TRY_COMPILE_PLATFORM_VARIABLES`` +variable may be set to pass custom variables meaningful to a toolchain file. +For example, a toolchain file may contain: + +.. code-block:: cmake + + set(CMAKE_SYSTEM_NAME ...) + set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES MY_CUSTOM_VARIABLE) + # ... use MY_CUSTOM_VARIABLE ... + +If a user passes ``-DMY_CUSTOM_VARIABLE=SomeValue`` to CMake then this +setting will be made visible to the toolchain file both for the main +project and for test projects generated by the :command:`try_compile` +command source file signature. |