Merge remote-tracking branch 'origin/release'
This commit is contained in:
commit
44c3a1b8a8
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
# This configuration requires clang-format 3.8 or higher.
|
||||
BasedOnStyle: Mozilla
|
||||
AlignOperands: false
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakAfterDefinitionReturnType: None
|
||||
ColumnLimit: 79
|
||||
Standard: Cpp03
|
||||
...
|
|
@ -10,7 +10,6 @@ configure crlf=input
|
|||
*.bat -crlf
|
||||
*.bat.in -crlf
|
||||
*.dsp -crlf
|
||||
*.dsptemplate -crlf
|
||||
*.dsw -crlf
|
||||
*.pfx -crlf
|
||||
*.png -crlf
|
||||
|
@ -22,3 +21,5 @@ configure crlf=input
|
|||
*.cxx whitespace=tab-in-indent
|
||||
*.txt whitespace=tab-in-indent
|
||||
*.cmake whitespace=tab-in-indent
|
||||
|
||||
*.rst whitespace=tab-in-indent conflict-marker-size=79
|
||||
|
|
|
@ -121,14 +121,19 @@ _cmake()
|
|||
grep -v "^cmake version " )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-manual)
|
||||
COMPREPLY=( $( compgen -W '$( cmake --help-manual-list 2>/dev/null|
|
||||
grep -v "^cmake version " | sed -e "s/([0-9])$//" )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-module)
|
||||
COMPREPLY=( $( compgen -W '$( cmake --help-module-list 2>/dev/null|
|
||||
grep -v "^cmake version " )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-policy)
|
||||
COMPREPLY=( $( compgen -W '$( cmake --help-policies 2>/dev/null |
|
||||
grep "^ CMP" 2>/dev/null )' -- "$cur" ) )
|
||||
COMPREPLY=( $( compgen -W '$( cmake --help-policy-list 2>/dev/null |
|
||||
grep -v "^cmake version " )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-property)
|
||||
|
|
|
@ -48,6 +48,26 @@ _cpack()
|
|||
grep -v "^cpack version " )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-manual)
|
||||
COMPREPLY=( $( compgen -W '$( cpack --help-manual-list 2>/dev/null|
|
||||
grep -v "^cpack version " | sed -e "s/([0-9])$//" )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-module)
|
||||
COMPREPLY=( $( compgen -W '$( cpack --help-module-list 2>/dev/null|
|
||||
grep -v "^cpack version " )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-policy)
|
||||
COMPREPLY=( $( compgen -W '$( cpack --help-policy-list 2>/dev/null |
|
||||
grep -v "^cpack version " )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-property)
|
||||
COMPREPLY=( $( compgen -W '$( cpack --help-property-list \
|
||||
2>/dev/null | grep -v "^cpack version " )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-variable)
|
||||
COMPREPLY=( $( compgen -W '$( cpack --help-variable-list \
|
||||
2>/dev/null | grep -v "^cpack version " )' -- "$cur" ) )
|
||||
|
|
|
@ -72,11 +72,37 @@ _ctest()
|
|||
COMPREPLY=( $( compgen -W '0 1' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
|
||||
--help-command)
|
||||
COMPREPLY=( $( compgen -W '$( ctest --help-command-list 2>/dev/null|
|
||||
grep -v "^ctest version " )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-manual)
|
||||
COMPREPLY=( $( compgen -W '$( ctest --help-manual-list 2>/dev/null|
|
||||
grep -v "^ctest version " | sed -e "s/([0-9])$//" )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-module)
|
||||
COMPREPLY=( $( compgen -W '$( ctest --help-module-list 2>/dev/null|
|
||||
grep -v "^ctest version " )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-policy)
|
||||
COMPREPLY=( $( compgen -W '$( ctest --help-policy-list 2>/dev/null |
|
||||
grep -v "^ctest version " )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-property)
|
||||
COMPREPLY=( $( compgen -W '$( ctest --help-property-list \
|
||||
2>/dev/null | grep -v "^ctest version " )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
--help-variable)
|
||||
COMPREPLY=( $( compgen -W '$( ctest --help-variable-list \
|
||||
2>/dev/null | grep -v "^ctest version " )' -- "$cur" ) )
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$cur" == -* ]]; then
|
||||
|
|
|
@ -228,7 +228,9 @@ the indentation. Otherwise it retains the same position on the line"
|
|||
;;
|
||||
;; Indentation increment.
|
||||
;;
|
||||
(defvar cmake-tab-width 2)
|
||||
(defcustom cmake-tab-width 2
|
||||
"Number of columns to indent cmake blocks"
|
||||
:type 'integer)
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
|
@ -304,7 +306,8 @@ and store the result as a list in LISTVAR."
|
|||
(save-window-excursion
|
||||
(cmake-command-run (concat "--help-" listname "-list") nil temp-buffer-name)
|
||||
(with-current-buffer temp-buffer-name
|
||||
(set listvar (cdr (split-string (buffer-substring-no-properties (point-min) (point-max)) "\n" t))))))
|
||||
; FIXME: Ignore first line if it is "cmake version ..." from CMake < 3.0.
|
||||
(set listvar (split-string (buffer-substring-no-properties (point-min) (point-max)) "\n" t)))))
|
||||
(symbol-value listvar)
|
||||
))
|
||||
)
|
||||
|
|
|
@ -327,7 +327,15 @@ macro (CMAKE_BUILD_UTILITIES)
|
|||
if(CMAKE_TESTS_CDASH_SERVER)
|
||||
set(CMAKE_CURL_TEST_URL "${CMAKE_TESTS_CDASH_SERVER}/user.php")
|
||||
endif()
|
||||
option(CMAKE_USE_OPENSSL "Use OpenSSL." OFF)
|
||||
set(_CMAKE_USE_OPENSSL_DEFAULT OFF)
|
||||
if(NOT DEFINED CMAKE_USE_OPENSSL AND NOT WIN32 AND NOT APPLE
|
||||
AND CMAKE_SYSTEM_NAME MATCHES "(Linux|FreeBSD)")
|
||||
find_package(OpenSSL QUIET)
|
||||
if(OPENSSL_FOUND)
|
||||
set(_CMAKE_USE_OPENSSL_DEFAULT ON)
|
||||
endif()
|
||||
endif()
|
||||
option(CMAKE_USE_OPENSSL "Use OpenSSL." ${_CMAKE_USE_OPENSSL_DEFAULT})
|
||||
mark_as_advanced(CMAKE_USE_OPENSSL)
|
||||
if(CMAKE_USE_OPENSSL)
|
||||
set(CURL_CA_BUNDLE "" CACHE FILEPATH "Path to SSL CA Certificate Bundle")
|
||||
|
|
|
@ -23,6 +23,16 @@ Please base all new work on the ``master`` branch. Then use
|
|||
``git format-patch`` to produce patches suitable to post to
|
||||
the mailing list.
|
||||
|
||||
Code Style
|
||||
==========
|
||||
|
||||
We use `clang-format`_ to define our style for C++ code in the CMake source
|
||||
tree. See the `.clang-format`_ configuration file for our style settings.
|
||||
Use ``clang-format`` version 3.8 or higher to format source files.
|
||||
|
||||
.. _`clang-format`: http://clang.llvm.org/docs/ClangFormat.html
|
||||
.. _`.clang-format`: .clang-format
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
|
|||
"[Qq]t([Cc]ore|[Gg]ui|[Ww]idgets).*warning.*conversion.*may alter its value"
|
||||
"warning:.*is.*very unsafe.*consider using.*"
|
||||
"warning:.*is.*misused, please use.*"
|
||||
"CMakeSetupManifest.xml.*manifest authoring warning.*Unrecognized Element"
|
||||
"cmake.version.manifest.*manifest authoring warning.*Unrecognized Element"
|
||||
"cc-3968 CC: WARNING File.*" # "implicit" truncation by static_cast
|
||||
"ld: warning: directory not found for option .-(F|L)"
|
||||
"ld: warning .*/libgcc.a archive's cputype"
|
||||
|
@ -62,6 +62,7 @@ list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
|
|||
"warning.*This version of Mac OS X is unsupported"
|
||||
"clang.*: warning: argument unused during compilation: .-g"
|
||||
"note: in expansion of macro" # diagnostic context note
|
||||
"cm(StringCommand|CTestTestHandler)\\.cxx.*warning.*rand.*may return deterministic values"
|
||||
"cm(StringCommand|CTestTestHandler)\\.cxx.*warning.*rand.*isn.*t random" # we do not do crypto
|
||||
"cm(StringCommand|CTestTestHandler)\\.cxx.*warning.*srand.*seed choices are.*poor" # we do not do crypto
|
||||
|
||||
|
@ -80,6 +81,7 @@ list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
|
|||
"index.c.*warning: Access to field.*results in a dereference of a null pointer.*loaded from variable.*"
|
||||
"cm_sha2.*warning: Value stored to.*is never read"
|
||||
"testProcess.*warning: Dereference of null pointer .loaded from variable .invalidAddress.."
|
||||
"liblzma/simple/x86.c:[0-9]+:[0-9]+: warning: The result of the '<<' expression is undefined"
|
||||
)
|
||||
|
||||
if(NOT "@CMAKE_GENERATOR@" MATCHES "Xcode")
|
||||
|
|
|
@ -76,9 +76,12 @@ The options are:
|
|||
The optional ``ARGS`` argument is for backward compatibility and
|
||||
will be ignored.
|
||||
|
||||
If ``COMMAND`` specifies an executable target (created by the
|
||||
If ``COMMAND`` specifies an executable target name (created by the
|
||||
:command:`add_executable` command) it will automatically be replaced
|
||||
by the location of the executable created at build time.
|
||||
by the location of the executable created at build time. If set, the
|
||||
:prop_tgt:`CROSSCOMPILING_EMULATOR` executable target property will
|
||||
also be prepended to the command to allow the executable to run on
|
||||
the host.
|
||||
(Use the ``TARGET_FILE``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>` to
|
||||
reference an executable later in the command line.)
|
||||
|
|
|
@ -58,9 +58,12 @@ The options are:
|
|||
:command:`file(GENERATE)` command to create it, and then specify
|
||||
a ``COMMAND`` to launch it.)
|
||||
|
||||
If ``COMMAND`` specifies an executable target (created by the
|
||||
If ``COMMAND`` specifies an executable target name (created by the
|
||||
:command:`add_executable` command) it will automatically be replaced
|
||||
by the location of the executable created at build time.
|
||||
by the location of the executable created at build time. If set, the
|
||||
:prop_tgt:`CROSSCOMPILING_EMULATOR` executable target property will
|
||||
also be prepended to the command to allow the executable to run on
|
||||
the host.
|
||||
Additionally a target-level dependency will be added so that the
|
||||
executable target will be built before this custom target.
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@ does not appear in the generated buildsystem as a make target. The
|
|||
``<target>`` may not be an :ref:`Imported Target <Imported Targets>` or an
|
||||
``ALIAS``. ``ALIAS`` targets can be used as targets to read properties
|
||||
from, executables for custom commands and custom targets. They can also be
|
||||
tested for existance with the regular :command:`if(TARGET)` subcommand.
|
||||
tested for existence with the regular :command:`if(TARGET)` subcommand.
|
||||
The ``<name>`` may not be used to modify properties of ``<target>``, that
|
||||
is, it may not be used as the operand of :command:`set_property`,
|
||||
:command:`set_target_properties`, :command:`target_link_libraries` etc.
|
||||
|
|
|
@ -123,7 +123,7 @@ used to refer to ``<target>`` in subsequent commands. The ``<name>`` does
|
|||
not appear in the generatedbuildsystem as a make target. The ``<target>``
|
||||
may not be an :ref:`Imported Target <Imported Targets>` or an ``ALIAS``.
|
||||
``ALIAS`` targets can be used as linkable targets and as targets to
|
||||
read properties from. They can also be tested for existance with the
|
||||
read properties from. They can also be tested for existence with the
|
||||
regular :command:`if(TARGET)` subcommand. The ``<name>`` may not be used
|
||||
to modify properties of ``<target>``, that is, it may not be used as the
|
||||
operand of :command:`set_property`, :command:`set_target_properties`,
|
||||
|
|
|
@ -35,7 +35,7 @@ compatibility. Use the first signature instead.
|
|||
It sets the given ``<cachevariable>`` to a command-line string as
|
||||
above but without the ``--target`` option.
|
||||
The ``<makecommand>`` is ignored but should be the full path to
|
||||
msdev, devenv, nmake, make or one of the end user build tools
|
||||
devenv, nmake, make or one of the end user build tools
|
||||
for legacy invocations.
|
||||
|
||||
.. note::
|
||||
|
|
|
@ -1,29 +1,14 @@
|
|||
cmake_minimum_required
|
||||
----------------------
|
||||
|
||||
Set the minimum required version of cmake for a project.
|
||||
|
||||
::
|
||||
Set the minimum required version of cmake for a project and
|
||||
update `Policy Settings`_ to match the version given::
|
||||
|
||||
cmake_minimum_required(VERSION major.minor[.patch[.tweak]]
|
||||
[FATAL_ERROR])
|
||||
|
||||
If the current version of CMake is lower than that required it will
|
||||
stop processing the project and report an error. When a version
|
||||
higher than 2.4 is specified the command implicitly invokes
|
||||
|
||||
::
|
||||
|
||||
cmake_policy(VERSION major[.minor[.patch[.tweak]]])
|
||||
|
||||
which sets the cmake policy version level to the version specified.
|
||||
When version 2.4 or lower is given the command implicitly invokes
|
||||
|
||||
::
|
||||
|
||||
cmake_policy(VERSION 2.4)
|
||||
|
||||
which enables compatibility features for CMake 2.4 and lower.
|
||||
stop processing the project and report an error.
|
||||
|
||||
The ``FATAL_ERROR`` option is accepted but ignored by CMake 2.6 and
|
||||
higher. It should be specified so CMake versions 2.4 and lower fail
|
||||
|
@ -39,3 +24,27 @@ with an error instead of just a warning.
|
|||
Calling ``cmake_minimum_required()`` inside a :command:`function`
|
||||
limits some effects to the function scope when invoked. Such calls
|
||||
should not be made with the intention of having global effects.
|
||||
|
||||
Policy Settings
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
The ``cmake_minimum_required(VERSION)`` command implicitly invokes the
|
||||
:command:`cmake_policy(VERSION)` command to specify that the current
|
||||
project code is written for the given version of CMake.
|
||||
All policies introduced in the specified version or earlier will be
|
||||
set to use NEW behavior. All policies introduced after the specified
|
||||
version will be unset. This effectively requests behavior preferred
|
||||
as of a given CMake version and tells newer CMake versions to warn
|
||||
about their new policies.
|
||||
|
||||
When a version higher than 2.4 is specified the command implicitly
|
||||
invokes::
|
||||
|
||||
cmake_policy(VERSION major[.minor[.patch[.tweak]]])
|
||||
|
||||
which sets the cmake policy version level to the version specified.
|
||||
When version 2.4 or lower is given the command implicitly invokes::
|
||||
|
||||
cmake_policy(VERSION 2.4)
|
||||
|
||||
which enables compatibility features for CMake 2.4 and lower.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -14,7 +14,8 @@ find_file
|
|||
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_INCLUDE_PATH`
|
||||
.. |CMAKE_XXX_MAC_PATH| replace:: :variable:`CMAKE_FRAMEWORK_PATH`
|
||||
|
||||
.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``INCLUDE``,
|
||||
.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``INCLUDE``.
|
||||
On Windows hosts:
|
||||
``<prefix>/include/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE`
|
||||
is set, and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|, and the
|
||||
directories in ``PATH`` itself.
|
||||
|
|
|
@ -14,7 +14,8 @@ find_library
|
|||
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_LIBRARY_PATH`
|
||||
.. |CMAKE_XXX_MAC_PATH| replace:: :variable:`CMAKE_FRAMEWORK_PATH`
|
||||
|
||||
.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``LIB``,
|
||||
.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``LIB``.
|
||||
On Windows hosts:
|
||||
``<prefix>/lib/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE` is set,
|
||||
and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|,
|
||||
and the directories in ``PATH`` itself.
|
||||
|
|
|
@ -14,7 +14,8 @@ find_path
|
|||
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_INCLUDE_PATH`
|
||||
.. |CMAKE_XXX_MAC_PATH| replace:: :variable:`CMAKE_FRAMEWORK_PATH`
|
||||
|
||||
.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``INCLUDE``,
|
||||
.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``INCLUDE``.
|
||||
On Windows hosts:
|
||||
``<prefix>/include/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE`
|
||||
is set, and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|, and the
|
||||
directories in ``PATH`` itself.
|
||||
|
|
|
@ -19,5 +19,4 @@ command to make things depend on the external project.
|
|||
``TYPE``, ``GUID`` and ``PLATFORM`` are optional parameters that allow one to
|
||||
specify the type of project, id (GUID) of the project and the name of
|
||||
the target platform. This is useful for projects requiring values
|
||||
other than the default (e.g. WIX projects). These options are not
|
||||
supported by the Visual Studio 6 generator.
|
||||
other than the default (e.g. WIX projects).
|
||||
|
|
|
@ -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
|
||||
|
@ -75,7 +79,8 @@ Installing Targets
|
|||
[PERMISSIONS permissions...]
|
||||
[CONFIGURATIONS [Debug|Release|...]]
|
||||
[COMPONENT <component>]
|
||||
[OPTIONAL] [NAMELINK_ONLY|NAMELINK_SKIP]
|
||||
[OPTIONAL] [EXCLUDE_FROM_ALL]
|
||||
[NAMELINK_ONLY|NAMELINK_SKIP]
|
||||
] [...]
|
||||
[INCLUDES DESTINATION [<dir> ...]]
|
||||
)
|
||||
|
@ -177,7 +182,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
|
||||
|
@ -211,7 +216,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...]] [...])
|
||||
|
||||
|
@ -287,7 +293,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
|
||||
|
@ -312,7 +318,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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -277,6 +277,7 @@ specifiers:
|
|||
%j The day of the current year (001-366).
|
||||
%m The month of the current year (01-12).
|
||||
%M The minute of the current hour (00-59).
|
||||
%s Seconds since midnight (UTC) 1-Jan-1970 (UNIX time).
|
||||
%S The second of the current minute.
|
||||
60 represents a leap second. (00-60)
|
||||
%U The week number of the current year (00-53).
|
||||
|
|
|
@ -112,3 +112,10 @@ The current setting of :policy:`CMP0065` is set in the generated project.
|
|||
|
||||
Set the :variable:`CMAKE_TRY_COMPILE_CONFIGURATION` variable to choose
|
||||
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.
|
||||
|
|
|
@ -6,3 +6,7 @@ Generates build.ninja files.
|
|||
A build.ninja file is generated into the build tree. Recent versions
|
||||
of the ninja program can build the project through the "all" target.
|
||||
An "install" target is also provided.
|
||||
|
||||
For each subdirectory ``sub/dir`` of the project an additional target
|
||||
named ``sub/dir/all`` is generated that depends on all targets required
|
||||
by that subdirectory.
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
Visual Studio 6
|
||||
---------------
|
||||
|
||||
Deprected. Generates Visual Studio 6 project files.
|
||||
|
||||
.. note::
|
||||
This generator is deprecated and will be removed
|
||||
in a future version of CMake. It will still be
|
||||
possible to build with VS 6 tools using the
|
||||
:generator:`NMake Makefiles` generator.
|
||||
Removed. This once generated Visual Studio 6 project files, but the
|
||||
generator has been removed since CMake 3.6. It is still possible to
|
||||
build with VS 6 tools using the :generator:`NMake Makefiles` generator.
|
||||
|
|
|
@ -1,4 +1,10 @@
|
|||
Visual Studio 7 .NET 2003
|
||||
-------------------------
|
||||
|
||||
Generates Visual Studio .NET 2003 project files.
|
||||
Deprecated. Generates Visual Studio .NET 2003 project files.
|
||||
|
||||
.. note::
|
||||
This generator is deprecated and will be removed
|
||||
in a future version of CMake. It will still be
|
||||
possible to build with VS 7.1 tools using the
|
||||
:generator:`NMake Makefiles` generator.
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
Visual Studio 7
|
||||
---------------
|
||||
|
||||
Deprected. Generates Visual Studio .NET 2002 project files.
|
||||
|
||||
.. note::
|
||||
This generator is deprecated and will be removed
|
||||
in a future version of CMake. It will still be
|
||||
possible to build with VS 7.0 tools using the
|
||||
:generator:`NMake Makefiles` generator.
|
||||
Removed. This once generated Visual Studio .NET 2002 project files, but
|
||||
the generator has been removed since CMake 3.6. It is still possible to
|
||||
build with VS 7.0 tools using the :generator:`NMake Makefiles` generator.
|
||||
|
|
|
@ -150,7 +150,7 @@ and :prop_tgt:`INTERFACE_COMPILE_OPTIONS` target properties.
|
|||
Each of the commands has a ``PRIVATE``, ``PUBLIC`` and ``INTERFACE`` mode. The
|
||||
``PRIVATE`` mode populates only the non-``INTERFACE_`` variant of the target
|
||||
property and the ``INTERFACE`` mode populates only the ``INTERFACE_`` variants.
|
||||
The ``PUBLIC`` mode populates both variants of the repective target property.
|
||||
The ``PUBLIC`` mode populates both variants of the respective target property.
|
||||
Each command may be invoked with multiple uses of each keyword:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
|
|
@ -309,3 +309,4 @@ versions specified for each:
|
|||
* ``GNU``: GNU compiler versions 4.4 through 5.0.
|
||||
* ``MSVC``: Microsoft Visual Studio versions 2010 through 2015.
|
||||
* ``SunPro``: Oracle SolarisStudio version 12.4.
|
||||
* ``Intel``: Intel compiler versions 12.1 through 16.0 on UNIX platforms.
|
||||
|
|
|
@ -225,7 +225,7 @@ comparison::
|
|||
-I$<JOIN:$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>, -I>
|
||||
|
||||
generates a string of the entries in the :prop_tgt:`INCLUDE_DIRECTORIES` target
|
||||
property with each entry preceeded by ``-I``. Note that a more-complete use
|
||||
property with each entry preceded by ``-I``. Note that a more-complete use
|
||||
in this situation would require first checking if the INCLUDE_DIRECTORIES
|
||||
property is non-empty::
|
||||
|
||||
|
|
|
@ -135,6 +135,7 @@ All Modules
|
|||
/module/FindLibLZMA
|
||||
/module/FindLibXml2
|
||||
/module/FindLibXslt
|
||||
/module/FindLTTngUST
|
||||
/module/FindLua50
|
||||
/module/FindLua51
|
||||
/module/FindLua
|
||||
|
|
|
@ -645,7 +645,7 @@ Disabling the Package Registry
|
|||
------------------------------
|
||||
|
||||
In some cases using the Package Registries is not desirable. CMake
|
||||
allows to disable them using the following variables:
|
||||
allows one to disable them using the following variables:
|
||||
|
||||
* :variable:`CMAKE_EXPORT_NO_PACKAGE_REGISTRY` disables the
|
||||
:command:`export(PACKAGE)` command.
|
||||
|
|
|
@ -51,75 +51,117 @@ The :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` variable may also be used
|
|||
to determine whether to report an error on use of deprecated macros or
|
||||
functions.
|
||||
|
||||
All Policies
|
||||
============
|
||||
Policies Introduced by CMake 3.4
|
||||
================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
/policy/CMP0000
|
||||
/policy/CMP0001
|
||||
/policy/CMP0002
|
||||
/policy/CMP0003
|
||||
/policy/CMP0004
|
||||
/policy/CMP0005
|
||||
/policy/CMP0006
|
||||
/policy/CMP0007
|
||||
/policy/CMP0008
|
||||
/policy/CMP0009
|
||||
/policy/CMP0010
|
||||
/policy/CMP0011
|
||||
/policy/CMP0012
|
||||
/policy/CMP0013
|
||||
/policy/CMP0014
|
||||
/policy/CMP0015
|
||||
/policy/CMP0016
|
||||
/policy/CMP0017
|
||||
/policy/CMP0018
|
||||
/policy/CMP0019
|
||||
/policy/CMP0020
|
||||
/policy/CMP0021
|
||||
/policy/CMP0022
|
||||
/policy/CMP0023
|
||||
/policy/CMP0024
|
||||
/policy/CMP0025
|
||||
/policy/CMP0026
|
||||
/policy/CMP0027
|
||||
/policy/CMP0028
|
||||
/policy/CMP0029
|
||||
/policy/CMP0030
|
||||
/policy/CMP0031
|
||||
/policy/CMP0032
|
||||
/policy/CMP0033
|
||||
/policy/CMP0034
|
||||
/policy/CMP0035
|
||||
/policy/CMP0036
|
||||
/policy/CMP0037
|
||||
/policy/CMP0038
|
||||
/policy/CMP0039
|
||||
/policy/CMP0040
|
||||
/policy/CMP0041
|
||||
/policy/CMP0042
|
||||
/policy/CMP0043
|
||||
/policy/CMP0044
|
||||
/policy/CMP0045
|
||||
/policy/CMP0046
|
||||
/policy/CMP0047
|
||||
/policy/CMP0048
|
||||
/policy/CMP0049
|
||||
/policy/CMP0050
|
||||
/policy/CMP0051
|
||||
/policy/CMP0052
|
||||
/policy/CMP0053
|
||||
/policy/CMP0054
|
||||
/policy/CMP0055
|
||||
/policy/CMP0056
|
||||
/policy/CMP0057
|
||||
/policy/CMP0058
|
||||
/policy/CMP0059
|
||||
/policy/CMP0060
|
||||
/policy/CMP0061
|
||||
/policy/CMP0062
|
||||
/policy/CMP0063
|
||||
/policy/CMP0064
|
||||
/policy/CMP0065
|
||||
CMP0065: Do not add flags to export symbols from executables without the ENABLE_EXPORTS target property. </policy/CMP0065>
|
||||
CMP0064: Support new TEST if() operator. </policy/CMP0064>
|
||||
|
||||
Policies Introduced by CMake 3.3
|
||||
================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
CMP0063: Honor visibility properties for all target types. </policy/CMP0063>
|
||||
CMP0062: Disallow install() of export() result. </policy/CMP0062>
|
||||
CMP0061: CTest does not by default tell make to ignore errors (-i). </policy/CMP0061>
|
||||
CMP0060: Link libraries by full path even in implicit directories. </policy/CMP0060>
|
||||
CMP0059: Do not treat DEFINITIONS as a built-in directory property. </policy/CMP0059>
|
||||
CMP0058: Ninja requires custom command byproducts to be explicit. </policy/CMP0058>
|
||||
CMP0057: Support new IN_LIST if() operator. </policy/CMP0057>
|
||||
|
||||
Policies Introduced by CMake 3.2
|
||||
================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
CMP0056: Honor link flags in try_compile() source-file signature. </policy/CMP0056>
|
||||
CMP0055: Strict checking for break() command. </policy/CMP0055>
|
||||
|
||||
Policies Introduced by CMake 3.1
|
||||
================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
CMP0054: Only interpret if() arguments as variables or keywords when unquoted. </policy/CMP0054>
|
||||
CMP0053: Simplify variable reference and escape sequence evaluation. </policy/CMP0053>
|
||||
CMP0052: Reject source and build dirs in installed INTERFACE_INCLUDE_DIRECTORIES. </policy/CMP0052>
|
||||
CMP0051: List TARGET_OBJECTS in SOURCES target property. </policy/CMP0051>
|
||||
|
||||
Policies Introduced by CMake 3.0
|
||||
================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
CMP0050: Disallow add_custom_command SOURCE signatures. </policy/CMP0050>
|
||||
CMP0049: Do not expand variables in target source entries. </policy/CMP0049>
|
||||
CMP0048: project() command manages VERSION variables. </policy/CMP0048>
|
||||
CMP0047: Use QCC compiler id for the qcc drivers on QNX. </policy/CMP0047>
|
||||
CMP0046: Error on non-existent dependency in add_dependencies. </policy/CMP0046>
|
||||
CMP0045: Error on non-existent target in get_target_property. </policy/CMP0045>
|
||||
CMP0044: Case sensitive Lang_COMPILER_ID generator expressions. </policy/CMP0044>
|
||||
CMP0043: Ignore COMPILE_DEFINITIONS_Config properties. </policy/CMP0043>
|
||||
CMP0042: MACOSX_RPATH is enabled by default. </policy/CMP0042>
|
||||
CMP0041: Error on relative include with generator expression. </policy/CMP0041>
|
||||
CMP0040: The target in the TARGET signature of add_custom_command() must exist. </policy/CMP0040>
|
||||
CMP0039: Utility targets may not have link dependencies. </policy/CMP0039>
|
||||
CMP0038: Targets may not link directly to themselves. </policy/CMP0038>
|
||||
CMP0037: Target names should not be reserved and should match a validity pattern. </policy/CMP0037>
|
||||
CMP0036: The build_name command should not be called. </policy/CMP0036>
|
||||
CMP0035: The variable_requires command should not be called. </policy/CMP0035>
|
||||
CMP0034: The utility_source command should not be called. </policy/CMP0034>
|
||||
CMP0033: The export_library_dependencies command should not be called. </policy/CMP0033>
|
||||
CMP0032: The output_required_files command should not be called. </policy/CMP0032>
|
||||
CMP0031: The load_command command should not be called. </policy/CMP0031>
|
||||
CMP0030: The use_mangled_mesa command should not be called. </policy/CMP0030>
|
||||
CMP0029: The subdir_depends command should not be called. </policy/CMP0029>
|
||||
CMP0028: Double colon in target name means ALIAS or IMPORTED target. </policy/CMP0028>
|
||||
CMP0027: Conditionally linked imported targets with missing include directories. </policy/CMP0027>
|
||||
CMP0026: Disallow use of the LOCATION target property. </policy/CMP0026>
|
||||
CMP0025: Compiler id for Apple Clang is now AppleClang. </policy/CMP0025>
|
||||
CMP0024: Disallow include export result. </policy/CMP0024>
|
||||
|
||||
Policies Introduced by CMake 2.8
|
||||
================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
CMP0023: Plain and keyword target_link_libraries signatures cannot be mixed. </policy/CMP0023>
|
||||
CMP0022: INTERFACE_LINK_LIBRARIES defines the link interface. </policy/CMP0022>
|
||||
CMP0021: Fatal error on relative paths in INCLUDE_DIRECTORIES target property. </policy/CMP0021>
|
||||
CMP0020: Automatically link Qt executables to qtmain target on Windows. </policy/CMP0020>
|
||||
CMP0019: Do not re-expand variables in include and link information. </policy/CMP0019>
|
||||
CMP0018: Ignore CMAKE_SHARED_LIBRARY_Lang_FLAGS variable. </policy/CMP0018>
|
||||
CMP0017: Prefer files from the CMake module directory when including from there. </policy/CMP0017>
|
||||
CMP0016: target_link_libraries() reports error if its only argument is not a target. </policy/CMP0016>
|
||||
CMP0015: link_directories() treats paths relative to the source dir. </policy/CMP0015>
|
||||
CMP0014: Input directories must have CMakeLists.txt. </policy/CMP0014>
|
||||
CMP0013: Duplicate binary directories are not allowed. </policy/CMP0013>
|
||||
CMP0012: if() recognizes numbers and boolean constants. </policy/CMP0012>
|
||||
|
||||
Policies Introduced by CMake 2.6
|
||||
================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
CMP0011: Included scripts do automatic cmake_policy PUSH and POP. </policy/CMP0011>
|
||||
CMP0010: Bad variable reference syntax is an error. </policy/CMP0010>
|
||||
CMP0009: FILE GLOB_RECURSE calls should not follow symlinks by default. </policy/CMP0009>
|
||||
CMP0008: Libraries linked by full-path must have a valid library file name. </policy/CMP0008>
|
||||
CMP0007: list command no longer ignores empty elements. </policy/CMP0007>
|
||||
CMP0006: Installing MACOSX_BUNDLE targets requires a BUNDLE DESTINATION. </policy/CMP0006>
|
||||
CMP0005: Preprocessor definition values are now escaped automatically. </policy/CMP0005>
|
||||
CMP0004: Libraries linked may not have leading or trailing whitespace. </policy/CMP0004>
|
||||
CMP0003: Libraries linked via full path no longer produce linker search paths. </policy/CMP0003>
|
||||
CMP0002: Logical target names must be globally unique. </policy/CMP0002>
|
||||
CMP0001: CMAKE_BACKWARDS_COMPATIBILITY should no longer be used. </policy/CMP0001>
|
||||
CMP0000: A minimum required CMake version must be specified. </policy/CMP0000>
|
||||
|
|
|
@ -76,6 +76,7 @@ Properties on Directories
|
|||
/prop_dir/VARIABLES
|
||||
/prop_dir/VS_GLOBAL_SECTION_POST_section
|
||||
/prop_dir/VS_GLOBAL_SECTION_PRE_section
|
||||
/prop_dir/VS_STARTUP_PROJECT
|
||||
|
||||
.. _`Target Properties`:
|
||||
|
||||
|
@ -141,6 +142,7 @@ Properties on Targets
|
|||
/prop_tgt/CXX_STANDARD_REQUIRED
|
||||
/prop_tgt/DEBUG_POSTFIX
|
||||
/prop_tgt/DEFINE_SYMBOL
|
||||
/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY
|
||||
/prop_tgt/EchoString
|
||||
/prop_tgt/ENABLE_EXPORTS
|
||||
/prop_tgt/EXCLUDE_FROM_ALL
|
||||
|
@ -195,6 +197,7 @@ Properties on Targets
|
|||
/prop_tgt/JOB_POOL_COMPILE
|
||||
/prop_tgt/JOB_POOL_LINK
|
||||
/prop_tgt/LABELS
|
||||
/prop_tgt/LANG_CLANG_TIDY
|
||||
/prop_tgt/LANG_COMPILER_LAUNCHER
|
||||
/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE
|
||||
/prop_tgt/LANG_VISIBILITY_PRESET
|
||||
|
@ -255,6 +258,7 @@ Properties on Targets
|
|||
/prop_tgt/TYPE
|
||||
/prop_tgt/VERSION
|
||||
/prop_tgt/VISIBILITY_INLINES_HIDDEN
|
||||
/prop_tgt/VS_CONFIGURATION_TYPE
|
||||
/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION
|
||||
/prop_tgt/VS_DOTNET_REFERENCES
|
||||
/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION
|
||||
|
@ -302,6 +306,7 @@ Properties on Tests
|
|||
/prop_test/RUN_SERIAL
|
||||
/prop_test/SKIP_RETURN_CODE
|
||||
/prop_test/TIMEOUT
|
||||
/prop_test/TIMEOUT_AFTER_MATCH
|
||||
/prop_test/WILL_FAIL
|
||||
/prop_test/WORKING_DIRECTORY
|
||||
|
||||
|
|
|
@ -138,9 +138,10 @@ a path on the host to install to. The :variable:`CMAKE_INSTALL_PREFIX` is always
|
|||
the runtime installation location, even when cross-compiling.
|
||||
|
||||
The :variable:`CMAKE_<LANG>_COMPILER` variables may be set to full paths, or to
|
||||
names of compilers to search for in standard locations. In cases where CMake does
|
||||
not have enough information to extract information from the compiler, the
|
||||
:module:`CMakeForceCompiler` module can be used to bypass some of the checks.
|
||||
names of compilers to search for in standard locations. For toolchains that
|
||||
do not support linking binaries without custom flags or scripts one may set
|
||||
the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable to ``STATIC_LIBRARY``
|
||||
to tell CMake not to try to link executables during its checks.
|
||||
|
||||
CMake ``find_*`` commands will look in the sysroot, and the :variable:`CMAKE_FIND_ROOT_PATH`
|
||||
entries by default in all cases, as well as looking in the host system root prefix.
|
||||
|
|
|
@ -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
|
||||
|
@ -78,7 +77,6 @@ Variables that Provide Information
|
|||
/variable/CMAKE_VS_DEVENV_COMMAND
|
||||
/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION
|
||||
/variable/CMAKE_VS_MSBUILD_COMMAND
|
||||
/variable/CMAKE_VS_MSDEV_COMMAND
|
||||
/variable/CMAKE_VS_NsightTegra_VERSION
|
||||
/variable/CMAKE_VS_PLATFORM_NAME
|
||||
/variable/CMAKE_VS_PLATFORM_TOOLSET
|
||||
|
@ -115,7 +113,12 @@ Variables that Change Behavior
|
|||
/variable/CMAKE_COLOR_MAKEFILE
|
||||
/variable/CMAKE_CONFIGURATION_TYPES
|
||||
/variable/CMAKE_DEBUG_TARGET_PROPERTIES
|
||||
/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY
|
||||
/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName
|
||||
/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES
|
||||
/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT
|
||||
/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS
|
||||
/variable/CMAKE_ECLIPSE_VERSION
|
||||
/variable/CMAKE_ERROR_DEPRECATED
|
||||
/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
|
||||
/variable/CMAKE_EXPORT_COMPILE_COMMANDS
|
||||
|
@ -175,6 +178,7 @@ Variables that Describe the System
|
|||
/variable/CMAKE_CL_64
|
||||
/variable/CMAKE_COMPILER_2005
|
||||
/variable/CMAKE_HOST_APPLE
|
||||
/variable/CMAKE_HOST_SOLARIS
|
||||
/variable/CMAKE_HOST_SYSTEM_NAME
|
||||
/variable/CMAKE_HOST_SYSTEM_PROCESSOR
|
||||
/variable/CMAKE_HOST_SYSTEM
|
||||
|
@ -259,6 +263,7 @@ Variables that Control the Build
|
|||
/variable/CMAKE_INSTALL_RPATH
|
||||
/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH
|
||||
/variable/CMAKE_IOS_INSTALL_COMBINED
|
||||
/variable/CMAKE_LANG_CLANG_TIDY
|
||||
/variable/CMAKE_LANG_COMPILER_LAUNCHER
|
||||
/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE
|
||||
/variable/CMAKE_LANG_VISIBILITY_PRESET
|
||||
|
@ -275,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
|
||||
|
@ -292,6 +298,8 @@ 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
|
||||
/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD
|
||||
|
@ -358,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
|
||||
|
@ -406,6 +416,7 @@ Variables for CTest
|
|||
/variable/CTEST_DROP_SITE_USER
|
||||
/variable/CTEST_EXTRA_COVERAGE_GLOB
|
||||
/variable/CTEST_GIT_COMMAND
|
||||
/variable/CTEST_GIT_INIT_SUBMODULES
|
||||
/variable/CTEST_GIT_UPDATE_CUSTOM
|
||||
/variable/CTEST_GIT_UPDATE_OPTIONS
|
||||
/variable/CTEST_HG_COMMAND
|
||||
|
|
|
@ -10,7 +10,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 --build <dir> [<options>...] [-- <build-tool-options>...]
|
||||
cmake -E <command> [<options>...]
|
||||
cmake --find-package <options>...
|
||||
|
||||
|
@ -49,22 +49,7 @@ Options
|
|||
display help for each variable.
|
||||
|
||||
``--build <dir>``
|
||||
Build a CMake-generated project binary tree.
|
||||
|
||||
This abstracts a native build tool's command-line interface with the
|
||||
following options:
|
||||
|
||||
::
|
||||
|
||||
<dir> = Project binary directory to be built.
|
||||
--target <tgt> = Build <tgt> instead of default targets.
|
||||
--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.
|
||||
See `Build Tool Mode`_.
|
||||
|
||||
``-N``
|
||||
View mode only.
|
||||
|
@ -81,12 +66,7 @@ Options
|
|||
done before the -P argument.
|
||||
|
||||
``--find-package``
|
||||
Run in pkg-config like mode.
|
||||
|
||||
Search a package using find_package() and print the resulting flags
|
||||
to stdout. This can be used to use cmake instead of pkg-config to
|
||||
find installed libraries in plain Makefile-based projects or in
|
||||
autoconf-based projects (via share/aclocal/cmake.m4).
|
||||
See `Find-Package Tool Mode`_.
|
||||
|
||||
``--graphviz=[file]``
|
||||
Generate graphviz of dependencies, see CMakeGraphVizOptions.cmake for more.
|
||||
|
@ -153,6 +133,38 @@ Options
|
|||
|
||||
.. include:: OPTIONS_HELP.txt
|
||||
|
||||
Build Tool Mode
|
||||
===============
|
||||
|
||||
CMake provides a command-line signature to build an already-generated
|
||||
project binary tree::
|
||||
|
||||
cmake --build <dir> [<options>...] [-- <build-tool-options>...]
|
||||
|
||||
This abstracts a native build tool's command-line interface with the
|
||||
following options:
|
||||
|
||||
``--build <dir>``
|
||||
Project binary directory to be built. This is required and must be first.
|
||||
|
||||
``--target <tgt>``
|
||||
Build ``<tgt>`` instead of default targets. May only be specified once.
|
||||
|
||||
``--config <cfg>``
|
||||
For multi-configuration tools, choose configuration ``<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.
|
||||
|
||||
Command-Line Tool Mode
|
||||
======================
|
||||
|
||||
|
@ -168,7 +180,7 @@ Available commands are:
|
|||
|
||||
``compare_files <file1> <file2>``
|
||||
Check if ``<file1>`` is same as ``<file2>``. If files are the same,
|
||||
then returns 0, if not itreturns 1.
|
||||
then returns 0, if not it returns 1.
|
||||
|
||||
``copy <file>... <destination>``
|
||||
Copy files to ``<destination>`` (either file or directory).
|
||||
|
@ -203,7 +215,10 @@ Available commands are:
|
|||
silently ignored.
|
||||
|
||||
``md5sum <file>...``
|
||||
Compute md5sum of files.
|
||||
Create MD5 checksum of files in ``md5sum`` compatible format::
|
||||
|
||||
351abe79cd3800b38cdfb25d45015a15 file1.txt
|
||||
052f86c15bbde68af55c7f7b340ab639 file2.txt
|
||||
|
||||
``remove [-f] <file>...``
|
||||
Remove the file(s), use ``-f`` to force it. If a file does
|
||||
|
@ -274,6 +289,24 @@ The following ``cmake -E`` commands are available only on Windows:
|
|||
``write_regv <key> <value>``
|
||||
Write Windows registry value.
|
||||
|
||||
Find-Package Tool Mode
|
||||
======================
|
||||
|
||||
CMake provides a helper for Makefile-based projects with the signature::
|
||||
|
||||
cmake --find-package <options>...
|
||||
|
||||
This runs in a pkg-config like mode.
|
||||
|
||||
Search a package using :command:`find_package()` and print the resulting flags
|
||||
to stdout. This can be used to use cmake instead of pkg-config to find
|
||||
installed libraries in plain Makefile-based projects or in autoconf-based
|
||||
projects (via ``share/aclocal/cmake.m4``).
|
||||
|
||||
.. note::
|
||||
This mode is not well-supported due to some technical limitations.
|
||||
It is kept for compatibility but should not be used in new projects.
|
||||
|
||||
See Also
|
||||
========
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ Options
|
|||
``-P <package name>``
|
||||
override/define CPACK_PACKAGE_NAME
|
||||
|
||||
If the package name is not specified on cpack commmand line
|
||||
If the package name is not specified on cpack command line
|
||||
thenCPack.cmake defines it as CMAKE_PROJECT_NAME
|
||||
|
||||
``-R <package version>``
|
||||
|
|
|
@ -589,6 +589,17 @@ 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.
|
||||
|
||||
* `CTest Script`_ variable: :variable:`CTEST_GIT_INIT_SUBMODULES`
|
||||
* :module:`CTest` module variable: ``CTEST_GIT_INIT_SUBMODULES``
|
||||
|
||||
``GITUpdateCustom``
|
||||
Specify a custom command line (as a semicolon-separated list) to run
|
||||
in the source tree (Git work tree) to update it instead of running
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
.. cmake-module:: ../../Modules/FindLTTngUST.cmake
|
|
@ -1,7 +1,7 @@
|
|||
CMP0059
|
||||
-------
|
||||
|
||||
Don't treat ``DEFINITIONS`` as a built-in directory property.
|
||||
Do not treat ``DEFINITIONS`` as a built-in directory property.
|
||||
|
||||
CMake 3.3 and above no longer make a list of definitions available through
|
||||
the :prop_dir:`DEFINITIONS` directory property. The
|
||||
|
|
|
@ -17,8 +17,7 @@ This property will be initialized in each directory by its value in the
|
|||
directory's parent.
|
||||
|
||||
CMake will automatically drop some definitions that are not supported
|
||||
by the native build tool. The VS6 IDE does not support definition
|
||||
values with spaces (but NMake does).
|
||||
by the native build tool.
|
||||
|
||||
.. include:: /include/COMPILE_DEFINITIONS_DISCLAIMER.txt
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ directories for the compiler.
|
|||
In addition to accepting values from that command, values may be set
|
||||
directly on any directory using the :command:`set_property` command. A
|
||||
directory gets its initial value from its parent directory if it has one.
|
||||
The intial value of the :prop_tgt:`INCLUDE_DIRECTORIES` target property
|
||||
The initial value of the :prop_tgt:`INCLUDE_DIRECTORIES` target property
|
||||
comes from the value of this property. Both directory and target property
|
||||
values are adjusted by calls to the :command:`include_directories` command.
|
||||
|
||||
|
|
|
@ -5,5 +5,6 @@ The current stack of listfiles being processed.
|
|||
|
||||
This property is mainly useful when trying to debug errors in your
|
||||
CMake scripts. It returns a list of what list files are currently
|
||||
being processed, in order. So if one listfile does an INCLUDE command
|
||||
then that is effectively pushing the included listfile onto the stack.
|
||||
being processed, in order. So if one listfile does an
|
||||
:command:`include` command then that is effectively pushing the
|
||||
included listfile onto the stack.
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
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
|
||||
will be the default.
|
|
@ -270,7 +270,7 @@ The features known to this version of CMake are:
|
|||
.. _N2442: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
|
||||
|
||||
``cxx_uniform_initialization``
|
||||
Uniform intialization, as defined in N2640_.
|
||||
Uniform initialization, as defined in N2640_.
|
||||
|
||||
.. _N2640: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2640.pdf
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
FIND_LIBRARY_USE_LIB64_PATHS
|
||||
----------------------------
|
||||
|
||||
Whether FIND_LIBRARY should automatically search lib64 directories.
|
||||
Whether :command:`find_library` should automatically search lib64
|
||||
directories.
|
||||
|
||||
FIND_LIBRARY_USE_LIB64_PATHS is a boolean specifying whether the
|
||||
FIND_LIBRARY command should automatically search the lib64 variant of
|
||||
directories called lib in the search path when building 64-bit
|
||||
binaries.
|
||||
:command:`find_library` command should automatically search the lib64
|
||||
variant of directories called lib in the search path when building
|
||||
64-bit binaries.
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
FIND_LIBRARY_USE_OPENBSD_VERSIONING
|
||||
-----------------------------------
|
||||
|
||||
Whether FIND_LIBRARY should find OpenBSD-style shared libraries.
|
||||
Whether :command:`find_library` should find OpenBSD-style shared
|
||||
libraries.
|
||||
|
||||
This property is a boolean specifying whether the FIND_LIBRARY command
|
||||
should find shared libraries with OpenBSD-style versioned extension:
|
||||
".so.<major>.<minor>". The property is set to true on OpenBSD and
|
||||
false on other platforms.
|
||||
This property is a boolean specifying whether the
|
||||
:command:`find_library` command should find shared libraries with
|
||||
OpenBSD-style versioned extension: ".so.<major>.<minor>". The
|
||||
property is set to true on OpenBSD and false on other platforms.
|
||||
|
|
|
@ -3,4 +3,5 @@ IN_TRY_COMPILE
|
|||
|
||||
Read-only property that is true during a try-compile configuration.
|
||||
|
||||
True when building a project inside a TRY_COMPILE or TRY_RUN command.
|
||||
True when building a project inside a :command:`try_compile` or
|
||||
:command:`try_run` command.
|
||||
|
|
|
@ -5,5 +5,5 @@ Name of FOLDER for targets that are added automatically by CMake.
|
|||
|
||||
If not set, CMake uses "CMakePredefinedTargets" as a default value for
|
||||
this property. Targets such as INSTALL, PACKAGE and RUN_TESTS will be
|
||||
organized into this FOLDER. See also the documentation for the FOLDER
|
||||
target property.
|
||||
organized into this FOLDER. See also the documentation for the
|
||||
:prop_tgt:`FOLDER` target property.
|
||||
|
|
|
@ -8,6 +8,6 @@ progress message describing what each build rule does. If the
|
|||
property is not set the default is ON. Set the property to OFF to
|
||||
disable granular messages and report only as each target completes.
|
||||
This is intended to allow scripted builds to avoid the build time cost
|
||||
of detailed reports. If a CMAKE_RULE_MESSAGES cache entry exists its
|
||||
value initializes the value of this property. Non-Makefile generators
|
||||
currently ignore this property.
|
||||
of detailed reports. If a ``CMAKE_RULE_MESSAGES`` cache entry exists
|
||||
its value initializes the value of this property. Non-Makefile
|
||||
generators currently ignore this property.
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
USE_FOLDERS
|
||||
-----------
|
||||
|
||||
Use the FOLDER target property to organize targets into folders.
|
||||
Use the :prop_tgt:`FOLDER` target property to organize targets into
|
||||
folders.
|
||||
|
||||
If not set, CMake treats this property as OFF by default. CMake
|
||||
generators that are capable of organizing into a hierarchy of folders
|
||||
use the values of the FOLDER target property to name those folders.
|
||||
See also the documentation for the FOLDER target property.
|
||||
use the values of the :prop_tgt:`FOLDER` target property to name those
|
||||
folders. See also the documentation for the FOLDER target property.
|
||||
|
|
|
@ -13,8 +13,7 @@ the name COMPILE_DEFINITIONS_<CONFIG> where <CONFIG> is an upper-case
|
|||
name (ex. "COMPILE_DEFINITIONS_DEBUG").
|
||||
|
||||
CMake will automatically drop some definitions that are not supported
|
||||
by the native build tool. The VS6 IDE does not support definition
|
||||
values with spaces (but NMake does). Xcode does not support
|
||||
per-configuration definitions on source files.
|
||||
by the native build tool. Xcode does not support per-configuration
|
||||
definitions on source files.
|
||||
|
||||
.. include:: /include/COMPILE_DEFINITIONS_DISCLAIMER.txt
|
||||
|
|
|
@ -4,5 +4,5 @@ COMPILE_FLAGS
|
|||
Additional flags to be added when compiling this source file.
|
||||
|
||||
These flags will be added to the list of compile flags when this
|
||||
source file builds. Use COMPILE_DEFINITIONS to pass additional
|
||||
preprocessor definitions.
|
||||
source file builds. Use :prop_sf:`COMPILE_DEFINITIONS` to pass
|
||||
additional preprocessor definitions.
|
||||
|
|
|
@ -3,5 +3,5 @@ ATTACHED_FILES_ON_FAIL
|
|||
|
||||
Attach a list of files to a dashboard submission if the test fails.
|
||||
|
||||
Same as ATTACHED_FILES, but these files will only be included if the
|
||||
test does not pass.
|
||||
Same as :prop_test:`ATTACHED_FILES`, but these files will only be
|
||||
included if the test does not pass.
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
TIMEOUT_AFTER_MATCH
|
||||
-------------------
|
||||
|
||||
Change a test's timeout duration after a matching line is encountered
|
||||
in its output.
|
||||
|
||||
Usage
|
||||
^^^^^
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
add_test(mytest ...)
|
||||
set_property(TEST mytest PROPERTY TIMEOUT_AFTER_MATCH "${seconds}" "${regex}")
|
||||
|
||||
Description
|
||||
^^^^^^^^^^^
|
||||
|
||||
Allow a test ``seconds`` to complete after ``regex`` is encountered in
|
||||
its output.
|
||||
|
||||
When the test outputs a line that matches ``regex`` its start time is
|
||||
reset to the current time and its timeout duration is changed to
|
||||
``seconds``. Prior to this, the timeout duration is determined by the
|
||||
:prop_test:`TIMEOUT` property or the :variable:`CTEST_TEST_TIMEOUT`
|
||||
variable if either of these are set.
|
||||
|
||||
:prop_test:`TIMEOUT_AFTER_MATCH` is useful for avoiding spurious
|
||||
timeouts when your test must wait for some system resource to become
|
||||
available before it can execute. Set :prop_test:`TIMEOUT` to a longer
|
||||
duration that accounts for resource acquisition and use
|
||||
:prop_test:`TIMEOUT_AFTER_MATCH` to control how long the actual test
|
||||
is allowed to run.
|
||||
|
||||
If the required resource can be controlled by CTest you should use
|
||||
:prop_test:`RESOURCE_LOCK` instead of :prop_test:`TIMEOUT_AFTER_MATCH`.
|
||||
This property should be used when only the test itself can determine
|
||||
when its required resources are available.
|
|
@ -6,22 +6,35 @@ Should the target be processed with automoc (for Qt projects).
|
|||
AUTOMOC is a boolean specifying whether CMake will handle the Qt ``moc``
|
||||
preprocessor automatically, i.e. without having to use the
|
||||
:module:`QT4_WRAP_CPP() <FindQt4>` or QT5_WRAP_CPP() macro. Currently Qt4 and Qt5 are
|
||||
supported. When this property is set ``ON``, CMake will scan the
|
||||
source files at build time and invoke moc accordingly. If an ``#include``
|
||||
statement like ``#include "moc_foo.cpp"`` is found, the ``Q_OBJECT`` class
|
||||
declaration is expected in the header, and ``moc`` is run on the header
|
||||
file. If an ``#include`` statement like ``#include "foo.moc"`` is found, then
|
||||
a ``Q_OBJECT`` is expected in the current source file and ``moc`` is run on
|
||||
the file itself. Additionally, header files with the same base name (like
|
||||
``foo.h``) or ``_p`` appended to the base name (like ``foo_p.h``) are parsed
|
||||
for ``Q_OBJECT`` macros, and if found, ``moc`` is also executed on those files.
|
||||
``AUTOMOC`` checks multiple header alternative extensions, such as
|
||||
``hpp``, ``hxx`` etc when searching for headers.
|
||||
The resulting moc files, which are not included as shown above in any
|
||||
of the source files are included in a generated
|
||||
``<targetname>_automoc.cpp`` file, which is compiled as part of the
|
||||
target. This property is initialized by the value of the
|
||||
:variable:`CMAKE_AUTOMOC` variable if it is set when a target is created.
|
||||
supported.
|
||||
|
||||
When this property is set ``ON``, CMake will scan the
|
||||
source files at build time and invoke moc accordingly.
|
||||
|
||||
* If an ``#include`` statement like ``#include "moc_foo.cpp"`` is found,
|
||||
the ``Q_OBJECT`` class declaration is expected in the header, and
|
||||
``moc`` is run on the header file. A ``moc_foo.cpp`` file will be
|
||||
generated from the source's header into the
|
||||
:variable:`CMAKE_CURRENT_BINARY_DIR` directory. This allows the
|
||||
compiler to find the included ``moc_foo.cpp`` file regardless of the
|
||||
location the original source. However, if multiple source files
|
||||
in different directories do this then their generated moc files would
|
||||
collide. In this case a diagnostic will be issued.
|
||||
|
||||
* If an ``#include`` statement like ``#include "foo.moc"`` is found,
|
||||
then a ``Q_OBJECT`` is expected in the current source file and ``moc``
|
||||
is run on the file itself. Additionally, header files with the same
|
||||
base name (like ``foo.h``) or ``_p`` appended to the base name (like
|
||||
``foo_p.h``) are parsed for ``Q_OBJECT`` macros, and if found, ``moc``
|
||||
is also executed on those files. ``AUTOMOC`` checks multiple header
|
||||
alternative extensions, such as ``hpp``, ``hxx`` etc when searching
|
||||
for headers. The resulting moc files, which are not included as shown
|
||||
above in any of the source files are included in a generated
|
||||
``<targetname>_automoc.cpp`` file, which is compiled as part of the
|
||||
target.
|
||||
|
||||
This property is initialized by the value of the :variable:`CMAKE_AUTOMOC`
|
||||
variable if it is set when a target is created.
|
||||
|
||||
Additional command line options for moc can be set via the
|
||||
:prop_tgt:`AUTOMOC_MOC_OPTIONS` property.
|
||||
|
|
|
@ -11,8 +11,7 @@ automatically escape the value correctly for the native build system
|
|||
values).
|
||||
|
||||
CMake will automatically drop some definitions that are not supported
|
||||
by the native build tool. The VS6 IDE does not support definition
|
||||
values with spaces (but NMake does).
|
||||
by the native build tool.
|
||||
|
||||
.. include:: /include/COMPILE_DEFINITIONS_DISCLAIMER.txt
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@ COMPILE_FLAGS
|
|||
|
||||
Additional flags to use when compiling this target's sources.
|
||||
|
||||
The COMPILE_FLAGS property sets additional compiler flags used to
|
||||
build sources within the target. Use COMPILE_DEFINITIONS to pass
|
||||
additional preprocessor definitions.
|
||||
The ``COMPILE_FLAGS`` property sets additional compiler flags used to
|
||||
build sources within the target. Use :prop_tgt:`COMPILE_DEFINITIONS`
|
||||
to pass additional preprocessor definitions.
|
||||
|
||||
This property is deprecated. Use the COMPILE_OPTIONS property or the
|
||||
target_compile_options command instead.
|
||||
This property is deprecated. Use the :prop_tgt:`COMPILE_OPTIONS`
|
||||
property or the command:`target_compile_options` command instead.
|
||||
|
|
|
@ -7,7 +7,7 @@ This property holds a :ref:`;-list <CMake Language Lists>` of options
|
|||
specified so far for its target. Use the :command:`target_compile_options`
|
||||
command to append more options.
|
||||
|
||||
This property is intialized by the :prop_dir:`COMPILE_OPTIONS` directory
|
||||
This property is initialized by the :prop_dir:`COMPILE_OPTIONS` directory
|
||||
property when a target is created, and is used by the generators to set
|
||||
the options for the compiler.
|
||||
|
||||
|
|
|
@ -3,6 +3,3 @@
|
|||
``/Fd`` compiler flag and are not the same as linker-generated
|
||||
program database files specified by the ``/pdb`` linker flag.
|
||||
Use the |PDB_XXX| property to specify the latter.
|
||||
|
||||
This property is not implemented by the :generator:`Visual Studio 6`
|
||||
generator.
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
CROSSCOMPILING_EMULATOR
|
||||
-----------------------
|
||||
|
||||
Use the given emulator to run executables created when crosscompiling. This
|
||||
command will be added as a prefix to :command:`add_test` test commands for
|
||||
built target system executables.
|
||||
Use the given emulator to run executables created when crosscompiling.
|
||||
This command will be added as a prefix to :command:`add_test`,
|
||||
:command:`add_custom_command`, and :command:`add_custom_target` commands
|
||||
for built target system executables.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
DEPLOYMENT_REMOTE_DIRECTORY
|
||||
---------------------------
|
||||
|
||||
Set the WinCE project ``RemoteDirectory`` in ``DeploymentTool`` and
|
||||
``RemoteExecutable`` in ``DebuggerTool`` in ``.vcproj`` files generated
|
||||
by the :generator:`Visual Studio 9 2008` and :generator:`Visual Studio 8 2005`
|
||||
generators. This is useful when you want to debug on remote WinCE device.
|
||||
For example:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set_property(TARGET ${TARGET} PROPERTY
|
||||
DEPLOYMENT_REMOTE_DIRECTORY "\\FlashStorage")
|
||||
|
||||
produces::
|
||||
|
||||
<DeploymentTool RemoteDirectory="\FlashStorage" ... />
|
||||
<DebuggerTool RemoteExecutable="\FlashStorage\target_file" ... />
|
|
@ -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"
|
||||
)
|
||||
|
|
|
@ -5,7 +5,7 @@ Ninja only: Pool used for linking.
|
|||
|
||||
The number of parallel link processes could be limited by defining
|
||||
pools with the global :prop_gbl:`JOB_POOLS`
|
||||
property and then specifing here the pool name.
|
||||
property and then specifying here the pool name.
|
||||
|
||||
For instance:
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<LANG>_CLANG_TIDY
|
||||
-----------------
|
||||
|
||||
This property is implemented only when ``<LANG>`` is ``C`` or ``CXX``.
|
||||
|
||||
Specify a :ref:`;-list <CMake Language Lists>` containing a command
|
||||
line for the ``clang-tidy`` tool. The :ref:`Makefile Generators`
|
||||
and the :generator:`Ninja` generator will run this tool along with the
|
||||
compiler and report a warning if the tool reports any problems.
|
||||
|
||||
This property is initialized by the value of
|
||||
the :variable:`CMAKE_<LANG>_CLANG_TIDY` variable if it is set
|
||||
when a target is created.
|
|
@ -7,6 +7,3 @@
|
|||
``/pdb`` linker flag and are not the same as compiler-generated
|
||||
program database files specified by the ``/Fd`` compiler flag.
|
||||
Use the |COMPILE_PDB_XXX| property to specify the latter.
|
||||
|
||||
This property is not implemented by the :generator:`Visual Studio 6`
|
||||
generator.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
VS_CONFIGURATION_TYPE
|
||||
---------------------
|
||||
|
||||
Visual Studio project configuration type.
|
||||
|
||||
Sets the ``ConfigurationType`` attribute for a generated Visual Studio project.
|
||||
If this property is set, it overrides the default setting that is based on the
|
||||
target type (e.g. ``StaticLibrary``, ``Application``, ...).
|
||||
|
||||
Supported on :ref:`Visual Studio Generators` for VS 2010 and higher.
|
|
@ -0,0 +1,316 @@
|
|||
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.
|
||||
|
||||
* The CPack NSIS generator's configuration file template was fixed to
|
||||
quote the path to the uninstaller tool used by the
|
||||
:variable:`CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL` option.
|
||||
This avoids depending on an insecure Windows feature to run an
|
||||
uninstaller tool with a space in the path.
|
|
@ -11,6 +11,7 @@ Releases
|
|||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
3.6 <3.6>
|
||||
3.5 <3.5>
|
||||
3.4 <3.4>
|
||||
3.3 <3.3>
|
||||
|
|
|
@ -12,7 +12,6 @@ Example values:
|
|||
|
||||
::
|
||||
|
||||
$(IntDir) = Visual Studio 6
|
||||
$(ConfigurationName) = Visual Studio 7, 8, 9
|
||||
$(Configuration) = Visual Studio 10
|
||||
$(CONFIGURATION) = Xcode
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
CMAKE_DEPENDS_IN_PROJECT_ONLY
|
||||
-----------------------------
|
||||
|
||||
When set to ``TRUE`` in a directory, the build system produced by the
|
||||
:ref:`Makefile Generators` is set up to only consider dependencies on source
|
||||
files that appear either in the source or in the binary directories. Changes
|
||||
to source files outside of these directories will not cause rebuilds.
|
||||
|
||||
This should be used carefully in cases where some source files are picked up
|
||||
through external headers during the build.
|
|
@ -0,0 +1,10 @@
|
|||
CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES
|
||||
---------------------------------------
|
||||
|
||||
This cache variable is used by the Eclipse project generator. See
|
||||
:manual:`cmake-generators(7)`.
|
||||
|
||||
The Eclipse project generator generates so-called linked resources
|
||||
e.g. to the subproject root dirs in the source tree or to the source files
|
||||
of targets.
|
||||
This can be disabled by setting this variable to FALSE.
|
|
@ -0,0 +1,11 @@
|
|||
CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT
|
||||
-------------------------------------
|
||||
|
||||
This cache variable is used by the Eclipse project generator. See
|
||||
:manual:`cmake-generators(7)`.
|
||||
|
||||
If this variable is set to TRUE, the Eclipse project generator will generate
|
||||
an Eclipse project in :variable:`CMAKE_SOURCE_DIR` . This project can then
|
||||
be used in Eclipse e.g. for the version control functionality.
|
||||
:variable:`CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT` defaults to FALSE; so
|
||||
nothing is written into the source directory.
|
|
@ -0,0 +1,9 @@
|
|||
CMAKE_ECLIPSE_MAKE_ARGUMENTS
|
||||
----------------------------
|
||||
|
||||
This cache variable is used by the Eclipse project generator. See
|
||||
:manual:`cmake-generators(7)`.
|
||||
|
||||
This variable holds arguments which are used when Eclipse invokes the make
|
||||
tool. By default it is initialized to hold flags to enable parallel builds
|
||||
(using -j typically).
|
|
@ -0,0 +1,10 @@
|
|||
CMAKE_ECLIPSE_VERSION
|
||||
---------------------
|
||||
|
||||
This cache variable is used by the Eclipse project generator. See
|
||||
:manual:`cmake-generators(7)`.
|
||||
|
||||
When using the Eclipse project generator, CMake tries to find the Eclipse
|
||||
executable and detect the version of it. Depending on the version it finds,
|
||||
some features are enabled or disabled. If CMake doesn't find
|
||||
Eclipse, it assumes the oldest supported version, Eclipse Callisto (3.2).
|
|
@ -4,4 +4,4 @@ CMAKE_GENERATOR
|
|||
The generator used to build the project. See :manual:`cmake-generators(7)`.
|
||||
|
||||
The name of the generator that is being used to generate the build
|
||||
files. (e.g. ``Unix Makefiles``, ``Visual Studio 6``, etc.)
|
||||
files. (e.g. ``Unix Makefiles``, ``Ninja``, etc.)
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
CMAKE_HOST_SOLARIS
|
||||
------------------
|
||||
|
||||
``True`` for Oracle Solaris operating systems.
|
||||
|
||||
Set to ``true`` when the host system is Oracle Solaris.
|
|
@ -0,0 +1,6 @@
|
|||
CMAKE_<LANG>_CLANG_TIDY
|
||||
-----------------------
|
||||
|
||||
Default value for :prop_tgt:`<LANG>_CLANG_TIDY` target property.
|
||||
This variable is used to initialize the property on each target as it is
|
||||
created. This is done only when ``<LANG>`` is ``C`` or ``CXX``.
|
|
@ -3,7 +3,7 @@ CMAKE_<LANG>_COMPILER_EXTERNAL_TOOLCHAIN
|
|||
|
||||
The external toolchain for cross-compiling, if supported.
|
||||
|
||||
Some compiler toolchains do not ship their own auxilliary utilities such as
|
||||
Some compiler toolchains do not ship their own auxiliary utilities such as
|
||||
archivers and linkers. The compiler driver may support a command-line argument
|
||||
to specify the location of such tools.
|
||||
``CMAKE_<LANG>_COMPILER_EXTERNAL_TOOLCHAIN`` may be set to a path to a path to
|
||||
|
|
|
@ -12,6 +12,7 @@ include:
|
|||
ADSP = Analog VisualDSP++ (analog.com)
|
||||
AppleClang = Apple Clang (apple.com)
|
||||
ARMCC = ARM Compiler (arm.com)
|
||||
Bruce = Bruce C Compiler
|
||||
CCur = Concurrent Fortran (ccur.com)
|
||||
Clang = LLVM Clang (clang.llvm.org)
|
||||
Cray = Cray Compiler (cray.com)
|
||||
|
|
|
@ -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`.
|
|
@ -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`.
|
|
@ -34,12 +34,11 @@ to configure the project:
|
|||
the CMake cache then CMake will use the specified value.
|
||||
|
||||
* The :ref:`Visual Studio Generators` set this to the full path to
|
||||
``MSBuild.exe`` (VS >= 10), ``devenv.com`` (VS 7,8,9),
|
||||
``VCExpress.exe`` (VS Express 8,9), or ``msdev.exe`` (VS 6).
|
||||
``MSBuild.exe`` (VS >= 10), ``devenv.com`` (VS 7,8,9), or
|
||||
``VCExpress.exe`` (VS Express 8,9).
|
||||
(See also variables
|
||||
:variable:`CMAKE_VS_MSBUILD_COMMAND`,
|
||||
:variable:`CMAKE_VS_DEVENV_COMMAND`, and
|
||||
:variable:`CMAKE_VS_MSDEV_COMMAND`.)
|
||||
:variable:`CMAKE_VS_MSBUILD_COMMAND` and
|
||||
:variable:`CMAKE_VS_DEVENV_COMMAND`.
|
||||
|
||||
These generators prefer to lookup the build tool at build time
|
||||
rather than to store ``CMAKE_MAKE_PROGRAM`` in the CMake cache
|
||||
|
|
|
@ -5,7 +5,7 @@ Tell cmake to use MFC for an executable or dll.
|
|||
|
||||
This can be set in a ``CMakeLists.txt`` file and will enable MFC in the
|
||||
application. It should be set to ``1`` for the static MFC library, and ``2``
|
||||
for the shared MFC library. This is used in Visual Studio 6 and 7
|
||||
for the shared MFC library. This is used in Visual Studio 7
|
||||
project files. The CMakeSetup dialog used MFC and the ``CMakeLists.txt``
|
||||
looks like this:
|
||||
|
||||
|
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -0,0 +1,15 @@
|
|||
CMAKE_TRY_COMPILE_TARGET_TYPE
|
||||
-----------------------------
|
||||
|
||||
Type of target generated for :command:`try_compile` calls using the
|
||||
source file signature. Valid values are:
|
||||
|
||||
``EXECUTABLE``
|
||||
Use :command:`add_executable` to name the source file in the
|
||||
generated project. This is the default if no value is given.
|
||||
|
||||
``STATIC_LIBRARY``
|
||||
Use :command:`add_library` with the ``STATIC`` option to name the
|
||||
source file in the generated project. This avoids running the
|
||||
linker and is intended for use with cross-compiling toolchains
|
||||
that cannot link without custom flags or linker scripts.
|
|
@ -1,10 +0,0 @@
|
|||
CMAKE_VS_MSDEV_COMMAND
|
||||
----------------------
|
||||
|
||||
The :generator:`Visual Studio 6` generator sets this variable to the
|
||||
``msdev.exe`` command installed with Visual Studio 6.
|
||||
|
||||
This variable is not defined by other generators even if ``msdev.exe``
|
||||
is installed on the computer.
|
||||
|
||||
See also the :variable:`CMAKE_MAKE_PROGRAM` variable.
|
|
@ -54,7 +54,7 @@ program requires some named arguments.
|
|||
file format to write output in: xml or html
|
||||
|
||||
The rest of the supplied arguments consist of the full paths to the
|
||||
``/src/main/java`` directories of each module within the souce tree. These
|
||||
``/src/main/java`` directories of each module within the source tree. These
|
||||
directories are needed and should not be forgotten.
|
||||
|
||||
.. _`Cobertura`: http://cobertura.github.io/cobertura/
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
CTEST_GIT_INIT_SUBMODULES
|
||||
-------------------------
|
||||
|
||||
Specify the CTest ``GITInitSubmodules`` setting
|
||||
in a :manual:`ctest(1)` dashboard client script.
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue