summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
Diffstat (limited to 'Help')
-rw-r--r--Help/command/add_custom_command.rst7
-rw-r--r--Help/command/cmake_minimum_required.rst2
-rw-r--r--Help/command/get_target_property.rst2
-rw-r--r--Help/command/if.rst9
-rw-r--r--Help/command/install.rst23
-rw-r--r--Help/command/list.rst13
-rw-r--r--Help/manual/cmake-buildsystem.7.rst2
-rw-r--r--Help/manual/cmake-developer.7.rst2
-rw-r--r--Help/manual/cmake-modules.7.rst1
-rw-r--r--Help/manual/cmake-variables.7.rst1
-rw-r--r--Help/manual/cmake.1.rst3
-rw-r--r--Help/module/FindXalanC.rst1
-rw-r--r--Help/policy/CMP0040.rst19
-rw-r--r--Help/release/3.5.rst188
-rw-r--r--Help/release/dev/CMakeParseArguments-native-impl.rst6
-rw-r--r--Help/release/dev/FindBoost-imported-targets.rst5
-rw-r--r--Help/release/dev/FindFLEX-DEFINES_FILE.rst6
-rw-r--r--Help/release/dev/FindGTK2_GTK2_TARGETS.rst7
-rw-r--r--Help/release/dev/FindGTK2_sigc++_c++11.rst7
-rw-r--r--Help/release/dev/FindGTest-imported-targets.rst4
-rw-r--r--Help/release/dev/FindOpenMP-clang.rst4
-rw-r--r--Help/release/dev/FindOpenSSL-msvc-static-rt.rst6
-rw-r--r--Help/release/dev/FindProtobuf-version.rst6
-rw-r--r--Help/release/dev/FindTIFF-imported-targets.rst4
-rw-r--r--Help/release/dev/FindXercesC-imported-targets.rst4
-rw-r--r--Help/release/dev/add-armcc-toolchain.rst4
-rw-r--r--Help/release/dev/add-cray-linux-platform.rst7
-rw-r--r--Help/release/dev/better-looking-mac-packages.rst8
-rw-r--r--Help/release/dev/cmake-E-multiple-inputs.rst11
-rw-r--r--Help/release/dev/cmake-W-options.rst22
-rw-r--r--Help/release/dev/cmake-gui-select-toolset.rst6
-rw-r--r--Help/release/dev/cpack-deb-config-file-source-field.rst6
-rw-r--r--Help/release/dev/cpack-deb-new-component-vars.rst7
-rw-r--r--Help/release/dev/cpack-dmg-multilanguage-sla.rst7
-rw-r--r--Help/release/dev/cpack-nsis-bitmap.rst6
-rw-r--r--Help/release/dev/cpack-rpm-percomponent-group-and-name.rst7
-rw-r--r--Help/release/dev/cpack-rpm-upper-cased-components.rst15
-rw-r--r--Help/release/dev/deprecate-CMakeForceCompiler.rst5
-rw-r--r--Help/release/dev/error-multiple-targets.rst6
-rw-r--r--Help/release/dev/install-DIRECTORY-genex.rst6
-rw-r--r--Help/release/dev/install-EXCLUDE_FROM_ALL.rst5
-rw-r--r--Help/release/dev/ios-universal.rst7
-rw-r--r--Help/release/dev/list-FILTER-command.rst5
-rw-r--r--Help/release/dev/mingw-clang-compile-features.rst5
-rw-r--r--Help/release/dev/regex-explorer.rst6
-rw-r--r--Help/release/dev/release-windows.rst7
-rw-r--r--Help/release/dev/vs-debug-fastlink.rst5
-rw-r--r--Help/release/dev/vs-global-properties.rst5
-rw-r--r--Help/release/index.rst1
-rw-r--r--Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst30
-rw-r--r--Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst3
51 files changed, 313 insertions, 221 deletions
diff --git a/Help/command/add_custom_command.rst b/Help/command/add_custom_command.rst
index ecbf9dd..8726b70 100644
--- a/Help/command/add_custom_command.rst
+++ b/Help/command/add_custom_command.rst
@@ -178,7 +178,7 @@ target is already built, the command will not execute.
::
- add_custom_command(TARGET target
+ add_custom_command(TARGET <target>
PRE_BUILD | PRE_LINK | POST_BUILD
COMMAND command1 [ARGS] [args1...]
[COMMAND command2 [ARGS] [args2...] ...]
@@ -188,7 +188,10 @@ target is already built, the command will not execute.
[VERBATIM] [USES_TERMINAL])
This defines a new command that will be associated with building the
-specified target. When the command will happen is determined by which
+specified ``<target>``. The ``<target>`` must be defined in the current
+directory; targets defined in other directories may not be specified.
+
+When the command will happen is determined by which
of the following is specified:
``PRE_BUILD``
diff --git a/Help/command/cmake_minimum_required.rst b/Help/command/cmake_minimum_required.rst
index 8573218..dc65a9e 100644
--- a/Help/command/cmake_minimum_required.rst
+++ b/Help/command/cmake_minimum_required.rst
@@ -5,7 +5,7 @@ Set the minimum required version of cmake for a project.
::
- cmake_minimum_required(VERSION major[.minor[.patch[.tweak]]]
+ cmake_minimum_required(VERSION major.minor[.patch[.tweak]]
[FATAL_ERROR])
If the current version of CMake is lower than that required it will
diff --git a/Help/command/get_target_property.rst b/Help/command/get_target_property.rst
index 7798252..2a72c3a 100644
--- a/Help/command/get_target_property.rst
+++ b/Help/command/get_target_property.rst
@@ -13,6 +13,6 @@ the variable ``VAR``. If the property is not found, ``VAR`` will be set to
Properties are usually used to control how a target is built, but some
query the target instead. This command can get properties for any
target so far created. The targets do not need to be in the current
-CMakeLists.txt file.
+``CMakeLists.txt`` file.
See also the more general :command:`get_property` command.
diff --git a/Help/command/if.rst b/Help/command/if.rst
index 2465bde..56e618c 100644
--- a/Help/command/if.rst
+++ b/Help/command/if.rst
@@ -67,9 +67,10 @@ Possible expressions are:
True if the given name is an existing policy (of the form ``CMP<NNNN>``).
``if(TARGET target-name)``
- True if the given name is an existing logical target name such as those
- created by the :command:`add_executable`, :command:`add_library`, or
- :command:`add_custom_target` commands.
+ True if the given name is an existing logical target name created
+ by a call to the :command:`add_executable`, :command:`add_library`,
+ or :command:`add_custom_target` command that has already been invoked
+ (in any directory).
``if(TEST test-name)``
True if the given name is an existing test name created by the
@@ -80,7 +81,7 @@ Possible expressions are:
only for full paths.
``if(file1 IS_NEWER_THAN file2)``
- True if file1 is newer than file2 or if one of the two files doesn't
+ True if ``file1`` is newer than ``file2`` or if one of the two files doesn't
exist. Behavior is well-defined only for full paths. If the file
time stamps are exactly the same, an ``IS_NEWER_THAN`` comparison returns
true, so that any dependent build operations will occur in the event
diff --git a/Help/command/install.rst b/Help/command/install.rst
index 5d2add7..189b51c 100644
--- a/Help/command/install.rst
+++ b/Help/command/install.rst
@@ -45,11 +45,15 @@ signatures that specify them. The common options are:
is associated, such as "runtime" or "development". During
component-specific installation only install rules associated with
the given component name will be executed. During a full installation
- all components are installed. If ``COMPONENT`` is not provided a
- default component "Unspecified" is created. The default component
- name may be controlled with the
+ all components are installed unless marked with ``EXCLUDE_FROM_ALL``.
+ If ``COMPONENT`` is not provided a default component "Unspecified" is
+ created. The default component name may be controlled with the
:variable:`CMAKE_INSTALL_DEFAULT_COMPONENT_NAME` variable.
+``EXCLUDE_FROM_ALL``
+ Specify that the file is excluded from a full installation and only
+ installed as part of a component-specific installation
+
``RENAME``
Specify a name for an installed file that may be different from the
original file. Renaming is allowed only when a single file is
@@ -76,7 +80,8 @@ Installing Targets
[PERMISSIONS permissions...]
[CONFIGURATIONS [Debug|Release|...]]
[COMPONENT <component>]
- [OPTIONAL] [NAMELINK_ONLY|NAMELINK_SKIP]
+ [OPTIONAL] [EXCLUDE_FROM_ALL]
+ [NAMELINK_ONLY|NAMELINK_SKIP]
] [...])
The ``TARGETS`` form specifies rules for installing targets from a
@@ -172,7 +177,7 @@ Installing Files
[PERMISSIONS permissions...]
[CONFIGURATIONS [Debug|Release|...]]
[COMPONENT <component>]
- [RENAME <name>] [OPTIONAL])
+ [RENAME <name>] [OPTIONAL] [EXCLUDE_FROM_ALL])
The ``FILES`` form specifies rules for installing files for a project.
File names given as relative paths are interpreted with respect to the
@@ -206,7 +211,8 @@ Installing Directories
[DIRECTORY_PERMISSIONS permissions...]
[USE_SOURCE_PERMISSIONS] [OPTIONAL] [MESSAGE_NEVER]
[CONFIGURATIONS [Debug|Release|...]]
- [COMPONENT <component>] [FILES_MATCHING]
+ [COMPONENT <component>] [EXCLUDE_FROM_ALL]
+ [FILES_MATCHING]
[[PATTERN <pattern> | REGEX <regex>]
[EXCLUDE] [PERMISSIONS permissions...]] [...])
@@ -282,7 +288,7 @@ Custom Installation Logic
::
install([[SCRIPT <file>] [CODE <code>]]
- [COMPONENT <component>] [...])
+ [COMPONENT <component>] [EXCLUDE_FROM_ALL] [...])
The ``SCRIPT`` form will invoke the given CMake script files during
installation. If the script file name is a relative path it will be
@@ -307,7 +313,8 @@ Installing Exports
[PERMISSIONS permissions...]
[CONFIGURATIONS [Debug|Release|...]]
[EXPORT_LINK_INTERFACE_LIBRARIES]
- [COMPONENT <component>])
+ [COMPONENT <component>]
+ [EXCLUDE_FROM_ALL])
The ``EXPORT`` form generates and installs a CMake file containing code to
import targets from the installation tree into another project.
diff --git a/Help/command/list.rst b/Help/command/list.rst
index a7a05c7..f6b75bc 100644
--- a/Help/command/list.rst
+++ b/Help/command/list.rst
@@ -9,6 +9,7 @@ List operations.
list(GET <list> <element index> [<element index> ...]
<output variable>)
list(APPEND <list> [<element> ...])
+ list(FILTER <list> <INCLUDE|EXCLUDE> REGEX <regular_expression>)
list(FIND <list> <value> <output variable>)
list(INSERT <list> <element_index> <element> [<element> ...])
list(REMOVE_ITEM <list> <value> [<value> ...])
@@ -23,6 +24,12 @@ List operations.
``APPEND`` will append elements to the list.
+``FILTER`` will include or remove items from the list that match the
+mode's pattern.
+In ``REGEX`` mode, items will be matched against the given regular expression.
+For more information on regular expressions see also the :command:`string`
+command.
+
``FIND`` will return the index of the element specified in the list or -1
if it wasn't found.
@@ -38,9 +45,9 @@ difference is that ``REMOVE_ITEM`` will remove the given items, while
``SORT`` sorts the list in-place alphabetically.
-The list subcommands ``APPEND``, ``INSERT``, ``REMOVE_AT``, ``REMOVE_ITEM``,
-``REMOVE_DUPLICATES``, ``REVERSE`` and ``SORT`` may create new values for
-the list within the current CMake variable scope. Similar to the
+The list subcommands ``APPEND``, ``INSERT``, ``FILTER``, ``REMOVE_AT``,
+``REMOVE_ITEM``, ``REMOVE_DUPLICATES``, ``REVERSE`` and ``SORT`` may create new
+values for the list within the current CMake variable scope. Similar to the
:command:`set` command, the LIST command creates new variable values in the
current scope, even if the list itself is actually defined in a parent
scope. To propagate the results of these operations upwards, use
diff --git a/Help/manual/cmake-buildsystem.7.rst b/Help/manual/cmake-buildsystem.7.rst
index 4a04f31..9004bb2 100644
--- a/Help/manual/cmake-buildsystem.7.rst
+++ b/Help/manual/cmake-buildsystem.7.rst
@@ -427,7 +427,7 @@ specified will be calculated:
)
add_library(lib1Version3 SHARED lib1_v3.cpp)
- set_property(TARGET lib1Version2 PROPERTY INTERFACE_CONTAINER_SIZE_REQUIRED 1000)
+ set_property(TARGET lib1Version3 PROPERTY INTERFACE_CONTAINER_SIZE_REQUIRED 1000)
add_executable(exe1 exe1.cpp)
# CONTAINER_SIZE_REQUIRED will be "200"
diff --git a/Help/manual/cmake-developer.7.rst b/Help/manual/cmake-developer.7.rst
index a335384..7bfdcad 100644
--- a/Help/manual/cmake-developer.7.rst
+++ b/Help/manual/cmake-developer.7.rst
@@ -718,7 +718,7 @@ same consideration applies to macros, functions and imported targets.
If False, do not try to use the relevant CMake wrapping command.
``Xxx_Yy_FOUND``
- If False, optional Yy part of Xxx sytem is not available.
+ If False, optional Yy part of Xxx system is not available.
``Xxx_FOUND``
Set to false, or undefined, if we haven't found, or don't want to use
diff --git a/Help/manual/cmake-modules.7.rst b/Help/manual/cmake-modules.7.rst
index c9219d5..10f05df 100644
--- a/Help/manual/cmake-modules.7.rst
+++ b/Help/manual/cmake-modules.7.rst
@@ -213,6 +213,7 @@ All Modules
/module/FindwxWidgets
/module/FindwxWindows
/module/FindXCTest
+ /module/FindXalanC
/module/FindXercesC
/module/FindX11
/module/FindXMLRPC
diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst
index 3f49572..15eaece 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -118,6 +118,7 @@ Variables that Change Behavior
/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName
/variable/CMAKE_ERROR_DEPRECATED
/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
+ /variable/CMAKE_EXPORT_COMPILE_COMMANDS
/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY
/variable/CMAKE_SYSROOT
/variable/CMAKE_FIND_APPBUNDLE
diff --git a/Help/manual/cmake.1.rst b/Help/manual/cmake.1.rst
index 91af3e3..959148e 100644
--- a/Help/manual/cmake.1.rst
+++ b/Help/manual/cmake.1.rst
@@ -58,13 +58,14 @@ Options
<dir> = Project binary directory to be built.
--target <tgt> = Build <tgt> instead of default targets.
+ May only be specified once.
--config <cfg> = For multi-configuration tools, choose <cfg>.
--clean-first = Build target 'clean' first, then build.
(To clean only, use --target 'clean'.)
--use-stderr = Ignored. Behavior is default in CMake >= 3.0.
-- = Pass remaining options to the native tool.
- Run cmake --build with no options for quick help.
+ Run ``cmake --build`` with no options for quick help.
``-N``
View mode only.
diff --git a/Help/module/FindXalanC.rst b/Help/module/FindXalanC.rst
new file mode 100644
index 0000000..b99d212
--- /dev/null
+++ b/Help/module/FindXalanC.rst
@@ -0,0 +1 @@
+.. cmake-module:: ../../Modules/FindXalanC.cmake
diff --git a/Help/policy/CMP0040.rst b/Help/policy/CMP0040.rst
index e746c03..d46baf6 100644
--- a/Help/policy/CMP0040.rst
+++ b/Help/policy/CMP0040.rst
@@ -1,18 +1,21 @@
CMP0040
-------
-The target in the TARGET signature of add_custom_command() must exist.
+The target in the ``TARGET`` signature of :command:`add_custom_command`
+must exist and must be defined in current directory.
CMake 2.8.12 and lower silently ignored a custom command created with
-the TARGET signature of :command:`add_custom_command`
-if the target is unknown.
+the ``TARGET`` signature of :command:`add_custom_command`
+if the target is unknown or was defined outside the current directory.
-The OLD behavior for this policy is to ignore custom commands
-for unknown targets. The NEW behavior for this policy is to report an error
-if the target referenced in :command:`add_custom_command` is unknown.
+The ``OLD`` behavior for this policy is to ignore custom commands
+for unknown targets. The ``NEW`` behavior for this policy is to report
+an error if the target referenced in :command:`add_custom_command` is
+unknown or was defined outside the current directory.
This policy was introduced in CMake version 3.0. CMake version
-|release| warns when the policy is not set and uses OLD behavior. Use
-the cmake_policy command to set it to OLD or NEW explicitly.
+|release| warns when the policy is not set and uses ``OLD`` behavior.
+Use the :command:`cmake_policy` command to set it to ``OLD`` or
+``NEW`` explicitly.
.. include:: DEPRECATED.txt
diff --git a/Help/release/3.5.rst b/Help/release/3.5.rst
new file mode 100644
index 0000000..62703b3
--- /dev/null
+++ b/Help/release/3.5.rst
@@ -0,0 +1,188 @@
+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 :module:`CPackDMG` module 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 :module:`CPackDeb` module learned to set the optional config
+ file ``Source`` field using a monolithic or per-component variable.
+ See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`.
+
+* The :module:`CPackDeb` module 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 :module:`CPack DragNDrop generator <CPackDMG>` 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 :module:`CPackNSIS` module 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 :module:`CPackRPM` module 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 :module:`CMakeForceCompiler` module and its macros are now deprecated.
+ See module documentation for an explanation.
+
+* 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.
diff --git a/Help/release/dev/CMakeParseArguments-native-impl.rst b/Help/release/dev/CMakeParseArguments-native-impl.rst
deleted file mode 100644
index 114a099..0000000
--- a/Help/release/dev/CMakeParseArguments-native-impl.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-CMakeParseArguments-native-impl
--------------------------------
-
-* The :command:`cmake_parse_arguments` command is now implemented natively.
- The :module:`CMakeParseArguments` module remains as an empty placeholder
- for compatibility.
diff --git a/Help/release/dev/FindBoost-imported-targets.rst b/Help/release/dev/FindBoost-imported-targets.rst
deleted file mode 100644
index 1129ded..0000000
--- a/Help/release/dev/FindBoost-imported-targets.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-FindBoost-imported-targets
---------------------------
-
-* The :module:`FindBoost` module now provides imported targets
- such as ``Boost::boost`` and ``Boost::filesystem``.
diff --git a/Help/release/dev/FindFLEX-DEFINES_FILE.rst b/Help/release/dev/FindFLEX-DEFINES_FILE.rst
deleted file mode 100644
index 95133aa..0000000
--- a/Help/release/dev/FindFLEX-DEFINES_FILE.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-FindFLEX-DEFINES_FILE
----------------------
-
-* The :module:`FindFLEX` module ``FLEX_TARGET`` macro learned a
- new ``DEFINES_FILE`` option to specify a custom output header
- to be generated.
diff --git a/Help/release/dev/FindGTK2_GTK2_TARGETS.rst b/Help/release/dev/FindGTK2_GTK2_TARGETS.rst
deleted file mode 100644
index 76e3657..0000000
--- a/Help/release/dev/FindGTK2_GTK2_TARGETS.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-FindGTK2_GTK2_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.
diff --git a/Help/release/dev/FindGTK2_sigc++_c++11.rst b/Help/release/dev/FindGTK2_sigc++_c++11.rst
deleted file mode 100644
index 2ba1459..0000000
--- a/Help/release/dev/FindGTK2_sigc++_c++11.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-FindGTK2_sigc++_c++11
----------------------
-
-* Starting with sigc++ 2.5.1, c++11 must be enabled in order to use
- sigc++. The GTK2::sigc++ imported target will automatically enable the
- required build flags in order to build with the version found on the
- system.
diff --git a/Help/release/dev/FindGTest-imported-targets.rst b/Help/release/dev/FindGTest-imported-targets.rst
deleted file mode 100644
index 3cb98da..0000000
--- a/Help/release/dev/FindGTest-imported-targets.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-FindGTest-imported-targets
---------------------------
-
-* The :module:`FindGTest` module now provides imported targets.
diff --git a/Help/release/dev/FindOpenMP-clang.rst b/Help/release/dev/FindOpenMP-clang.rst
deleted file mode 100644
index 44c805c..0000000
--- a/Help/release/dev/FindOpenMP-clang.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-FindOpenMP-clang
-----------------
-
-* The :module:`FindOpenMP` module learned to support Clang.
diff --git a/Help/release/dev/FindOpenSSL-msvc-static-rt.rst b/Help/release/dev/FindOpenSSL-msvc-static-rt.rst
deleted file mode 100644
index 6e0ee27..0000000
--- a/Help/release/dev/FindOpenSSL-msvc-static-rt.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-FindOpenSSL-msvc-static-rt
---------------------------
-
-* The :module:`FindOpenSSL` module gained a new
- ``OPENSSL_MSVC_STATIC_RT`` option to search for libraries using
- the MSVC static runtime.
diff --git a/Help/release/dev/FindProtobuf-version.rst b/Help/release/dev/FindProtobuf-version.rst
new file mode 100644
index 0000000..2bfd9f4
--- /dev/null
+++ b/Help/release/dev/FindProtobuf-version.rst
@@ -0,0 +1,6 @@
+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/FindTIFF-imported-targets.rst b/Help/release/dev/FindTIFF-imported-targets.rst
deleted file mode 100644
index f8bbc14..0000000
--- a/Help/release/dev/FindTIFF-imported-targets.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-FindTIFF-imported-targets
--------------------------
-
-* The :module:`FindTIFF` module now provides imported targets.
diff --git a/Help/release/dev/FindXercesC-imported-targets.rst b/Help/release/dev/FindXercesC-imported-targets.rst
deleted file mode 100644
index 69cec5c..0000000
--- a/Help/release/dev/FindXercesC-imported-targets.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-FindXercesC-imported-targets
-----------------------------
-
-* The :module:`FindXercesC` module now provides imported targets.
diff --git a/Help/release/dev/add-armcc-toolchain.rst b/Help/release/dev/add-armcc-toolchain.rst
deleted file mode 100644
index 2cf6414..0000000
--- a/Help/release/dev/add-armcc-toolchain.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-add-armcc-toolchain
--------------------
-
-* Support was added for the ARM Compiler (arm.com) with compiler id ``ARMCC``.
diff --git a/Help/release/dev/add-cray-linux-platform.rst b/Help/release/dev/add-cray-linux-platform.rst
deleted file mode 100644
index 7000382..0000000
--- a/Help/release/dev/add-cray-linux-platform.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-add-cray-linux-platform
------------------------
-
-* 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.
diff --git a/Help/release/dev/better-looking-mac-packages.rst b/Help/release/dev/better-looking-mac-packages.rst
deleted file mode 100644
index ef1b8e8..0000000
--- a/Help/release/dev/better-looking-mac-packages.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-better-looking-mac-packages
----------------------------
-
-* The :module:`CPackDMG` module 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.
diff --git a/Help/release/dev/cmake-E-multiple-inputs.rst b/Help/release/dev/cmake-E-multiple-inputs.rst
deleted file mode 100644
index 480261d..0000000
--- a/Help/release/dev/cmake-E-multiple-inputs.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-cmake-E-multiple-inputs
------------------------
-
-* The :manual:`cmake(1)` ``-E copy`` and ``-E copy_if_different`` command-line
- tools learned to support copying multiple input files to a directory.
-
-* The :manual:`cmake(1)` ``-E copy_directory`` command-line
- tool learned to support copying multiple input directories to a directory.
-
-* The :manual:`cmake(1)` ``-E make_directory`` command-line
- tool learned to support copying multiple input directories to a directory.
diff --git a/Help/release/dev/cmake-W-options.rst b/Help/release/dev/cmake-W-options.rst
deleted file mode 100644
index c055f96..0000000
--- a/Help/release/dev/cmake-W-options.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-cmake-W-options
----------------
-
-* The :variable:`CMAKE_WARN_DEPRECATED` variable can now be set using the
- ``-Wdeprecated`` and ``-Wno-deprecated`` :manual:`cmake(1)` options.
-
-* The ``-Wdev`` and ``-Wno-dev`` :manual:`cmake(1)` options now also enable
- and suppress the deprecated warnings output by default.
-
-* 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.
-
-* Warnings about deprecated functionality can now be controlled in the
- :manual:`cmake-gui(1)` application.
-
-* 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 :variable:`CMAKE_ERROR_DEPRECATED` variable can now be set using the
- ``-Werror=deprecated`` and ``-Wno-error=deprecated`` :manual:`cmake(1)`
- options.
diff --git a/Help/release/dev/cmake-gui-select-toolset.rst b/Help/release/dev/cmake-gui-select-toolset.rst
deleted file mode 100644
index 5186f91..0000000
--- a/Help/release/dev/cmake-gui-select-toolset.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-cmake-gui-select-toolset
-------------------------
-
-* 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)`.
diff --git a/Help/release/dev/cpack-deb-config-file-source-field.rst b/Help/release/dev/cpack-deb-config-file-source-field.rst
deleted file mode 100644
index bbc2aa6..0000000
--- a/Help/release/dev/cpack-deb-config-file-source-field.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-cpack-deb-config-file-source-field
-----------------------------------
-
-* The :module:`CPackDeb` module learned to set optional config
- file ``Source`` field - monolithic and per-component variable.
- See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`.
diff --git a/Help/release/dev/cpack-deb-new-component-vars.rst b/Help/release/dev/cpack-deb-new-component-vars.rst
deleted file mode 100644
index e30afdb..0000000
--- a/Help/release/dev/cpack-deb-new-component-vars.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-cpack-deb-new-component-vars
-----------------------------
-
-* The :module:`CPackDeb` module learned to set Package, Section
- and Priority control fields per-component.
- See :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION`
- and :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY`.
diff --git a/Help/release/dev/cpack-dmg-multilanguage-sla.rst b/Help/release/dev/cpack-dmg-multilanguage-sla.rst
deleted file mode 100644
index 9e28fa2..0000000
--- a/Help/release/dev/cpack-dmg-multilanguage-sla.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-cpack-dmg-multilanguage-sla
----------------------------
-
-* The :module:`CPack DragNDrop generator <CPackDMG>` 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.
diff --git a/Help/release/dev/cpack-nsis-bitmap.rst b/Help/release/dev/cpack-nsis-bitmap.rst
deleted file mode 100644
index c5ccfb5..0000000
--- a/Help/release/dev/cpack-nsis-bitmap.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-cpack-nsis-bitmap
------------------
-
-* The :module:`CPackNSIS` module 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.
diff --git a/Help/release/dev/cpack-rpm-percomponent-group-and-name.rst b/Help/release/dev/cpack-rpm-percomponent-group-and-name.rst
deleted file mode 100644
index 146f8ac..0000000
--- a/Help/release/dev/cpack-rpm-percomponent-group-and-name.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-cpack-rpm-percomponent-group-and-name
--------------------------------------
-
-* The :module:`CPackRPM` module learned to set Name and Group
- control fields per-component.
- See :variable:`CPACK_RPM_<component>_PACKAGE_NAME`
- and :variable:`CPACK_RPM_<component>_PACKAGE_GROUP`.
diff --git a/Help/release/dev/cpack-rpm-upper-cased-components.rst b/Help/release/dev/cpack-rpm-upper-cased-components.rst
new file mode 100644
index 0000000..a5fb233
--- /dev/null
+++ b/Help/release/dev/cpack-rpm-upper-cased-components.rst
@@ -0,0 +1,15 @@
+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 prefered 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/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/error-multiple-targets.rst b/Help/release/dev/error-multiple-targets.rst
new file mode 100644
index 0000000..060b26b
--- /dev/null
+++ b/Help/release/dev/error-multiple-targets.rst
@@ -0,0 +1,6 @@
+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/install-DIRECTORY-genex.rst b/Help/release/dev/install-DIRECTORY-genex.rst
deleted file mode 100644
index e48f19b..0000000
--- a/Help/release/dev/install-DIRECTORY-genex.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-install-DIRECTORY-genex
------------------------
-
-* The :command:`install(DIRECTORY)` command learned to support
- :manual:`generator expressions <cmake-generator-expressions(7)>`
- in the list of directories.
diff --git a/Help/release/dev/install-EXCLUDE_FROM_ALL.rst b/Help/release/dev/install-EXCLUDE_FROM_ALL.rst
new file mode 100644
index 0000000..a611eae
--- /dev/null
+++ b/Help/release/dev/install-EXCLUDE_FROM_ALL.rst
@@ -0,0 +1,5 @@
+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/ios-universal.rst b/Help/release/dev/ios-universal.rst
deleted file mode 100644
index f96abed..0000000
--- a/Help/release/dev/ios-universal.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ios-universal
--------------
-
-* 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.
diff --git a/Help/release/dev/list-FILTER-command.rst b/Help/release/dev/list-FILTER-command.rst
new file mode 100644
index 0000000..3fee4f0
--- /dev/null
+++ b/Help/release/dev/list-FILTER-command.rst
@@ -0,0 +1,5 @@
+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/mingw-clang-compile-features.rst b/Help/release/dev/mingw-clang-compile-features.rst
deleted file mode 100644
index 5b1fb96..0000000
--- a/Help/release/dev/mingw-clang-compile-features.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-mingw-clang-compile-features
-----------------------------
-
-* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
- is now aware of features supported by Clang compilers on Windows (MinGW).
diff --git a/Help/release/dev/regex-explorer.rst b/Help/release/dev/regex-explorer.rst
deleted file mode 100644
index 2147816..0000000
--- a/Help/release/dev/regex-explorer.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-regex-explorer
---------------
-
-* The Qt base CMake GUI got a Regular Expression Explorer which could be used to
- create and evaluate regular expressions in real-time. The explorer window
- is available via the ``Tools`` menu.
diff --git a/Help/release/dev/release-windows.rst b/Help/release/dev/release-windows.rst
deleted file mode 100644
index cc9f2d5..0000000
--- a/Help/release/dev/release-windows.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-release-windows
----------------
-
-* 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.
diff --git a/Help/release/dev/vs-debug-fastlink.rst b/Help/release/dev/vs-debug-fastlink.rst
deleted file mode 100644
index c2e0599..0000000
--- a/Help/release/dev/vs-debug-fastlink.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-vs-debug-fastlink
------------------
-
-* The :generator:`Visual Studio 14 2015` generator learned to map the
- ``/debug:fastlink`` linker flag to the ``.vcxproj`` file property.
diff --git a/Help/release/dev/vs-global-properties.rst b/Help/release/dev/vs-global-properties.rst
deleted file mode 100644
index cae49b7..0000000
--- a/Help/release/dev/vs-global-properties.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-vs-global-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.
diff --git a/Help/release/index.rst b/Help/release/index.rst
index 752acbd..7ecf910 100644
--- a/Help/release/index.rst
+++ b/Help/release/index.rst
@@ -13,6 +13,7 @@ Releases
.. toctree::
:maxdepth: 1
+ 3.5 <3.5>
3.4 <3.4>
3.3 <3.3>
3.2 <3.2>
diff --git a/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst b/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
new file mode 100644
index 0000000..8776279
--- /dev/null
+++ b/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
@@ -0,0 +1,30 @@
+CMAKE_EXPORT_COMPILE_COMMANDS
+-----------------------------
+
+Enable/Disable output of compile commands during generation.
+
+If enabled, generates a ``compile_commands.json`` file containing the exact
+compiler calls for all translation units of the project in machine-readable
+form. The format of the JSON file looks like:
+
+.. code-block:: javascript
+
+ [
+ {
+ "directory": "/home/user/development/project",
+ "command": "/usr/bin/c++ ... -c ../foo/foo.cc",
+ "file": "../foo/foo.cc"
+ },
+
+ ...
+
+ {
+ "directory": "/home/user/development/project",
+ "command": "/usr/bin/c++ ... -c ../foo/bar.cc",
+ "file": "../foo/bar.cc"
+ }
+ ]
+
+.. note::
+ This option is implemented only by :ref:`Makefile Generators`
+ and the :generator:`Ninja`. It is ignored on other generators.
diff --git a/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst b/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst
index 6392849..e0be3a4 100644
--- a/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst
+++ b/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst
@@ -8,4 +8,5 @@ specification of a target Windows version to select a corresponding SDK.
The :variable:`CMAKE_SYSTEM_VERSION` variable may be set to specify a
version. Otherwise CMake computes a default version based on the Windows
SDK versions available. The chosen Windows target version number is provided
-in ``CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION``.
+in ``CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION``. If no Windows 10 SDK
+is available this value will be empty.