summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
Diffstat (limited to 'Help')
-rw-r--r--Help/command/ctest_submit.rst13
-rw-r--r--Help/command/file.rst5
-rw-r--r--Help/command/find_package.rst2
-rw-r--r--Help/command/get_test_property.rst8
-rw-r--r--Help/command/if.rst9
-rw-r--r--Help/command/link_libraries.rst19
-rw-r--r--Help/command/set_tests_properties.rst2
-rw-r--r--Help/command/try_run.rst9
-rw-r--r--Help/manual/LINKS.txt4
-rw-r--r--Help/manual/cmake-commands.7.rst2
-rw-r--r--Help/manual/cmake-developer.7.rst83
-rw-r--r--Help/manual/cmake-language.7.rst8
-rw-r--r--Help/manual/cmake-modules.7.rst2
-rw-r--r--Help/manual/cmake-properties.7.rst1
-rw-r--r--Help/manual/cmake-variables.7.rst2
-rw-r--r--Help/manual/cmake.1.rst120
-rw-r--r--Help/module/CTestCoverageCollectGCOV.rst1
-rw-r--r--Help/module/FindJsonCpp.rst1
-rw-r--r--Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst9
-rw-r--r--Help/prop_sf/VS_SHADER_FLAGS.rst4
-rw-r--r--Help/prop_tgt/CXX_STANDARD.rst5
-rw-r--r--Help/prop_tgt/CXX_STANDARD_REQUIRED.rst3
-rw-r--r--Help/prop_tgt/C_STANDARD.rst3
-rw-r--r--Help/prop_tgt/C_STANDARD_REQUIRED.rst3
-rw-r--r--Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst11
-rw-r--r--Help/release/dev/Apple-GNU-compiler-features.rst5
-rw-r--r--Help/release/dev/Apple-compiler-selection.rst8
-rw-r--r--Help/release/dev/AppleClang-5.1-features.rst5
-rw-r--r--Help/release/dev/ExternalData-custom-download.rst7
-rw-r--r--Help/release/dev/FindCUDA-cusolver.rst5
-rw-r--r--Help/release/dev/FindGit-local-Github.rst5
-rw-r--r--Help/release/dev/FindLATEX-components.rst4
-rw-r--r--Help/release/dev/GNU-4.4-compile-features.rst5
-rw-r--r--Help/release/dev/SolarisStudio-compile-features.rst5
-rw-r--r--Help/release/dev/WCDH-thread_local.rst7
-rw-r--r--Help/release/dev/WriteCompilerDetectionHeader-multi-file-lang.rst6
-rw-r--r--Help/release/dev/Xcode-clang-compile-features.rst5
-rw-r--r--Help/release/dev/add-FindJsonCpp.rst5
-rw-r--r--Help/release/dev/add-xz-support.rst5
-rw-r--r--Help/release/dev/cmake-E-tar-files-from.rst6
-rw-r--r--Help/release/dev/cmake-E-tar-mtime.rst6
-rw-r--r--Help/release/dev/console-pool.rst4
-rw-r--r--Help/release/dev/curl-default-cainfo.rst8
-rw-r--r--Help/release/dev/feature-record-msvc.rst5
-rw-r--r--Help/release/dev/file-strings-utf-16.rst5
-rw-r--r--Help/release/dev/find-msmpi.rst4
-rw-r--r--Help/release/dev/record-GNU-5-features.rst5
-rw-r--r--Help/release/dev/try-run-link-libraries.rst5
-rw-r--r--Help/release/dev/unsupported-compilers.rst22
-rw-r--r--Help/release/dev/vs-shader-flags.rst5
-rw-r--r--Help/release/dev/windows-utf-8.rst22
-rw-r--r--Help/release/dev/xcode-revise-make-program.rst6
-rw-r--r--Help/variable/CMAKE_FIND_PACKAGE_NAME.rst6
-rw-r--r--Help/variable/CMAKE_MAKE_PROGRAM.rst11
-rw-r--r--Help/variable/MINGW.rst6
55 files changed, 398 insertions, 134 deletions
diff --git a/Help/command/ctest_submit.rst b/Help/command/ctest_submit.rst
index d9b0b78..2b83ed9 100644
--- a/Help/command/ctest_submit.rst
+++ b/Help/command/ctest_submit.rst
@@ -37,3 +37,16 @@ timed-out submission before attempting to re-submit.
The RETRY_COUNT option specifies how many times to retry a timed-out
submission.
+
+Submit to CDash Upload API
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+ ctest_submit(CDASH_UPLOAD <file> [CDASH_UPLOAD_TYPE <type>])
+
+This second signature is used to upload files to CDash via the CDash
+file upload API. The api first sends a request to upload to CDash along
+with a content hash of the file. If CDash does not already have the file,
+then it is uploaded. Along with the file, a CDash type string is specified
+to tell CDash which handler to use to process the data.
diff --git a/Help/command/file.rst b/Help/command/file.rst
index b0d4792..73d4cfa 100644
--- a/Help/command/file.rst
+++ b/Help/command/file.rst
@@ -65,7 +65,10 @@ Parse a list of ASCII strings from ``<filename>`` and store it in
Consider only strings that match the given regular expression.
``ENCODING <encoding-type>``
- Consider strings of a given encoding. "UTF-8" is currently supported.
+ Consider strings of a given encoding. Currently supported encodings are:
+ UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE. If the ENCODING option
+ is not provided and the file has a Byte Order Mark, the ENCODING option
+ will be defaulted to respect the Byte Order Mark.
For example, the code
diff --git a/Help/command/find_package.rst b/Help/command/find_package.rst
index 190d05c..7f518a6 100644
--- a/Help/command/find_package.rst
+++ b/Help/command/find_package.rst
@@ -312,6 +312,8 @@ When loading a find module or package configuration file ``find_package``
defines variables to provide information about the call arguments (and
restores their original state before returning):
+``CMAKE_FIND_PACKAGE_NAME``
+ the ``<package>`` name which is searched for
``<package>_FIND_REQUIRED``
true if ``REQUIRED`` option was given
``<package>_FIND_QUIETLY``
diff --git a/Help/command/get_test_property.rst b/Help/command/get_test_property.rst
index 2623755..391a32e 100644
--- a/Help/command/get_test_property.rst
+++ b/Help/command/get_test_property.rst
@@ -7,9 +7,9 @@ Get a property of the test.
get_test_property(test property VAR)
-Get a property from the Test. The value of the property is stored in
-the variable VAR. If the property is not found, VAR will be set to
-"NOTFOUND". For a list of standard properties you can type cmake
---help-property-list
+Get a property from the test. The value of the property is stored in
+the variable VAR. If the test or property is not found, VAR will be
+set to "NOTFOUND". For a list of standard properties you can type cmake
+--help-property-list.
See also the more general get_property() command.
diff --git a/Help/command/if.rst b/Help/command/if.rst
index 79e5d21..d50b14c 100644
--- a/Help/command/if.rst
+++ b/Help/command/if.rst
@@ -42,11 +42,12 @@ Possible expressions are:
or a non-zero number. False if the constant is ``0``, ``OFF``,
``NO``, ``FALSE``, ``N``, ``IGNORE``, ``NOTFOUND``, the empty string,
or ends in the suffix ``-NOTFOUND``. Named boolean constants are
- case-insensitive. If the argument is not one of these constants, it
- is treated as a variable.
+ case-insensitive. If the argument is not one of these specific
+ constants, it is treated as a variable or string and the following
+ signature is used.
-``if(<variable>)``
- True if the variable is defined to a value that is not a false
+``if(<variable|string>)``
+ True if given a variable that is defined to a value that is not a false
constant. False otherwise. (Note macro arguments are not variables.)
``if(NOT <expression>)``
diff --git a/Help/command/link_libraries.rst b/Help/command/link_libraries.rst
index d690c9b..fd5dc37 100644
--- a/Help/command/link_libraries.rst
+++ b/Help/command/link_libraries.rst
@@ -1,16 +1,19 @@
link_libraries
--------------
-Deprecated. Use the target_link_libraries() command instead.
-
Link libraries to all targets added later.
::
- link_libraries(library1 <debug | optimized> library2 ...)
+ link_libraries([item1 [item2 [...]]]
+ [[debug|optimized|general] <item>] ...)
+
+Specify libraries or flags to use when linking any targets created later in
+the current directory or below by commands such as :command:`add_executable`
+or :command:`add_library`. See the :command:`target_link_libraries` command
+for meaning of arguments.
-Specify a list of libraries to be linked into any following targets
-(typically added with the add_executable or add_library calls). This
-command is passed down to all subdirectories. The debug and optimized
-strings may be used to indicate that the next library listed is to be
-used only for that specific type of build.
+.. note::
+ The :command:`target_link_libraries` command should be preferred whenever
+ possible. Library dependencies are chained automatically, so directory-wide
+ specification of link libraries is rarely needed.
diff --git a/Help/command/set_tests_properties.rst b/Help/command/set_tests_properties.rst
index e29d690..afac847 100644
--- a/Help/command/set_tests_properties.rst
+++ b/Help/command/set_tests_properties.rst
@@ -7,7 +7,7 @@ Set a property of the tests.
set_tests_properties(test1 [test2...] PROPERTIES prop1 value1 prop2 value2)
-Set a property for the tests. If the property is not found, CMake
+Set a property for the tests. If the test is not found, CMake
will report an error. Generator expressions will be expanded the same
as supported by the test's add_test call. The properties include:
diff --git a/Help/command/try_run.rst b/Help/command/try_run.rst
index 9a17ad9..b8ea0fe 100644
--- a/Help/command/try_run.rst
+++ b/Help/command/try_run.rst
@@ -6,8 +6,9 @@ Try compiling and then running some code.
::
try_run(RUN_RESULT_VAR COMPILE_RESULT_VAR
- bindir srcfile [CMAKE_FLAGS <Flags>]
+ bindir srcfile [CMAKE_FLAGS <flags>]
[COMPILE_DEFINITIONS <flags>]
+ [LINK_LIBRARIES <libs>]
[COMPILE_OUTPUT_VARIABLE comp]
[RUN_OUTPUT_VARIABLE run]
[OUTPUT_VARIABLE var]
@@ -22,6 +23,12 @@ where the output from the compile step goes. RUN_OUTPUT_VARIABLE
specifies the variable where the output from the running executable
goes.
+The srcfile signature also accepts a LINK_LIBRARIES argument which may
+contain a list of libraries or IMPORTED targets which will be linked
+to in the generated project. If LINK_LIBRARIES is specified as a
+parameter to try_run, then any LINK_LIBRARIES passed as
+CMAKE_FLAGS will be ignored.
+
For compatibility reasons OUTPUT_VARIABLE is still supported, which
gives you the output from the compile and run step combined.
diff --git a/Help/manual/LINKS.txt b/Help/manual/LINKS.txt
index f6f707d..38fd151 100644
--- a/Help/manual/LINKS.txt
+++ b/Help/manual/LINKS.txt
@@ -11,12 +11,12 @@ Frequently Asked Questions
A Wiki is provided containing answers to frequently asked questions.
Online Documentation
- http://www.cmake.org/HTML/Documentation.html
+ http://www.cmake.org/documentation
Links to available documentation may be found on this web page.
Mailing List
- http://www.cmake.org/HTML/MailingLists.html
+ http://www.cmake.org/mailing-lists
For help and discussion about using cmake, a mailing list is
provided at cmake@cmake.org. The list is member-post-only but one
diff --git a/Help/manual/cmake-commands.7.rst b/Help/manual/cmake-commands.7.rst
index 4616dd1..c916f77 100644
--- a/Help/manual/cmake-commands.7.rst
+++ b/Help/manual/cmake-commands.7.rst
@@ -68,6 +68,7 @@ These commands may be used freely in CMake projects.
/command/include
/command/install
/command/link_directories
+ /command/link_libraries
/command/list
/command/load_cache
/command/load_command
@@ -118,7 +119,6 @@ versions of CMake. Do not use them in new code.
/command/install_files
/command/install_programs
/command/install_targets
- /command/link_libraries
/command/make_directory
/command/output_required_files
/command/remove
diff --git a/Help/manual/cmake-developer.7.rst b/Help/manual/cmake-developer.7.rst
index 682ce47..e18250c 100644
--- a/Help/manual/cmake-developer.7.rst
+++ b/Help/manual/cmake-developer.7.rst
@@ -21,32 +21,6 @@ CMake is required to build with ancient C++ compilers and standard library
implementations. Some common C++ constructs may not be used in CMake in order
to build with such toolchains.
-std::set const iterators
-------------------------
-
-The ``find()`` member function of a ``const`` ``std::set`` instance may not be
-used in a comparison with the iterator returned by ``end()``:
-
-.. code-block:: c++
-
- const std::set<std::string>& someSet = getSet();
- if (someSet.find("needle") == someSet.end()) // Wrong
- {
- // ...
- }
-
-The return value of ``find()`` must be assigned to an intermediate
-``const_iterator`` for comparison:
-
-.. code-block:: c++
-
- const std::set<std::string>& someSet;
- const std::set<std::string>::const_iterator i = someSet.find("needle");
- if (i != propSet.end()) // Ok
- {
- // ...
- }
-
std::auto_ptr
-------------
@@ -54,53 +28,6 @@ Some implementations have a ``std::auto_ptr`` which can not be used as a
return value from a function. ``std::auto_ptr`` may not be used. Use
``cmsys::auto_ptr`` instead.
-std::vector::insert and std::set
---------------------------------
-
-Use of ``std::vector::insert`` with an iterator whose ``element_type`` requires
-conversion is not allowed:
-
-.. code-block:: c++
-
- std::set<const char*> theSet;
- std::vector<std::string> theVector;
- theVector.insert(theVector.end(), theSet.begin(), theSet.end()); // Wrong
-
-A loop must be used instead:
-
-.. code-block:: c++
-
- std::set<const char*> theSet;
- std::vector<std::string> theVector;
- for(std::set<const char*>::iterator li = theSet.begin();
- li != theSet.end(); ++li)
- {
- theVector.push_back(*li);
- }
-
-std::set::insert
-----------------
-
-Use of ``std::set::insert`` is not allowed with any source container:
-
-.. code-block:: c++
-
- std::set<cmTarget*> theSet;
- theSet.insert(targets.begin(), targets.end()); // Wrong
-
-A loop must be used instead:
-
-.. code-block:: c++
-
- ConstIterator it = targets.begin();
- const ConstIterator end = targets.end();
- for ( ; it != end; ++it)
- {
- theSet.insert(*it);
- }
-
-.. SunCC 5.9
-
Template Parameter Defaults
---------------------------
@@ -137,12 +64,6 @@ assigning the result of ``.size()`` on a container for example, the result
should be assigned to ``size_t`` not to ``std::size_t``, ``unsigned int`` or
similar types.
-Templates
----------
-
-Some template code is permitted, but with some limitations. Member templates
-may not be used, and template friends may not be used.
-
Adding Compile Features
=======================
@@ -159,7 +80,9 @@ When adding the first supported feature to a particular CompilerId, it is
necessary to list support for all features known to cmake (See
:variable:`CMAKE_C_COMPILE_FEATURES` and
:variable:`CMAKE_CXX_COMPILE_FEATURES` as appropriate), where available for
-the compiler.
+the compiler. Furthermore, set ``CMAKE_<LANG>_STANDARD_DEFAULT`` to the
+default language standard level the compiler uses, or to the empty string
+if the compiler has no notion of standard levels (such as ``MSVC``).
It is sensible to record the features for the most recent version of a
particular CompilerId first, and then work backwards. It is sensible to
diff --git a/Help/manual/cmake-language.7.rst b/Help/manual/cmake-language.7.rst
index 15c101f..5ec5858f 100644
--- a/Help/manual/cmake-language.7.rst
+++ b/Help/manual/cmake-language.7.rst
@@ -60,14 +60,16 @@ Syntax
Encoding
--------
-A CMake Language source file must be written in 7-bit ASCII text
-to be portable across all supported platforms. Newlines may be
+A CMake Language source file may be written in 7-bit ASCII text for
+maximum portability across all supported platforms. Newlines may be
encoded as either ``\n`` or ``\r\n`` but will be converted to ``\n``
as input files are read.
Note that the implementation is 8-bit clean so source files may
be encoded as UTF-8 on platforms with system APIs supporting this
-encoding. Furthermore, CMake 3.0 and above allow a leading UTF-8
+encoding. In addition, CMake 3.2 and above support source files
+encoded in UTF-8 on Windows (using UTF-16 to call system APIs).
+Furthermore, CMake 3.0 and above allow a leading UTF-8
`Byte-Order Mark`_ in source files.
.. _`Byte-Order Mark`: http://en.wikipedia.org/wiki/Byte_order_mark
diff --git a/Help/manual/cmake-modules.7.rst b/Help/manual/cmake-modules.7.rst
index 5196485..db56010 100644
--- a/Help/manual/cmake-modules.7.rst
+++ b/Help/manual/cmake-modules.7.rst
@@ -63,6 +63,7 @@ All Modules
/module/CPack
/module/CPackWIX
/module/CTest
+ /module/CTestCoverageCollectGCOV
/module/CTestScriptMode
/module/CTestUseLaunchers
/module/Dart
@@ -125,6 +126,7 @@ All Modules
/module/FindJava
/module/FindJNI
/module/FindJPEG
+ /module/FindJsonCpp
/module/FindKDE3
/module/FindKDE4
/module/FindLAPACK
diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst
index 68954c5..25f989f 100644
--- a/Help/manual/cmake-properties.7.rst
+++ b/Help/manual/cmake-properties.7.rst
@@ -294,6 +294,7 @@ Properties on Source Files
/prop_sf/VS_DEPLOYMENT_CONTENT
/prop_sf/VS_DEPLOYMENT_LOCATION
/prop_sf/VS_SHADER_ENTRYPOINT
+ /prop_sf/VS_SHADER_FLAGS
/prop_sf/VS_SHADER_MODEL
/prop_sf/VS_SHADER_TYPE
/prop_sf/WRAP_EXCLUDE
diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst
index 4d54075..c342dbe 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -36,6 +36,7 @@ Variables that Provide Information
/variable/CMAKE_EXECUTABLE_SUFFIX
/variable/CMAKE_EXTRA_GENERATOR
/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES
+ /variable/CMAKE_FIND_PACKAGE_NAME
/variable/CMAKE_GENERATOR
/variable/CMAKE_GENERATOR_PLATFORM
/variable/CMAKE_GENERATOR_TOOLSET
@@ -180,6 +181,7 @@ Variables that Describe the System
/variable/CMAKE_SYSTEM_VERSION
/variable/CYGWIN
/variable/ENV
+ /variable/MINGW
/variable/MSVC10
/variable/MSVC11
/variable/MSVC12
diff --git a/Help/manual/cmake.1.rst b/Help/manual/cmake.1.rst
index 8dfc16a..da41bbb 100644
--- a/Help/manual/cmake.1.rst
+++ b/Help/manual/cmake.1.rst
@@ -11,7 +11,7 @@ Synopsis
cmake [<options>] (<path-to-source> | <path-to-existing-build>)
cmake [(-D<var>=<value>)...] -P <cmake-script-file>
cmake --build <dir> [<options>] [-- <build-tool-options>...]
- cmake -E <command> [<options>]
+ cmake -E <command> [<options>...]
cmake --find-package <options>...
Description
@@ -32,17 +32,8 @@ Options
.. include:: OPTIONS_BUILD.txt
-``-E``
- CMake command mode.
-
- For true platform independence, CMake provides a list of commands
- that can be used on all systems. Run with -E help for the usage
- information. Commands available are: chdir, compare_files, copy,
- copy_directory, copy_if_different, echo, echo_append, env, environment,
- make_directory, md5sum, remove, remove_directory, rename, sleep, tar, time,
- touch, touch_nocreate. In addition, some platform specific commands
- are available. On Windows: delete_regv, write_regv. On
- UNIX: create_symlink.
+``-E <command> [<options>...]``
+ See `Command-Line Tool Mode`_.
``-L[A][H]``
List non-advanced cached variables.
@@ -156,6 +147,111 @@ Options
.. include:: OPTIONS_HELP.txt
+Command-Line Tool Mode
+======================
+
+CMake provides builtin command-line tools through the signature::
+
+ cmake -E <command> [<options>...]
+
+Run ``cmake -E`` or ``cmake -E help`` for a summary of commands.
+Available commands are:
+
+``chdir <dir> <cmd> [<arg>...]``
+ Change the current working directory and run a command.
+
+``compare_files <file1> <file2>``
+ Check if file1 is same as file2.
+
+``copy <file> <destination>``
+ Copy file to destination (either file or directory).
+
+``copy_directory <source> <destination>``
+ Copy directory 'source' content to directory 'destination'.
+
+``copy_if_different <in-file> <out-file>``
+ Copy file if input has changed.
+
+``echo [<string>...]``
+ Displays arguments as text.
+
+``echo_append [<string>...]``
+ Displays arguments as text but no new line.
+
+``env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...``
+ Run command in a modified environment.
+
+``environment``
+ Display the current environment.
+
+``make_directory <dir>``
+ Create a directory.
+
+``md5sum [<file>...]``
+ Compute md5sum of files.
+
+``remove [-f] [<file>...]``
+ Remove the file(s), use ``-f`` to force it.
+
+``remove_directory <dir>``
+ Remove a directory and its contents.
+
+``rename <oldname> <newname>``
+ Rename a file or directory (on one volume).
+
+``sleep <number>...``
+ Sleep for given number of seconds.
+
+``tar [cxt][vf][zjJ] file.tar [<options>...] [--] [<file>...]``
+ Create or extract a tar or zip archive. Options are:
+
+ ``--``
+ Stop interpreting options and treat all remaining arguments
+ as file names even if they start in ``-``.
+ ``--files-from=<file>``
+ Read file names from the given file, one per line.
+ Blank lines are ignored. Lines may not start in ``-``
+ except for ``--add-file=<name>`` to add files whose
+ names start in ``-``.
+ ``--mtime=<date>``
+ Specify modification time recorded in tarball entries.
+
+``time <command> [<args>...]``
+ Run command and return elapsed time.
+
+``touch <file>``
+ Touch a file.
+
+``touch_nocreate <file>``
+ Touch a file if it exists but do not create it.
+
+UNIX-specific Command-Line Tools
+--------------------------------
+
+The following ``cmake -E`` commands are available only on UNIX:
+
+``create_symlink <old> <new>``
+ Create a symbolic link ``<new>`` naming ``<old>``.
+
+Windows-specific Command-Line Tools
+-----------------------------------
+
+The following ``cmake -E`` commands are available only on Windows:
+
+``delete_regv <key>``
+ Delete Windows registry value.
+
+``env_vs8_wince <sdkname>``
+ Displays a batch file which sets the environment for the provided
+ Windows CE SDK installed in VS2005.
+
+``env_vs9_wince <sdkname>``
+ Displays a batch file which sets the environment for the provided
+ Windows CE SDK installed in VS2008.
+
+``write_regv <key> <value>``
+ Write Windows registry value.
+
See Also
========
diff --git a/Help/module/CTestCoverageCollectGCOV.rst b/Help/module/CTestCoverageCollectGCOV.rst
new file mode 100644
index 0000000..4c5deca
--- /dev/null
+++ b/Help/module/CTestCoverageCollectGCOV.rst
@@ -0,0 +1 @@
+.. cmake-module:: ../../Modules/CTestCoverageCollectGCOV.cmake
diff --git a/Help/module/FindJsonCpp.rst b/Help/module/FindJsonCpp.rst
new file mode 100644
index 0000000..ba87ece
--- /dev/null
+++ b/Help/module/FindJsonCpp.rst
@@ -0,0 +1 @@
+.. cmake-module:: ../../Modules/FindJsonCpp.cmake
diff --git a/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
index e24822c..163ae34 100644
--- a/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -130,9 +130,11 @@ The features known to this version of CMake are:
.. _N1987: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm
``cxx_final``
- Override control ``final`` keyword, as defined in N2928_.
+ Override control ``final`` keyword, as defined in N2928_, N3206_ and N3272_.
.. _N2928: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
+ .. _N3206: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm
+ .. _N3272: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm
``cxx_func_identifier``
Predefined ``__func__`` identifier, as defined in N2340_.
@@ -195,9 +197,12 @@ The features known to this version of CMake are:
.. _N2431: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf
``cxx_override``
- Override control ``override`` keyword, as defined in N2928_.
+ Override control ``override`` keyword, as defined in N2928_, N3206_
+ and N3272_.
.. _N2928: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
+ .. _N3206: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm
+ .. _N3272: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm
``cxx_range_for``
Range-based for, as defined in N2930_.
diff --git a/Help/prop_sf/VS_SHADER_FLAGS.rst b/Help/prop_sf/VS_SHADER_FLAGS.rst
new file mode 100644
index 0000000..0901123
--- /dev/null
+++ b/Help/prop_sf/VS_SHADER_FLAGS.rst
@@ -0,0 +1,4 @@
+VS_SHADER_FLAGS
+---------------
+
+Set additional VS shader flags of a ``.hlsl`` source file.
diff --git a/Help/prop_tgt/CXX_STANDARD.rst b/Help/prop_tgt/CXX_STANDARD.rst
index b50cdf9..65b30ec 100644
--- a/Help/prop_tgt/CXX_STANDARD.rst
+++ b/Help/prop_tgt/CXX_STANDARD.rst
@@ -5,9 +5,10 @@ The C++ standard whose features are requested to build this target.
This property specifies the C++ standard whose features are requested
to build this target. For some compilers, this results in adding a
-flag such as ``-std=gnu++11`` to the compile line.
+flag such as ``-std=gnu++11`` to the compile line. For compilers that
+have no notion of a standard level, such as MSVC, this has no effect.
-Supported values are ``98`` and ``11``.
+Supported values are ``98``, ``11`` and ``14``.
If the value requested does not result in a compile flag being added for
the compiler in use, a previous standard flag will be added instead. This
diff --git a/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst b/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
index ac103a4..4e24e5e 100644
--- a/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
+++ b/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
@@ -7,7 +7,8 @@ If this property is set to ``ON``, then the value of the
:prop_tgt:`CXX_STANDARD` target property is treated as a requirement. If this
property is ``OFF`` or unset, the :prop_tgt:`CXX_STANDARD` target property is
treated as optional and may "decay" to a previous standard if the requested is
-not available.
+not available. For compilers that have no notion of a standard level, such as
+MSVC, this has no effect.
See the :manual:`cmake-compile-features(7)` manual for information on
compile features.
diff --git a/Help/prop_tgt/C_STANDARD.rst b/Help/prop_tgt/C_STANDARD.rst
index 88ca926..3aa74af 100644
--- a/Help/prop_tgt/C_STANDARD.rst
+++ b/Help/prop_tgt/C_STANDARD.rst
@@ -5,7 +5,8 @@ The C standard whose features are requested to build this target.
This property specifies the C standard whose features are requested
to build this target. For some compilers, this results in adding a
-flag such as ``-std=gnu11`` to the compile line.
+flag such as ``-std=gnu11`` to the compile line. For compilers that
+have no notion of a standard level, such as MSVC, this has no effect.
Supported values are ``90``, ``99`` and ``11``.
diff --git a/Help/prop_tgt/C_STANDARD_REQUIRED.rst b/Help/prop_tgt/C_STANDARD_REQUIRED.rst
index a7304f4..743d568 100644
--- a/Help/prop_tgt/C_STANDARD_REQUIRED.rst
+++ b/Help/prop_tgt/C_STANDARD_REQUIRED.rst
@@ -7,7 +7,8 @@ If this property is set to ``ON``, then the value of the
:prop_tgt:`C_STANDARD` target property is treated as a requirement. If this
property is ``OFF`` or unset, the :prop_tgt:`C_STANDARD` target property is
treated as optional and may "decay" to a previous standard if the requested is
-not available.
+not available. For compilers that have no notion of a standard level, such as
+MSVC, this has no effect.
See the :manual:`cmake-compile-features(7)` manual for information on
compile features.
diff --git a/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst b/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
index b54b6c1..a0a97ad 100644
--- a/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
+++ b/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
@@ -7,8 +7,15 @@ Targets may populate this property to publish the include directories
which contain system headers, and therefore should not result in
compiler warnings. The :command:`target_include_directories(SYSTEM)`
command signature populates this property with values given to the
-``PUBLIC`` and ``INTERFACE`` keywords. Projects may also get and set the
-property directly.
+``PUBLIC`` and ``INTERFACE`` keywords.
+
+Projects may also get and set the property directly, but must be aware that
+adding directories to this property does not make those directories used
+during compilation. Adding directories to this property marks directories
+as ``SYSTEM`` which otherwise would be used in a non-``SYSTEM`` manner. This
+can appear similar to 'duplication', so prefer the
+high-level :command:`target_include_directories(SYSTEM)` command and avoid
+setting the property by low-level means.
When target dependencies are specified using :command:`target_link_libraries`,
CMake will read this property from all target dependencies to mark the
diff --git a/Help/release/dev/Apple-GNU-compiler-features.rst b/Help/release/dev/Apple-GNU-compiler-features.rst
new file mode 100644
index 0000000..40c3712
--- /dev/null
+++ b/Help/release/dev/Apple-GNU-compiler-features.rst
@@ -0,0 +1,5 @@
+Apple-GNU-compiler-features
+---------------------------
+
+* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
+ is now aware of features supported by GNU compilers on OS X.
diff --git a/Help/release/dev/Apple-compiler-selection.rst b/Help/release/dev/Apple-compiler-selection.rst
new file mode 100644
index 0000000..5ff5653
--- /dev/null
+++ b/Help/release/dev/Apple-compiler-selection.rst
@@ -0,0 +1,8 @@
+Apple-compiler-selection
+------------------------
+
+* On OS X with Makefile and Ninja generators, when a compiler is found
+ in ``/usr/bin`` it is now mapped to the corresponding compiler inside
+ the Xcode application folder, if any. This allows such build
+ trees to continue to work with their original compiler even when
+ ``xcode-select`` switches to a different Xcode installation.
diff --git a/Help/release/dev/AppleClang-5.1-features.rst b/Help/release/dev/AppleClang-5.1-features.rst
deleted file mode 100644
index 2b92d10..0000000
--- a/Help/release/dev/AppleClang-5.1-features.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-AppleClang-5.1-features
------------------------
-
-* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
- is now aware of features supported by Apple Clang 5.1 (``AppleClang``).
diff --git a/Help/release/dev/ExternalData-custom-download.rst b/Help/release/dev/ExternalData-custom-download.rst
new file mode 100644
index 0000000..c40f4f7
--- /dev/null
+++ b/Help/release/dev/ExternalData-custom-download.rst
@@ -0,0 +1,7 @@
+ExternalData-custom-download
+----------------------------
+
+* The :module:`ExternalData` module learned to support
+ :ref:`Custom Fetch Scripts <ExternalData Custom Fetch Scripts>`.
+ This allows projects to specify custom ``.cmake`` scripts for
+ fetching data objects during the build.
diff --git a/Help/release/dev/FindCUDA-cusolver.rst b/Help/release/dev/FindCUDA-cusolver.rst
new file mode 100644
index 0000000..7a61e78
--- /dev/null
+++ b/Help/release/dev/FindCUDA-cusolver.rst
@@ -0,0 +1,5 @@
+FindCUDA-cusolver
+-----------------
+
+* The :module:`FindCUDA` module learned about the ``cusolver``
+ library in CUDA 7.0.
diff --git a/Help/release/dev/FindGit-local-Github.rst b/Help/release/dev/FindGit-local-Github.rst
new file mode 100644
index 0000000..3523e86
--- /dev/null
+++ b/Help/release/dev/FindGit-local-Github.rst
@@ -0,0 +1,5 @@
+FindGit-local-Github
+--------------------
+
+* The :module:`FindGit` module learned to find the ``git`` command-line tool
+ that comes with GitHub for Windows installed in user home directories.
diff --git a/Help/release/dev/FindLATEX-components.rst b/Help/release/dev/FindLATEX-components.rst
new file mode 100644
index 0000000..d161c1f
--- /dev/null
+++ b/Help/release/dev/FindLATEX-components.rst
@@ -0,0 +1,4 @@
+FindLATEX-components
+--------------------
+
+* The :module:`FindLATEX` module learned to support components.
diff --git a/Help/release/dev/GNU-4.4-compile-features.rst b/Help/release/dev/GNU-4.4-compile-features.rst
new file mode 100644
index 0000000..d5c1356
--- /dev/null
+++ b/Help/release/dev/GNU-4.4-compile-features.rst
@@ -0,0 +1,5 @@
+GNU-4.4-compile-features
+------------------------
+
+* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
+ is now aware of features supported by GNU 4.4 to 4.6 compilers.
diff --git a/Help/release/dev/SolarisStudio-compile-features.rst b/Help/release/dev/SolarisStudio-compile-features.rst
new file mode 100644
index 0000000..83110cd
--- /dev/null
+++ b/Help/release/dev/SolarisStudio-compile-features.rst
@@ -0,0 +1,5 @@
+SolarisStudio-compile-features
+------------------------------
+
+* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
+ is now aware of features supported by Oracle SolarisStudio (``SunPro``).
diff --git a/Help/release/dev/WCDH-thread_local.rst b/Help/release/dev/WCDH-thread_local.rst
new file mode 100644
index 0000000..44516a7
--- /dev/null
+++ b/Help/release/dev/WCDH-thread_local.rst
@@ -0,0 +1,7 @@
+WriteCompilerDetectionHeader thread_local portability
+-----------------------------------------------------
+
+* The :module:`WriteCompilerDetectionHeader` module learned to
+ create a define for portability of the cxx_thread_local feature. The define
+ expands to either the C++11 ``thread_local`` keyword, or a
+ pre-standardization compiler-specific equivalent, as appropriate.
diff --git a/Help/release/dev/WriteCompilerDetectionHeader-multi-file-lang.rst b/Help/release/dev/WriteCompilerDetectionHeader-multi-file-lang.rst
new file mode 100644
index 0000000..a8665da
--- /dev/null
+++ b/Help/release/dev/WriteCompilerDetectionHeader-multi-file-lang.rst
@@ -0,0 +1,6 @@
+WriteCompilerDetectionHeader-multi-file
+---------------------------------------
+
+* The :module:`WriteCompilerDetectionHeader` module learned to create
+ multiple output files per compiler and per language, instead of creating
+ one large file.
diff --git a/Help/release/dev/Xcode-clang-compile-features.rst b/Help/release/dev/Xcode-clang-compile-features.rst
new file mode 100644
index 0000000..d93475f
--- /dev/null
+++ b/Help/release/dev/Xcode-clang-compile-features.rst
@@ -0,0 +1,5 @@
+Xcode-clang-compile-features
+----------------------------
+
+* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
+ is now aware of features supported by Apple Clang (``AppleClang``).
diff --git a/Help/release/dev/add-FindJsonCpp.rst b/Help/release/dev/add-FindJsonCpp.rst
new file mode 100644
index 0000000..5d1cb18
--- /dev/null
+++ b/Help/release/dev/add-FindJsonCpp.rst
@@ -0,0 +1,5 @@
+add-FindJsonCpp
+---------------
+
+* A :module:`FindJsonCpp` module was introduced to find the
+ JsonCpp package.
diff --git a/Help/release/dev/add-xz-support.rst b/Help/release/dev/add-xz-support.rst
new file mode 100644
index 0000000..9bdf528
--- /dev/null
+++ b/Help/release/dev/add-xz-support.rst
@@ -0,0 +1,5 @@
+add-xz-support
+--------------
+
+* The :manual:`cmake(1)` ``-E tar`` command now supports creating
+ ``.xz``-compressed archives with the ``J`` flag.
diff --git a/Help/release/dev/cmake-E-tar-files-from.rst b/Help/release/dev/cmake-E-tar-files-from.rst
new file mode 100644
index 0000000..f6087ff
--- /dev/null
+++ b/Help/release/dev/cmake-E-tar-files-from.rst
@@ -0,0 +1,6 @@
+cmake-E-tar-files-from
+----------------------
+
+* The :manual:`cmake(1)` ``-E tar`` command learned a new
+ ``--files-from=<file>`` option to specify file names using
+ lines in a file to overcome command-line length limits.
diff --git a/Help/release/dev/cmake-E-tar-mtime.rst b/Help/release/dev/cmake-E-tar-mtime.rst
new file mode 100644
index 0000000..6496577
--- /dev/null
+++ b/Help/release/dev/cmake-E-tar-mtime.rst
@@ -0,0 +1,6 @@
+cmake-E-tar-mtime
+-----------------
+
+* The :manual:`cmake(1)` ``-E tar`` command learned a new
+ ``--mtime=<date>`` option to specify the modification time
+ recorded in tarball entries.
diff --git a/Help/release/dev/console-pool.rst b/Help/release/dev/console-pool.rst
index 19c2f19..1d9bdb8 100644
--- a/Help/release/dev/console-pool.rst
+++ b/Help/release/dev/console-pool.rst
@@ -5,4 +5,6 @@ console-pool
commands learned a new ``USES_TERMINAL`` option to request that
the command be given direct access to the terminal if possible.
The :generator:`Ninja` generator will places such commands in the
- ``console`` pool.
+ ``console`` pool. Build targets provided by CMake that are meant
+ for individual interactive use, such as ``install``, are now
+ placed in this pool.
diff --git a/Help/release/dev/curl-default-cainfo.rst b/Help/release/dev/curl-default-cainfo.rst
new file mode 100644
index 0000000..ed45d36
--- /dev/null
+++ b/Help/release/dev/curl-default-cainfo.rst
@@ -0,0 +1,8 @@
+curl-default-cainfo
+-------------------
+
+* When CMake is built with OpenSSL on systems other than Windows
+ and OS X, commands supporting network communication via ``https``,
+ such as :command:`file(DOWNLOAD)`, :command:`file(UPLOAD)`, and
+ :command:`ctest_submit`, now search for OS-configured certificate
+ authorities in a few ``/etc`` paths to be trusted automatically.
diff --git a/Help/release/dev/feature-record-msvc.rst b/Help/release/dev/feature-record-msvc.rst
new file mode 100644
index 0000000..a8c9fd1
--- /dev/null
+++ b/Help/release/dev/feature-record-msvc.rst
@@ -0,0 +1,5 @@
+feature-record-msvc
+-------------------
+
+* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
+ is now aware of features supported by Microsoft Visual Studio (``MSVC``).
diff --git a/Help/release/dev/file-strings-utf-16.rst b/Help/release/dev/file-strings-utf-16.rst
new file mode 100644
index 0000000..f40b63e
--- /dev/null
+++ b/Help/release/dev/file-strings-utf-16.rst
@@ -0,0 +1,5 @@
+file-strings-utf-16
+-------------------
+
+* The :command:`file(STRINGS)` now supports UTF-16LE, UTF-16BE,
+ UTF-32LE, UTF-32BE as ``ENCODING`` options.
diff --git a/Help/release/dev/find-msmpi.rst b/Help/release/dev/find-msmpi.rst
new file mode 100644
index 0000000..6ece5c8
--- /dev/null
+++ b/Help/release/dev/find-msmpi.rst
@@ -0,0 +1,4 @@
+find-msmpi
+----------
+
+* The :module:`FindMPI` module learned to find MS-MPI on Windows.
diff --git a/Help/release/dev/record-GNU-5-features.rst b/Help/release/dev/record-GNU-5-features.rst
new file mode 100644
index 0000000..0da9e75
--- /dev/null
+++ b/Help/release/dev/record-GNU-5-features.rst
@@ -0,0 +1,5 @@
+record-GNU-5-features
+---------------------
+
+* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
+ is now aware of features supported by GNU compiler version 5.0.
diff --git a/Help/release/dev/try-run-link-libraries.rst b/Help/release/dev/try-run-link-libraries.rst
new file mode 100644
index 0000000..4f20cbd
--- /dev/null
+++ b/Help/release/dev/try-run-link-libraries.rst
@@ -0,0 +1,5 @@
+try-run-link-libraries
+----------------------
+
+* The :command:`try_run` command learned to honor the ``LINK_LIBRARIES``
+ option just as :command:`try_compile` already does.
diff --git a/Help/release/dev/unsupported-compilers.rst b/Help/release/dev/unsupported-compilers.rst
new file mode 100644
index 0000000..1f3e8c1
--- /dev/null
+++ b/Help/release/dev/unsupported-compilers.rst
@@ -0,0 +1,22 @@
+unsupported-compilers
+---------------------
+
+* The implementation of CMake relies on some C++ compiler features which are
+ not supported by some older compilers. As a result, those old compilers
+ can no longer be used to build CMake itself. CMake continues to be able to
+ generate Makefiles and project files for users of those old compilers
+ however. The compilers known to no longer be capable of building CMake
+ are:
+
+ * MSVC 6 and 7.0 - superceded by VisualStudio 7.1 and newer compilers.
+ * GCC 2.95 - superceded by GCC 3 and newer compilers.
+ * Borland compilers - superceded by other Windows compilers.
+ * Compaq compilers - superceded by other compilers.
+ * Comeau compilers - superceded by other compilers.
+ * SGI compilers - IRIX was dropped as a host platform.
+
+ When building using SolarisStudio 12, the default ``libCStd`` standard
+ library is not sufficient to build CMake. The SolarisStudio distribution
+ supports compiler options to use ``STLPort4`` or ``libstdc++``. An
+ appropriate option to select the standard library is now added
+ automatically when building CMake with SolarisStudio compilers.
diff --git a/Help/release/dev/vs-shader-flags.rst b/Help/release/dev/vs-shader-flags.rst
new file mode 100644
index 0000000..0d3f6cc
--- /dev/null
+++ b/Help/release/dev/vs-shader-flags.rst
@@ -0,0 +1,5 @@
+vs-shader-flags
+---------------
+
+* A :prop_sf:`VS_SHADER_FLAGS` source file property was added to specify
+ additional shader flags to ``.hlsl`` files, for the Visual Studio generators.
diff --git a/Help/release/dev/windows-utf-8.rst b/Help/release/dev/windows-utf-8.rst
new file mode 100644
index 0000000..64cd616
--- /dev/null
+++ b/Help/release/dev/windows-utf-8.rst
@@ -0,0 +1,22 @@
+windows-utf-8
+-------------
+
+* On Windows, CMake learned to support international characters.
+ This allows use of characters from multiple (spoken) languages
+ in CMake code, paths to source files, configured files such as
+ ``.h.in`` files, and other files read and written by CMake.
+ Because CMake interoperates with many other tools, there may
+ still be some limitations when using certain international
+ characters.
+
+ Files written in the :manual:`cmake-language(7)`, such as
+ ``CMakeLists.txt`` or ``*.cmake`` files, are expected to be
+ encoded as UTF-8. If files are already ASCII, they will be
+ compatible. If files were in a different encoding, including
+ Latin 1, they will need to be converted.
+
+ The Visual Studio generators now write solution and project
+ files in UTF-8 instead of Windows-1252. Windows-1252 supported
+ Latin 1 languages such as those found in North and South America
+ and Western Europe. With UTF-8, additional languages are now
+ supported.
diff --git a/Help/release/dev/xcode-revise-make-program.rst b/Help/release/dev/xcode-revise-make-program.rst
new file mode 100644
index 0000000..f50cf44
--- /dev/null
+++ b/Help/release/dev/xcode-revise-make-program.rst
@@ -0,0 +1,6 @@
+xcode-revise-make-program
+-------------------------
+
+* The :generator:`Xcode` generator no longer requires a value for
+ the :variable:`CMAKE_MAKE_PROGRAM` variable to be located up front.
+ It now locates ``xcodebuild`` when needed at build time.
diff --git a/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst b/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
new file mode 100644
index 0000000..bd1a30f
--- /dev/null
+++ b/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
@@ -0,0 +1,6 @@
+CMAKE_FIND_PACKAGE_NAME
+-----------------------
+
+Defined by the :command:`find_package` command while loading
+a find module to record the caller-specified package name.
+See command documentation for details.
diff --git a/Help/variable/CMAKE_MAKE_PROGRAM.rst b/Help/variable/CMAKE_MAKE_PROGRAM.rst
index 97caa8a..f1d88a5 100644
--- a/Help/variable/CMAKE_MAKE_PROGRAM.rst
+++ b/Help/variable/CMAKE_MAKE_PROGRAM.rst
@@ -23,8 +23,15 @@ to configure the project:
otherwise undocumented ``cmakexbuild`` wrapper implementing some
workarounds).
- This generator stores ``CMAKE_MAKE_PROGRAM`` in the CMake cache
- so that it may be edited by the user.
+ This generator prefers to lookup the build tool at build time
+ rather than to store ``CMAKE_MAKE_PROGRAM`` in the CMake cache
+ ahead of time. This is because ``xcodebuild`` is easy to find,
+ the ``cmakexbuild`` wrapper is needed only for older Xcode versions,
+ and the path to ``cmakexbuild`` may be outdated if CMake itself moves.
+
+ For compatibility with versions of CMake prior to 3.2, if
+ a user or project explicitly adds ``CMAKE_MAKE_PROGRAM`` to
+ the CMake cache then CMake will use the specified value.
* The Visual Studio generators set this to the full path to
``MSBuild.exe`` (VS >= 10), ``devenv.com`` (VS 7,8,9),
diff --git a/Help/variable/MINGW.rst b/Help/variable/MINGW.rst
new file mode 100644
index 0000000..521d417
--- /dev/null
+++ b/Help/variable/MINGW.rst
@@ -0,0 +1,6 @@
+MINGW
+-----
+
+True when using MinGW
+
+Set to true when the compiler is some version of MinGW.