diff options
Diffstat (limited to 'Help')
-rw-r--r-- | Help/command/include_guard.rst | 46 | ||||
-rw-r--r-- | Help/dev/maint.rst | 2 | ||||
-rw-r--r-- | Help/manual/cmake-commands.7.rst | 1 | ||||
-rw-r--r-- | Help/manual/cmake-variables.7.rst | 1 | ||||
-rw-r--r-- | Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst | 15 | ||||
-rw-r--r-- | Help/release/3.9.rst | 2 | ||||
-rw-r--r-- | Help/release/dev/include-guard.rst | 8 | ||||
-rw-r--r-- | Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst | 10 |
8 files changed, 79 insertions, 6 deletions
diff --git a/Help/command/include_guard.rst b/Help/command/include_guard.rst new file mode 100644 index 0000000..62cce22 --- /dev/null +++ b/Help/command/include_guard.rst @@ -0,0 +1,46 @@ +include_guard +------------- + +Provides an include guard for the file currently being processed by CMake. + +:: + + include_guard([DIRECTORY|GLOBAL]) + +Sets up an include guard for the current CMake file (see the +:variable:`CMAKE_CURRENT_LIST_FILE` variable documentation). + +CMake will end its processing of the current file at the location of the +:command:`include_guard` command if the current file has already been +processed for the applicable scope (see below). This provides functionality +similar to the include guards commonly used in source headers or to the +``#pragma once`` directive. If the current file has been processed previously +for the applicable scope, the effect is as though :command:`return` had been +called. Do not call this command from inside a function being defined within +the current file. + +An optional argument specifying the scope of the guard may be provided. +Possible values for the option are: + +``DIRECTORY`` + The include guard applies within the current directory and below. The file + will only be included once within this directory scope, but may be included + again by other files outside of this directory (i.e. a parent directory or + another directory not pulled in by :command:`add_subdirectory` or + :command:`include` from the current file or its children). + +``GLOBAL`` + The include guard applies globally to the whole build. The current file + will only be included once regardless of the scope. + +If no arguments given, ``include_guard`` has the same scope as a variable, +meaning that the include guard effect is isolated by the most recent +function scope or current directory if no inner function scopes exist. +In this case the command behavior is the same as: + +.. code-block:: cmake + + if(__CURRENT_FILE_VAR__) + return() + endif() + set(__CURRENT_FILE_VAR__ TRUE) diff --git a/Help/dev/maint.rst b/Help/dev/maint.rst index c448445..889e4e3 100644 --- a/Help/dev/maint.rst +++ b/Help/dev/maint.rst @@ -29,6 +29,8 @@ command to integrate a merge request. Please check at least the following: * If a commit fixes a tracked issue, its commit message should have a trailing line such as ``Fixes: #00000``. +* Ensure that the MR adds sufficient documentation and test cases. + * Ensure that the MR has been tested sufficiently. Typically it should be staged for nightly testing with ``Do: stage``. Then manually review the `CMake CDash Page`_ to verify that no regressions were diff --git a/Help/manual/cmake-commands.7.rst b/Help/manual/cmake-commands.7.rst index 611c989..f8bfb32 100644 --- a/Help/manual/cmake-commands.7.rst +++ b/Help/manual/cmake-commands.7.rst @@ -44,6 +44,7 @@ These commands are always available. /command/get_property /command/if /command/include + /command/include_guard /command/list /command/macro /command/mark_as_advanced diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 1a2726d..ec8fedf 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -319,6 +319,7 @@ Variables that Control the Build /variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG /variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT /variable/CMAKE_MODULE_LINKER_FLAGS_INIT + /variable/CMAKE_MSVCIDE_RUN_PATH /variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX /variable/CMAKE_NO_BUILTIN_CHRPATH /variable/CMAKE_NO_SYSTEM_FROM_IMPORTED diff --git a/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst b/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst index 478a04c..ab311ea 100644 --- a/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst +++ b/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst @@ -1,11 +1,14 @@ VS_DOTNET_REFERENCEPROP_<refname>_TAG_<tagname> ----------------------------------------------- -Visual Studio managed project .NET reference with name ``<refname>`` -and hint path. +Defines an XML property ``<tagname>`` for a .NET reference +``<refname>``. -Adds one .NET reference to generated Visual Studio project. The -reference will have the name ``<refname>`` and will point to the -assembly given as value of the property. +Reference properties can be set for .NET references which are +defined by the target properties :prop_tgt:`VS_DOTNET_REFERENCES`, +:prop_tgt:`VS_DOTNET_REFERENCE_<refname>` +and also for project references to other C# targets which are +established by :command:`target_link_libraries()`. -See also the :prop_tgt:`VS_DOTNET_REFERENCE_<refname>` target property. +This property is only applicable to C# targets and Visual Studio +generators 2010 and later. diff --git a/Help/release/3.9.rst b/Help/release/3.9.rst index cd9476d..c31f533 100644 --- a/Help/release/3.9.rst +++ b/Help/release/3.9.rst @@ -16,6 +16,8 @@ Languages * ``CUDA`` is now supported by the :ref:`Visual Studio Generators` for VS 2010 and above. This complements the existing support by the :ref:`Makefile Generators` and the :generator:`Ninja` generator. + CUDA 8.0.61 or higher is recommended due to known bugs in the VS + integration by earlier versions. * CMake is now aware of the :prop_tgt:`C++ standards <CXX_STANDARD>` and :prop_tgt:`C standards <C_STANDARD>` and their associated meta-features for diff --git a/Help/release/dev/include-guard.rst b/Help/release/dev/include-guard.rst new file mode 100644 index 0000000..9b0c64c --- /dev/null +++ b/Help/release/dev/include-guard.rst @@ -0,0 +1,8 @@ +include_guard +------------- + +* The :command:`include_guard` command was introduced to allow guarding + CMake scripts from being included more than once. The command supports + ``DIRECTORY`` and ``GLOBAL`` options to adjust the corresponding include guard + scope. If no options given, include guard is similar to basic variable-based + check. diff --git a/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst b/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst new file mode 100644 index 0000000..22e727f --- /dev/null +++ b/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst @@ -0,0 +1,10 @@ +CMAKE_MSVCIDE_RUN_PATH +---------------------- + +Extra PATH locations that should be used when executing +:command:`add_custom_command` or :command:`add_custom_target` when using the +:generator:`Visual Studio 9 2008` (or above) generator. This allows +for running commands and using dll's that the IDE environment is not aware of. + +If not set explicitly the value is initialized by the ``CMAKE_MSVCIDE_RUN_PATH`` +environment variable, if set, and otherwise left empty. |