Update upstream source from tag 'upstream/3.11.1'
Update to upstream version '3.11.1' with Debian dir 7cdc88d88137e390b06f91a1b1bd4e0e792bd78d
This commit is contained in:
commit
c21c3d42d5
@ -96,7 +96,7 @@ _cmake()
|
||||
_filedir
|
||||
return
|
||||
;;
|
||||
--build)
|
||||
--build|--open)
|
||||
_filedir -d
|
||||
return
|
||||
;;
|
||||
|
@ -352,7 +352,7 @@ and store the result as a list in LISTVAR."
|
||||
|
||||
;;;###autoload
|
||||
(defun cmake-help ()
|
||||
"Queries for any of the four available help topics and prints out the approriate page."
|
||||
"Queries for any of the four available help topics and prints out the appropriate page."
|
||||
(interactive)
|
||||
(let* ((default-entry (cmake-symbol-at-point))
|
||||
(command-list (cmake-get-list "command"))
|
||||
|
@ -1,4 +1,3 @@
|
||||
" vim: set nowrap:
|
||||
" Vim syntax file
|
||||
" Program: CMake - Cross-Platform Makefile Generator
|
||||
" Version: @VERSION@
|
||||
@ -8,6 +7,7 @@
|
||||
" Patrick Boettcher <patrick.boettcher@posteo.de>
|
||||
" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
|
||||
" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
|
||||
" Last Change: @DATE@
|
||||
"
|
||||
" Licence: The CMake license applies to this file. See
|
||||
" https://cmake.org/licensing
|
||||
@ -100,4 +100,4 @@ let b:current_syntax = "cmake"
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
"EOF"
|
||||
" vim: set nowrap:
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use POSIX qw(strftime);
|
||||
|
||||
#my $cmake = "/home/pboettch/devel/upstream/cmake/build/bin/cmake";
|
||||
my $cmake = "cmake";
|
||||
@ -129,6 +130,10 @@ while(<IN>)
|
||||
} elsif ($1 eq "VERSION") {
|
||||
$_ =~ s/\@VERSION\@/$version/;
|
||||
print OUT $_;
|
||||
} elsif ($1 eq "DATE") {
|
||||
my $date = strftime "%Y %b %d", localtime;
|
||||
$_ =~ s/\@DATE\@/$date/;
|
||||
print OUT $_;
|
||||
} else {
|
||||
print "ERROR do not know how to replace $1\n";
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
" Vim indent file
|
||||
" Language: CMake (ft=cmake)
|
||||
" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
|
||||
" Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
|
||||
" Last Change: $Date$
|
||||
" Version: $Revision$
|
||||
" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
|
||||
" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
|
||||
" Last Change: 2017 Aug 30
|
||||
"
|
||||
" Licence: The CMake license applies to this file. See
|
||||
" https://cmake.org/licensing
|
||||
@ -14,6 +14,9 @@ if exists("b:did_indent")
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal indentexpr=CMakeGetIndent(v:lnum)
|
||||
setlocal indentkeys+==ENDIF(,ENDFOREACH(,ENDMACRO(,ELSE(,ELSEIF(,ENDWHILE(
|
||||
|
||||
@ -64,20 +67,23 @@ fun! CMakeGetIndent(lnum)
|
||||
let ind = ind
|
||||
else
|
||||
if previous_line =~? cmake_indent_begin_regex
|
||||
let ind = ind + &sw
|
||||
let ind = ind + shiftwidth()
|
||||
endif
|
||||
if previous_line =~? cmake_indent_open_regex
|
||||
let ind = ind + &sw
|
||||
let ind = ind + shiftwidth()
|
||||
endif
|
||||
endif
|
||||
|
||||
" Subtract
|
||||
if this_line =~? cmake_indent_end_regex
|
||||
let ind = ind - &sw
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
if previous_line =~? cmake_indent_close_regex
|
||||
let ind = ind - &sw
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfun
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,7 +2,11 @@
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
|
||||
set(CMAKE_USER_MAKE_RULES_OVERRIDE_C ${CMAKE_CURRENT_SOURCE_DIR}/Source/Modules/OverrideC.cmake)
|
||||
set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX ${CMAKE_CURRENT_SOURCE_DIR}/Source/Modules/OverrideCXX.cmake)
|
||||
project(CMake)
|
||||
unset(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX)
|
||||
unset(CMAKE_USER_MAKE_RULES_OVERRIDE_C)
|
||||
|
||||
# Make sure we can find internal find_package modules only used for
|
||||
# building CMake and not for shipping externally
|
||||
@ -60,11 +64,20 @@ if(NOT DEFINED CMAKE_CXX_STANDARD AND NOT CMake_NO_CXX_STANDARD)
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL SunPro AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.14)
|
||||
set(CMAKE_CXX_STANDARD 98)
|
||||
else()
|
||||
include(${CMake_SOURCE_DIR}/Source/Checks/cm_cxx14_cstdio.cmake)
|
||||
if(NOT CMake_CXX14_CSTDIO_BROKEN)
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
if(NOT CMAKE_VERSION VERSION_LESS 3.8)
|
||||
include(${CMake_SOURCE_DIR}/Source/Checks/cm_cxx17_check.cmake)
|
||||
else()
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMake_CXX17_BROKEN 1)
|
||||
endif()
|
||||
if(NOT CMake_CXX17_BROKEN)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
else()
|
||||
include(${CMake_SOURCE_DIR}/Source/Checks/cm_cxx14_check.cmake)
|
||||
if(NOT CMake_CXX14_BROKEN)
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
else()
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@ -251,7 +264,12 @@ if(CMake_RUN_CLANG_TIDY)
|
||||
endif()
|
||||
set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_COMMAND}")
|
||||
|
||||
# provide definitions for targets that require a rebuild once .clang-tidy changes
|
||||
# Create a preprocessor definition that depends on .clang-tidy content so
|
||||
# the compile command will change when .clang-tidy changes. This ensures
|
||||
# that a subsequent build re-runs clang-tidy on all sources even if they
|
||||
# do not otherwise need to be recompiled. Nothing actually uses this
|
||||
# definition. We add it to targets on which we run clang-tidy just to
|
||||
# get the build dependency on the .clang-tidy file.
|
||||
file(SHA1 ${CMAKE_CURRENT_SOURCE_DIR}/.clang-tidy clang_tidy_sha1)
|
||||
set(CLANG_TIDY_DEFINITIONS "CLANG_TIDY_SHA1=${clang_tidy_sha1}")
|
||||
unset(clang_tidy_sha1)
|
||||
@ -267,7 +285,7 @@ if(CMake_RUN_IWYU)
|
||||
message(FATAL_ERROR "CMake_RUN_IWYU is ON but include-what-you-use is not found!")
|
||||
endif()
|
||||
set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE
|
||||
"${IWYU_COMMAND};-Xiwyu;--mapping_file=${CMake_SOURCE_DIR}/Utilities/IWYU/mapping.imp")
|
||||
"${IWYU_COMMAND};-Xiwyu;--mapping_file=${CMake_SOURCE_DIR}/Utilities/IWYU/mapping.imp;-w")
|
||||
endif()
|
||||
|
||||
|
||||
@ -292,6 +310,8 @@ endmacro()
|
||||
# Simply to improve readability of the main script.
|
||||
#-----------------------------------------------------------------------
|
||||
macro (CMAKE_BUILD_UTILITIES)
|
||||
find_package(Threads)
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Create the kwsys library for CMake.
|
||||
set(KWSYS_NAMESPACE cmsys)
|
||||
@ -526,7 +546,7 @@ macro (CMAKE_BUILD_UTILITIES)
|
||||
#---------------------------------------------------------------------
|
||||
# Build libuv library.
|
||||
if(CMAKE_USE_SYSTEM_LIBUV)
|
||||
find_package(LibUV 1.0.0)
|
||||
find_package(LibUV 1.10.0)
|
||||
if(NOT LIBUV_FOUND)
|
||||
message(FATAL_ERROR
|
||||
"CMAKE_USE_SYSTEM_LIBUV is ON but a libuv is not found!")
|
||||
|
@ -102,12 +102,6 @@ if(NOT "@CMAKE_GENERATOR@" MATCHES "Xcode")
|
||||
)
|
||||
endif ()
|
||||
|
||||
if(NOT "@CMAKE_GENERATOR@" MATCHES "KDevelop")
|
||||
list(APPEND CTEST_CUSTOM_COVERAGE_EXCLUDE
|
||||
"Kdevelop"
|
||||
)
|
||||
endif ()
|
||||
|
||||
list(APPEND CTEST_CUSTOM_COVERAGE_EXCLUDE
|
||||
# Exclude kwsys files from coverage results. They are reported
|
||||
# (with better coverage results) on kwsys dashboards...
|
||||
|
@ -17,6 +17,10 @@ if(MSVC OR _INTEL_WINDOWS)
|
||||
else()
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stack:10000000")
|
||||
endif()
|
||||
|
||||
#silence duplicate symbol warnings on AIX
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "AIX")
|
||||
if(NOT CMAKE_COMPILER_IS_GNUCXX)
|
||||
|
@ -1,5 +1,5 @@
|
||||
CMake - Cross Platform Makefile Generator
|
||||
Copyright 2000-2017 Kitware, Inc. and Contributors
|
||||
Copyright 2000-2018 Kitware, Inc. and Contributors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
@ -146,8 +146,10 @@ The options are:
|
||||
Specify the primary input source file to the command. This is
|
||||
treated just like any value given to the ``DEPENDS`` option
|
||||
but also suggests to Visual Studio generators where to hang
|
||||
the custom command. At most one custom command may specify a
|
||||
given source file as its main dependency.
|
||||
the custom command. Each source file may have at most one command
|
||||
specifying it as its main dependency. A compile command (i.e. for a
|
||||
library or an executable) counts as an implicit main dependency which
|
||||
gets silently overwritten by a custom command specification.
|
||||
|
||||
``OUTPUT``
|
||||
Specify the output files the command is expected to produce.
|
||||
|
@ -7,14 +7,15 @@ Add an executable to the project using the specified source files.
|
||||
|
||||
add_executable(<name> [WIN32] [MACOSX_BUNDLE]
|
||||
[EXCLUDE_FROM_ALL]
|
||||
source1 [source2 ...])
|
||||
[source1] [source2 ...])
|
||||
|
||||
Adds an executable target called ``<name>`` to be built from the source
|
||||
files listed in the command invocation. The ``<name>`` corresponds to the
|
||||
logical target name and must be globally unique within a project. The
|
||||
actual file name of the executable built is constructed based on
|
||||
conventions of the native platform (such as ``<name>.exe`` or just
|
||||
``<name>``).
|
||||
files listed in the command invocation. (The source files can be omitted
|
||||
here if they are added later using :command:`target_sources`.) The
|
||||
``<name>`` corresponds to the logical target name and must be globally
|
||||
unique within a project. The actual file name of the executable built is
|
||||
constructed based on conventions of the native platform (such as
|
||||
``<name>.exe`` or just ``<name>``).
|
||||
|
||||
By default the executable file will be created in the build tree
|
||||
directory corresponding to the source tree directory in which the
|
||||
@ -73,8 +74,9 @@ properties for more information.
|
||||
Creates an :ref:`Alias Target <Alias Targets>`, such that ``<name>`` can
|
||||
be used to refer to ``<target>`` in subsequent commands. The ``<name>``
|
||||
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
|
||||
``<target>`` may not be a non-``GLOBAL``
|
||||
: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 existence with the regular :command:`if(TARGET)` subcommand.
|
||||
The ``<name>`` may not be used to modify properties of ``<target>``, that
|
||||
|
@ -14,13 +14,14 @@ Normal Libraries
|
||||
|
||||
add_library(<name> [STATIC | SHARED | MODULE]
|
||||
[EXCLUDE_FROM_ALL]
|
||||
source1 [source2 ...])
|
||||
[source1] [source2 ...])
|
||||
|
||||
Adds a library target called ``<name>`` to be built from the source files
|
||||
listed in the command invocation. The ``<name>`` corresponds to the
|
||||
logical target name and must be globally unique within a project. The
|
||||
actual file name of the library built is constructed based on
|
||||
conventions of the native platform (such as ``lib<name>.a`` or
|
||||
listed in the command invocation. (The source files can be omitted here
|
||||
if they are added later using :command:`target_sources`.) The ``<name>``
|
||||
corresponds to the logical target name and must be globally unique within
|
||||
a project. The actual file name of the library built is constructed based
|
||||
on conventions of the native platform (such as ``lib<name>.a`` or
|
||||
``<name>.lib``).
|
||||
|
||||
``STATIC``, ``SHARED``, or ``MODULE`` may be given to specify the type of
|
||||
@ -110,9 +111,9 @@ may contain only sources that compile, header files, and other files
|
||||
that would not affect linking of a normal library (e.g. ``.txt``).
|
||||
They may contain custom commands generating such sources, but not
|
||||
``PRE_BUILD``, ``PRE_LINK``, or ``POST_BUILD`` commands. Object libraries
|
||||
cannot be linked. Some native build systems may not like targets that
|
||||
have only object files, so consider adding at least one real source file
|
||||
to any target that references ``$<TARGET_OBJECTS:objlib>``.
|
||||
cannot be linked. Some native build systems (such as Xcode) may not like
|
||||
targets that have only object files, so consider adding at least one real
|
||||
source file to any target that references ``$<TARGET_OBJECTS:objlib>``.
|
||||
|
||||
Alias Libraries
|
||||
^^^^^^^^^^^^^^^
|
||||
@ -124,7 +125,8 @@ Alias Libraries
|
||||
Creates an :ref:`Alias Target <Alias Targets>`, such that ``<name>`` can be
|
||||
used to refer to ``<target>`` in subsequent commands. The ``<name>`` 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``.
|
||||
may not be a non-``GLOBAL`` :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 existence with the
|
||||
regular :command:`if(TARGET)` subcommand. The ``<name>`` may not be used
|
||||
|
@ -30,7 +30,7 @@ project that is useful but not necessary, such as a set of examples.
|
||||
Typically the subdirectory should contain its own :command:`project`
|
||||
command invocation so that a full build system will be generated in the
|
||||
subdirectory (such as a VS IDE solution file). Note that inter-target
|
||||
dependencies supercede this exclusion. If a target built by the
|
||||
dependencies supersede this exclusion. If a target built by the
|
||||
parent project depends on a target in the subdirectory, the dependee
|
||||
target will be included in the parent project build system to satisfy
|
||||
the dependency.
|
||||
|
@ -62,7 +62,7 @@ as the real :command:`install` command:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
function(MY_INSTALL)
|
||||
macro(my_install)
|
||||
set(options OPTIONAL FAST)
|
||||
set(oneValueArgs DESTINATION RENAME)
|
||||
set(multiValueArgs TARGETS CONFIGURATIONS)
|
||||
|
@ -10,7 +10,10 @@ Enable a language (CXX/C/Fortran/etc)
|
||||
This command enables support for the named language in CMake. This is
|
||||
the same as the project command but does not create any of the extra
|
||||
variables that are created by the project command. Example languages
|
||||
are CXX, C, Fortran.
|
||||
are ``CXX``, ``C``, ``CUDA``, ``Fortran``, and ``ASM``.
|
||||
|
||||
If enabling ``ASM``, enable it last so that CMake can check whether
|
||||
compilers for other languages like ``C`` work for assembly too.
|
||||
|
||||
This command must be called in file scope, not in a function call.
|
||||
Furthermore, it must be called in the highest directory common to all
|
||||
@ -19,4 +22,5 @@ indirectly through link dependencies. It is simplest to enable all
|
||||
needed languages in the top-level directory of a project.
|
||||
|
||||
The ``OPTIONAL`` keyword is a placeholder for future implementation and
|
||||
does not currently work.
|
||||
does not currently work. Instead you can use the :module:`CheckLanguage`
|
||||
module to verify support before enabling.
|
||||
|
@ -90,8 +90,10 @@ Options:
|
||||
Use the ANSI codepage.
|
||||
``OEM``
|
||||
Use the original equipment manufacturer (OEM) code page.
|
||||
``UTF8``
|
||||
Use the UTF-8 codepage.
|
||||
``UTF8`` or ``UTF-8``
|
||||
Use the UTF-8 codepage. Prior to CMake 3.11.0, only ``UTF8`` was accepted
|
||||
for this encoding. In CMake 3.11.0, ``UTF-8`` was added for consistency with
|
||||
the `UTF-8 RFC <https://www.ietf.org/rfc/rfc3629>`_ naming convention.
|
||||
|
||||
If more than one ``OUTPUT_*`` or ``ERROR_*`` option is given for the
|
||||
same pipe the precedence is not specified.
|
||||
|
@ -110,7 +110,7 @@ regular expressions, but much simpler. If ``RELATIVE`` flag is
|
||||
specified, the results will be returned as relative paths to the given
|
||||
path. The results will be ordered lexicographically.
|
||||
|
||||
By default ``GLOB`` lists directories - directories are omited in result if
|
||||
By default ``GLOB`` lists directories - directories are omitted in result if
|
||||
``LIST_DIRECTORIES`` is set to false.
|
||||
|
||||
.. note::
|
||||
@ -232,6 +232,31 @@ Options to both ``DOWNLOAD`` and ``UPLOAD`` are:
|
||||
``HTTPHEADER <HTTP-header>``
|
||||
HTTP header for operation. Suboption can be repeated several times.
|
||||
|
||||
``NETRC <level>``
|
||||
Specify whether the .netrc file is to be used for operation. If this
|
||||
option is not specified, the value of the ``CMAKE_NETRC`` variable
|
||||
will be used instead.
|
||||
Valid levels are:
|
||||
|
||||
``IGNORED``
|
||||
The .netrc file is ignored.
|
||||
This is the default.
|
||||
``OPTIONAL``
|
||||
The .netrc file is optional, and information in the URL is preferred.
|
||||
The file will be scanned to find which ever information is not specified
|
||||
in the URL.
|
||||
``REQUIRED``
|
||||
The .netrc file is required, and information in the URL is ignored.
|
||||
|
||||
``NETRC_FILE <file>``
|
||||
Specify an alternative .netrc file to the one in your home directory,
|
||||
if the ``NETRC`` level is ``OPTIONAL`` or ``REQUIRED``. If this option
|
||||
is not specified, the value of the ``CMAKE_NETRC_FILE`` variable will
|
||||
be used instead.
|
||||
|
||||
If neither ``NETRC`` option is given CMake will check variables
|
||||
``CMAKE_NETRC`` and ``CMAKE_NETRC_FILE``, respectively.
|
||||
|
||||
Additional options to ``DOWNLOAD`` are:
|
||||
|
||||
``EXPECTED_HASH ALGO=<value>``
|
||||
|
@ -176,7 +176,7 @@ claim compatibility with the version requested it is unspecified which
|
||||
one is chosen: unless the variable :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER`
|
||||
is set no attempt is made to choose a highest or closest version number.
|
||||
|
||||
To control the order in which ``find_package`` checks for compatibiliy use
|
||||
To control the order in which ``find_package`` checks for compatibility use
|
||||
the two variables :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER` and
|
||||
:variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION`.
|
||||
For instance in order to select the highest version one can set::
|
||||
|
@ -26,14 +26,14 @@ list.
|
||||
Foreach can also iterate over a generated range of numbers. There are
|
||||
three types of this iteration:
|
||||
|
||||
* When specifying single number, the range will have elements 0 to
|
||||
"total".
|
||||
* When specifying single number, the range will have elements [0, ... to
|
||||
"total"] (inclusive).
|
||||
|
||||
* When specifying two numbers, the range will have elements from the
|
||||
first number to the second number.
|
||||
first number to the second number (inclusive).
|
||||
|
||||
* The third optional number is the increment used to iterate from the
|
||||
first number to the second number.
|
||||
first number to the second number (inclusive).
|
||||
|
||||
::
|
||||
|
||||
|
@ -38,7 +38,21 @@ signatures that specify them. The common options are:
|
||||
|
||||
``CONFIGURATIONS``
|
||||
Specify a list of build configurations for which the install rule
|
||||
applies (Debug, Release, etc.).
|
||||
applies (Debug, Release, etc.). Note that the values specified for
|
||||
this option only apply to options listed AFTER the ``CONFIGURATIONS``
|
||||
option. For example, to set separate install paths for the Debug and
|
||||
Release configurations, do the following:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
install(TARGETS target
|
||||
CONFIGURATIONS Debug
|
||||
RUNTIME DESTINATION Debug/bin)
|
||||
install(TARGETS target
|
||||
CONFIGURATIONS Release
|
||||
RUNTIME DESTINATION Release/bin)
|
||||
|
||||
Note that ``CONFIGURATIONS`` appears BEFORE ``RUNTIME DESTINATION``.
|
||||
|
||||
``COMPONENT``
|
||||
Specify an installation component name with which the install rule
|
||||
@ -346,8 +360,8 @@ specified that does not match that given to the targets associated with
|
||||
included in the export but a target to which it links is not included
|
||||
the behavior is unspecified.
|
||||
|
||||
In additon to cmake language files, the ``EXPORT_ANDROID_MK`` option maybe
|
||||
used to specifiy an export to the android ndk build system. The Android
|
||||
In addition to cmake language files, the ``EXPORT_ANDROID_MK`` option maybe
|
||||
used to specify an export to the android ndk build system. The Android
|
||||
NDK supports the use of prebuilt libraries, both static and shared. This
|
||||
allows cmake to build the libraries of a project and make them available
|
||||
to an ndk build system complete with transitive dependencies, include flags
|
||||
|
@ -46,11 +46,15 @@ variable will be set to its argument. The argument must be a string with short
|
||||
description of the project (only a few words).
|
||||
|
||||
Optionally you can specify which languages your project supports.
|
||||
Example languages are ``C``, ``CXX`` (i.e. C++), ``Fortran``, etc.
|
||||
Example languages include ``C``, ``CXX`` (i.e. C++), ``CUDA``,
|
||||
``Fortran``, and ``ASM``.
|
||||
By default ``C`` and ``CXX`` are enabled if no language options are
|
||||
given. Specify language ``NONE``, or use the ``LANGUAGES`` keyword
|
||||
and list no languages, to skip enabling any languages.
|
||||
|
||||
If enabling ``ASM``, list it last so that CMake can check whether
|
||||
compilers for other languages like ``C`` work for assembly too.
|
||||
|
||||
If a variable exists called :variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE`,
|
||||
the file pointed to by that variable will be included as the last step of the
|
||||
project command.
|
||||
|
@ -12,14 +12,15 @@ Add compile definitions to a target.
|
||||
Specify compile definitions to use when compiling a given ``<target>``. The
|
||||
named ``<target>`` must have been created by a command such as
|
||||
:command:`add_executable` or :command:`add_library` and must not be an
|
||||
:ref:`Imported Target <Imported Targets>`.
|
||||
:ref:`ALIAS target <Alias Targets>`.
|
||||
|
||||
The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
|
||||
specify the scope of the following arguments. ``PRIVATE`` and ``PUBLIC``
|
||||
items will populate the :prop_tgt:`COMPILE_DEFINITIONS` property of
|
||||
``<target>``. ``PUBLIC`` and ``INTERFACE`` items will populate the
|
||||
:prop_tgt:`INTERFACE_COMPILE_DEFINITIONS` property of ``<target>``. The
|
||||
following arguments specify compile definitions. Repeated calls for the
|
||||
:prop_tgt:`INTERFACE_COMPILE_DEFINITIONS` property of ``<target>``.
|
||||
(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.)
|
||||
The following arguments specify compile definitions. Repeated calls for the
|
||||
same ``<target>`` append items in the order called.
|
||||
|
||||
Arguments to ``target_compile_definitions`` may use "generator expressions"
|
||||
|
@ -18,12 +18,13 @@ The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
|
||||
specify the scope of the features. ``PRIVATE`` and ``PUBLIC`` items will
|
||||
populate the :prop_tgt:`COMPILE_FEATURES` property of ``<target>``.
|
||||
``PUBLIC`` and ``INTERFACE`` items will populate the
|
||||
:prop_tgt:`INTERFACE_COMPILE_FEATURES` property of ``<target>``. Repeated
|
||||
calls for the same ``<target>`` append items.
|
||||
:prop_tgt:`INTERFACE_COMPILE_FEATURES` property of ``<target>``.
|
||||
(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.)
|
||||
Repeated calls for the same ``<target>`` append items.
|
||||
|
||||
The named ``<target>`` must have been created by a command such as
|
||||
:command:`add_executable` or :command:`add_library` and must not be
|
||||
an ``IMPORTED`` target.
|
||||
:command:`add_executable` or :command:`add_library` and must not be an
|
||||
:ref:`ALIAS target <Alias Targets>`.
|
||||
|
||||
Arguments to ``target_compile_features`` may use "generator expressions"
|
||||
with the syntax ``$<...>``.
|
||||
|
@ -12,8 +12,10 @@ Add compile options to a target.
|
||||
Specify compile options to use when compiling a given target. The
|
||||
named ``<target>`` must have been created by a command such as
|
||||
:command:`add_executable` or :command:`add_library` and must not be an
|
||||
:ref:`IMPORTED Target <Imported Targets>`. If ``BEFORE`` is specified,
|
||||
the content will be prepended to the property instead of being appended.
|
||||
:ref:`ALIAS target <Alias Targets>`.
|
||||
|
||||
If ``BEFORE`` is specified, the content will be prepended to the property
|
||||
instead of being appended.
|
||||
|
||||
This command can be used to add any options, but
|
||||
alternative commands exist to add preprocessor definitions
|
||||
@ -27,8 +29,9 @@ The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
|
||||
specify the scope of the following arguments. ``PRIVATE`` and ``PUBLIC``
|
||||
items will populate the :prop_tgt:`COMPILE_OPTIONS` property of
|
||||
``<target>``. ``PUBLIC`` and ``INTERFACE`` items will populate the
|
||||
:prop_tgt:`INTERFACE_COMPILE_OPTIONS` property of ``<target>``. The
|
||||
following arguments specify compile options. Repeated calls for the same
|
||||
:prop_tgt:`INTERFACE_COMPILE_OPTIONS` property of ``<target>``.
|
||||
(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.)
|
||||
The following arguments specify compile options. Repeated calls for the same
|
||||
``<target>`` append items in the order called.
|
||||
|
||||
Arguments to ``target_compile_options`` may use "generator expressions"
|
||||
|
@ -12,7 +12,7 @@ Add include directories to a target.
|
||||
Specify include directories to use when compiling a given target.
|
||||
The named ``<target>`` must have been created by a command such
|
||||
as :command:`add_executable` or :command:`add_library` and must not be an
|
||||
:prop_tgt:`IMPORTED` target.
|
||||
:ref:`ALIAS target <Alias Targets>`.
|
||||
|
||||
If ``BEFORE`` is specified, the content will be prepended to the property
|
||||
instead of being appended.
|
||||
@ -21,9 +21,9 @@ The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to specify
|
||||
the scope of the following arguments. ``PRIVATE`` and ``PUBLIC`` items will
|
||||
populate the :prop_tgt:`INCLUDE_DIRECTORIES` property of ``<target>``.
|
||||
``PUBLIC`` and ``INTERFACE`` items will populate the
|
||||
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES`
|
||||
property of ``<target>``. The following arguments specify include
|
||||
directories.
|
||||
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` property of ``<target>``.
|
||||
(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.)
|
||||
The following arguments specify include directories.
|
||||
|
||||
Specified include directories may be absolute paths or relative paths.
|
||||
Repeated calls for the same <target> append items in the order called. If
|
||||
|
@ -19,7 +19,8 @@ All of them have the general form::
|
||||
target_link_libraries(<target> ... <item>... ...)
|
||||
|
||||
The named ``<target>`` must have been created in the current directory by
|
||||
a command such as :command:`add_executable` or :command:`add_library`.
|
||||
a command such as :command:`add_executable` or :command:`add_library` and
|
||||
must not be an :ref:`ALIAS target <Alias Targets>`.
|
||||
Repeated calls for the same ``<target>`` append items in the order called.
|
||||
Each ``<item>`` may be:
|
||||
|
||||
|
@ -12,14 +12,15 @@ Add sources to a target.
|
||||
Specify sources to use when compiling a given target. The
|
||||
named ``<target>`` must have been created by a command such as
|
||||
:command:`add_executable` or :command:`add_library` and must not be an
|
||||
:ref:`IMPORTED Target <Imported Targets>`.
|
||||
:ref:`ALIAS target <Alias Targets>`.
|
||||
|
||||
The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
|
||||
specify the scope of the following arguments. ``PRIVATE`` and ``PUBLIC``
|
||||
items will populate the :prop_tgt:`SOURCES` property of
|
||||
``<target>``. ``PUBLIC`` and ``INTERFACE`` items will populate the
|
||||
:prop_tgt:`INTERFACE_SOURCES` property of ``<target>``. The
|
||||
following arguments specify sources. Repeated calls for the same
|
||||
:prop_tgt:`INTERFACE_SOURCES` property of ``<target>``.
|
||||
(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.)
|
||||
The following arguments specify sources. Repeated calls for the same
|
||||
``<target>`` append items in the order called.
|
||||
|
||||
Arguments to ``target_sources`` may use "generator expressions"
|
||||
|
@ -73,6 +73,13 @@ Merge the ``release-$ver`` branch to ``master``:
|
||||
git pull
|
||||
git merge --no-ff release-$ver
|
||||
|
||||
Review new ancestry to ensure nothing unexpected was merged to either branch:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
git log --graph --boundary origin/master..master
|
||||
git log --graph --boundary origin/release..release-$ver
|
||||
|
||||
Publish both ``master`` and ``release`` simultaneously:
|
||||
|
||||
.. code-block:: shell
|
||||
|
@ -16,7 +16,7 @@ welcome to provide testing machines in order to help keep support for their
|
||||
platforms working.
|
||||
|
||||
The `CMake Dashboard Scripts Repository`_ provides CTest scripts to drive
|
||||
nightly, continous, and experimental testing of CMake. Use the following
|
||||
nightly, continuous, and experimental testing of CMake. Use the following
|
||||
commands to set up a new integration testing client:
|
||||
|
||||
.. code-block:: console
|
||||
|
@ -1,25 +0,0 @@
|
||||
KDevelop3
|
||||
---------
|
||||
|
||||
Generates KDevelop 3 project files.
|
||||
|
||||
Project files for KDevelop 3 will be created in the top directory and
|
||||
in every subdirectory which features a CMakeLists.txt file containing
|
||||
a PROJECT() call. If you change the settings using KDevelop cmake
|
||||
will try its best to keep your changes when regenerating the project
|
||||
files. Additionally a hierarchy of UNIX makefiles is generated into
|
||||
the build tree. Any standard UNIX-style make program can build the
|
||||
project through the default make target. A "make install" target is
|
||||
also provided.
|
||||
|
||||
This "extra" generator may be specified as:
|
||||
|
||||
``KDevelop3 - Unix Makefiles``
|
||||
Generate with :generator:`Unix Makefiles`.
|
||||
|
||||
``KDevelop3``
|
||||
Generate with :generator:`Unix Makefiles`.
|
||||
|
||||
For historical reasons this extra generator may be specified
|
||||
directly as the main generator and it will be used as the
|
||||
extra generator with :generator:`Unix Makefiles` automatically.
|
@ -19,13 +19,17 @@ Instance Selection
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
VS 2017 supports multiple installations on the same machine.
|
||||
CMake queries the Visual Studio Installer to locate VS instances.
|
||||
If more than one instance is installed we do not define which one
|
||||
is chosen by default. If the ``VS150COMNTOOLS`` environment variable
|
||||
is set and points to the ``Common7/Tools`` directory within one of
|
||||
the instances, that instance will be used. The environment variable
|
||||
must remain consistently set whenever CMake is re-run within a given
|
||||
build tree.
|
||||
The :variable:`CMAKE_GENERATOR_INSTANCE` variable may be set as a
|
||||
cache entry containing the absolute path to a Visual Studio instance.
|
||||
If the value is not specified explicitly by the user or a toolchain file,
|
||||
CMake queries the Visual Studio Installer to locate VS instances, chooses
|
||||
one, and sets the variable as a cache entry to hold the value persistently.
|
||||
|
||||
When CMake first chooses an instance, if the ``VS150COMNTOOLS`` environment
|
||||
variable is set and points to the ``Common7/Tools`` directory within
|
||||
one of the instances, that instance will be used. Otherwise, if more
|
||||
than one instance is installed we do not define which one is chosen
|
||||
by default.
|
||||
|
||||
Toolset Selection
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
@ -831,12 +831,11 @@ Imported Targets
|
||||
|
||||
An :prop_tgt:`IMPORTED` target represents a pre-existing dependency. Usually
|
||||
such targets are defined by an upstream package and should be treated as
|
||||
immutable. It is not possible to use an :prop_tgt:`IMPORTED` target in the
|
||||
left-hand-side of the :command:`target_compile_definitions`,
|
||||
:command:`target_include_directories`, :command:`target_compile_options` or
|
||||
:command:`target_link_libraries` commands, as that would be an attempt to
|
||||
modify it. :prop_tgt:`IMPORTED` targets are designed to be used only in the
|
||||
right-hand-side of those commands.
|
||||
immutable. After declaring an :prop_tgt:`IMPORTED` target one can adjust its
|
||||
target properties by using the customary commands such as
|
||||
:command:`target_compile_definitions`, :command:`target_include_directories`,
|
||||
:command:`target_compile_options` or :command:`target_link_libraries` just like
|
||||
with any other regular target.
|
||||
|
||||
:prop_tgt:`IMPORTED` targets may have the same usage requirement properties
|
||||
populated as binary targets, such as
|
||||
|
@ -335,7 +335,7 @@ versions specified for each:
|
||||
* ``Clang``: Clang compiler versions 2.9 through 3.4.
|
||||
* ``GNU``: GNU compiler versions 4.4 through 5.0.
|
||||
* ``MSVC``: Microsoft Visual Studio versions 2010 through 2017.
|
||||
* ``SunPro``: Oracle SolarisStudio versions 12.4 through 12.5.
|
||||
* ``SunPro``: Oracle SolarisStudio versions 12.4 through 12.6.
|
||||
* ``Intel``: Intel compiler versions 12.1 through 17.0.
|
||||
|
||||
CMake is currently aware of the :prop_tgt:`C standards <C_STANDARD>`
|
||||
|
@ -97,22 +97,38 @@ Available logical expressions are:
|
||||
compile features and a list of supported compilers.
|
||||
``$<COMPILE_LANGUAGE:lang>``
|
||||
``1`` when the language used for compilation unit matches ``lang``,
|
||||
otherwise ``0``. This expression used to specify compile options for
|
||||
source files of a particular language in a target. For example, to specify
|
||||
the use of the ``-fno-exceptions`` compile option (compiler id checks
|
||||
elided):
|
||||
otherwise ``0``. This expression may be used to specify compile options,
|
||||
compile definitions, and include directories for source files of a
|
||||
particular language in a target. For example:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
add_executable(myapp main.cpp foo.c bar.cpp)
|
||||
add_executable(myapp main.cpp foo.c bar.cpp zot.cu)
|
||||
target_compile_options(myapp
|
||||
PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
|
||||
)
|
||||
target_compile_definitions(myapp
|
||||
PRIVATE $<$<COMPILE_LANGUAGE:CXX>:COMPILING_CXX>
|
||||
$<$<COMPILE_LANGUAGE:CUDA>:COMPILING_CUDA>
|
||||
)
|
||||
target_include_directories(myapp
|
||||
PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/opt/foo/cxx_headers>
|
||||
)
|
||||
|
||||
This generator expression has limited use because it is not possible to
|
||||
use it with the Visual Studio generators. Portable buildsystems would
|
||||
not use this expression, and would create separate libraries for each
|
||||
source file language instead:
|
||||
This specifies the use of the ``-fno-exceptions`` compile option,
|
||||
``COMPILING_CXX`` compile definition, and ``cxx_headers`` include
|
||||
directory for C++ only (compiler id checks elided). It also specifies
|
||||
a ``COMPILING_CUDA`` compile definition for CUDA.
|
||||
|
||||
Note that with :ref:`Visual Studio Generators` and :generator:`Xcode` there
|
||||
is no way to represent target-wide compile definitions or include directories
|
||||
separately for ``C`` and ``CXX`` languages.
|
||||
Also, with :ref:`Visual Studio Generators` there is no way to represent
|
||||
target-wide flags separately for ``C`` and ``CXX`` languages. Under these
|
||||
generators, expressions for both C and C++ sources will be evaluated
|
||||
using ``CXX`` if there are any C++ sources and otherwise using ``C``.
|
||||
A workaround is to create separate libraries for each source file language
|
||||
instead:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
@ -122,20 +138,6 @@ Available logical expressions are:
|
||||
add_executable(myapp main.cpp)
|
||||
target_link_libraries(myapp myapp_c myapp_cxx)
|
||||
|
||||
The ``Makefile`` and ``Ninja`` based generators can also use this
|
||||
expression to specify compile-language specific compile definitions
|
||||
and include directories:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
add_executable(myapp main.cpp foo.c bar.cpp)
|
||||
target_compile_definitions(myapp
|
||||
PRIVATE $<$<COMPILE_LANGUAGE:CXX>:COMPILING_CXX>
|
||||
)
|
||||
target_include_directories(myapp
|
||||
PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/opt/foo/cxx_headers>
|
||||
)
|
||||
|
||||
Informational Expressions
|
||||
=========================
|
||||
|
||||
|
@ -108,6 +108,5 @@ The following extra generators are known to CMake.
|
||||
/generator/CodeBlocks
|
||||
/generator/CodeLite
|
||||
/generator/Eclipse CDT4
|
||||
/generator/KDevelop3
|
||||
/generator/Kate
|
||||
/generator/Sublime Text 2
|
||||
|
@ -80,6 +80,7 @@ All Modules
|
||||
/module/ExternalData
|
||||
/module/ExternalProject
|
||||
/module/FeatureSummary
|
||||
/module/FetchContent
|
||||
/module/FindALSA
|
||||
/module/FindArmadillo
|
||||
/module/FindASPELL
|
||||
@ -129,6 +130,7 @@ All Modules
|
||||
/module/FindIcotool
|
||||
/module/FindICU
|
||||
/module/FindImageMagick
|
||||
/module/FindIconv
|
||||
/module/FindIntl
|
||||
/module/FindITK
|
||||
/module/FindJasper
|
||||
|
@ -51,6 +51,14 @@ 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.
|
||||
|
||||
Policies Introduced by CMake 3.11
|
||||
=================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
CMP0072: FindOpenGL prefers GLVND by default when available. </policy/CMP0072>
|
||||
|
||||
Policies Introduced by CMake 3.10
|
||||
=================================
|
||||
|
||||
|
@ -121,6 +121,7 @@ Properties on Targets
|
||||
/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG
|
||||
/prop_tgt/ARCHIVE_OUTPUT_NAME
|
||||
/prop_tgt/AUTOGEN_BUILD_DIR
|
||||
/prop_tgt/AUTOGEN_PARALLEL
|
||||
/prop_tgt/AUTOGEN_TARGET_DEPENDS
|
||||
/prop_tgt/AUTOMOC_COMPILER_PREDEFINES
|
||||
/prop_tgt/AUTOMOC_DEPEND_FILTERS
|
||||
@ -184,6 +185,7 @@ Properties on Targets
|
||||
/prop_tgt/HAS_CXX
|
||||
/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM
|
||||
/prop_tgt/IMPORTED_CONFIGURATIONS
|
||||
/prop_tgt/IMPORTED_GLOBAL
|
||||
/prop_tgt/IMPORTED_IMPLIB_CONFIG
|
||||
/prop_tgt/IMPORTED_IMPLIB
|
||||
/prop_tgt/IMPORTED_LIBNAME_CONFIG
|
||||
@ -368,10 +370,12 @@ Properties on Source Files
|
||||
/prop_sf/AUTORCC_OPTIONS
|
||||
/prop_sf/COMPILE_DEFINITIONS
|
||||
/prop_sf/COMPILE_FLAGS
|
||||
/prop_sf/COMPILE_OPTIONS
|
||||
/prop_sf/EXTERNAL_OBJECT
|
||||
/prop_sf/Fortran_FORMAT
|
||||
/prop_sf/GENERATED
|
||||
/prop_sf/HEADER_FILE_ONLY
|
||||
/prop_sf/INCLUDE_DIRECTORIES
|
||||
/prop_sf/KEEP_EXTENSION
|
||||
/prop_sf/LABELS
|
||||
/prop_sf/LANGUAGE
|
||||
@ -390,6 +394,8 @@ Properties on Source Files
|
||||
/prop_sf/VS_DEPLOYMENT_LOCATION
|
||||
/prop_sf/VS_INCLUDE_IN_VSIX
|
||||
/prop_sf/VS_RESOURCE_GENERATOR
|
||||
/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS
|
||||
/prop_sf/VS_SHADER_ENABLE_DEBUG
|
||||
/prop_sf/VS_SHADER_ENTRYPOINT
|
||||
/prop_sf/VS_SHADER_FLAGS
|
||||
/prop_sf/VS_SHADER_MODEL
|
||||
|
@ -96,7 +96,8 @@ following targets by setting the :variable:`CMAKE_AUTOMOC` variable. The
|
||||
options to pass to ``moc``. The :variable:`CMAKE_AUTOMOC_MOC_OPTIONS`
|
||||
variable may be populated to pre-set the options for all following targets.
|
||||
|
||||
Additional macro names to search for can be added to :prop_tgt:`AUTOMOC_MACRO_NAMES`.
|
||||
Additional macro names to search for can be added to
|
||||
:prop_tgt:`AUTOMOC_MACRO_NAMES`.
|
||||
|
||||
Additional ``moc`` dependency file names can be extracted from source code
|
||||
by using :prop_tgt:`AUTOMOC_DEPEND_FILTERS`.
|
||||
@ -216,19 +217,16 @@ enabling :prop_sf:`SKIP_AUTORCC` or the broader :prop_sf:`SKIP_AUTOGEN`.
|
||||
Visual Studio Generators
|
||||
========================
|
||||
|
||||
When using the :manual:`Visual Studio generators <cmake-generators(7)>`
|
||||
CMake tries to use a ``PRE_BUILD``
|
||||
:command:`custom command <add_custom_command>` instead
|
||||
of a :command:`custom target <add_custom_target>` for autogen.
|
||||
``PRE_BUILD`` can't be used when the autogen target depends on files.
|
||||
When using the :manual:`Visual Studio generators <cmake-generators(7)>`,
|
||||
CMake uses a ``PRE_BUILD`` :command:`custom command <add_custom_command>` for
|
||||
:prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`.
|
||||
If the :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` processing depends on files,
|
||||
a :command:`custom target <add_custom_target>` is used instead.
|
||||
This happens when
|
||||
|
||||
- :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` is enabled and the origin target
|
||||
depends on :prop_sf:`GENERATED` files which aren't excluded from autogen by
|
||||
:prop_sf:`SKIP_AUTOMOC`, :prop_sf:`SKIP_AUTOUIC`, :prop_sf:`SKIP_AUTOGEN`
|
||||
or :policy:`CMP0071`
|
||||
- :prop_tgt:`AUTORCC` is enabled and a ``.qrc`` file is listed in
|
||||
the origin target sources
|
||||
- The origin target depends on :prop_sf:`GENERATED` files which aren't excluded
|
||||
from :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` by :prop_sf:`SKIP_AUTOMOC`,
|
||||
:prop_sf:`SKIP_AUTOUIC`, :prop_sf:`SKIP_AUTOGEN` or :policy:`CMP0071`
|
||||
- :prop_tgt:`AUTOGEN_TARGET_DEPENDS` lists a source file
|
||||
|
||||
qtmain.lib on Windows
|
||||
|
@ -162,7 +162,7 @@ When the server is busy for a long time, it is polite to send back replies of
|
||||
type "progress" to the client. These will contain a "progressMessage" with a
|
||||
string describing the action currently taking place as well as
|
||||
"progressMinimum", "progressMaximum" and "progressCurrent" with integer values
|
||||
describing the range of progess.
|
||||
describing the range of progress.
|
||||
|
||||
Messages of type "progress" will be followed by more "progress" messages or with
|
||||
a message of type "reply" or "error" that complete the request.
|
||||
@ -277,10 +277,6 @@ Giving the "major" version of the requested protocol version will make the serve
|
||||
use the latest minor version of that protocol. Use this if you do not explicitly
|
||||
need to depend on a specific minor version.
|
||||
|
||||
If the build directory already contains a CMake cache, it is sufficient to set
|
||||
the "buildDirectory" attribute. To create a fresh build directory, additional
|
||||
attributes are required depending on the protocol version.
|
||||
|
||||
Protocol version 1.0 requires the following attributes to be set:
|
||||
|
||||
* "sourceDirectory" with a path to the sources
|
||||
@ -290,6 +286,10 @@ Protocol version 1.0 requires the following attributes to be set:
|
||||
* "platform" with the generator platform (if supported by the generator)
|
||||
* "toolset" with the generator toolset (if supported by the generator)
|
||||
|
||||
Protocol version 1.2 makes all but the build directory optional, provided
|
||||
there is a valid cache in the build directory that contains all the other
|
||||
information already.
|
||||
|
||||
Example::
|
||||
|
||||
[== "CMake Server" ==[
|
||||
@ -458,6 +458,11 @@ Each project object can have the following keys:
|
||||
|
||||
"name"
|
||||
contains the (sub-)projects name.
|
||||
"minimumCMakeVersion"
|
||||
contains the minimum cmake version allowed for this project, null if the
|
||||
project doesn't specify one.
|
||||
"hasInstallRule"
|
||||
true if the project contains any install rules, false otherwise.
|
||||
"sourceDirectory"
|
||||
contains the current source directory
|
||||
"buildDirectory"
|
||||
@ -481,6 +486,12 @@ Each target object can have the following keys:
|
||||
contains the current source directory.
|
||||
"buildDirectory"
|
||||
contains the current build directory.
|
||||
"isGeneratorProvided"
|
||||
true if the target is auto-created by a generator, false otherwise
|
||||
"hasInstallRule"
|
||||
true if the target contains any install rules, false otherwise.
|
||||
"installPaths"
|
||||
full path to the destination directories defined by target install rules.
|
||||
"artifacts"
|
||||
with a list of build artifacts. The list is sorted with the most
|
||||
important artifacts first (e.g. a .DLL file is listed before a
|
||||
@ -582,6 +593,51 @@ CMake will reply::
|
||||
]== "CMake Server" ==]
|
||||
|
||||
|
||||
Type "ctestInfo"
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
The "ctestInfo" request can be used after a project was "compute"d successfully.
|
||||
|
||||
It will list the complete project test structure as it is known to cmake.
|
||||
|
||||
The reply will contain a key "configurations", which will contain a list of
|
||||
configuration objects. Configuration objects are used to destinquish between
|
||||
different configurations the build directory might have enabled. While most
|
||||
generators only support one configuration, others might support several.
|
||||
|
||||
Each configuration object can have the following keys:
|
||||
|
||||
"name"
|
||||
contains the name of the configuration. The name may be empty.
|
||||
"projects"
|
||||
contains a list of project objects, one for each build project.
|
||||
|
||||
Project objects define one (sub-)project defined in the cmake build system.
|
||||
|
||||
Each project object can have the following keys:
|
||||
|
||||
"name"
|
||||
contains the (sub-)projects name.
|
||||
"ctestInfo"
|
||||
contains a list of test objects.
|
||||
|
||||
Each test object can have the following keys:
|
||||
|
||||
"ctestName"
|
||||
contains the name of the test.
|
||||
"ctestCommand"
|
||||
contains the test command.
|
||||
"properties"
|
||||
contains a list of test property objects.
|
||||
|
||||
Each test property object can have the following keys:
|
||||
|
||||
"key"
|
||||
contains the test property key.
|
||||
"value"
|
||||
contains the test property value.
|
||||
|
||||
|
||||
Type "cmakeInputs"
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
@ -42,6 +42,7 @@ Variables that Provide Information
|
||||
/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION
|
||||
/variable/CMAKE_FIND_PACKAGE_SORT_ORDER
|
||||
/variable/CMAKE_GENERATOR
|
||||
/variable/CMAKE_GENERATOR_INSTANCE
|
||||
/variable/CMAKE_GENERATOR_PLATFORM
|
||||
/variable/CMAKE_GENERATOR_TOOLSET
|
||||
/variable/CMAKE_HOME_DIRECTORY
|
||||
@ -49,6 +50,7 @@ Variables that Provide Information
|
||||
/variable/CMAKE_IMPORT_LIBRARY_SUFFIX
|
||||
/variable/CMAKE_JOB_POOL_COMPILE
|
||||
/variable/CMAKE_JOB_POOL_LINK
|
||||
/variable/CMAKE_JOB_POOLS
|
||||
/variable/CMAKE_LANG_COMPILER_AR
|
||||
/variable/CMAKE_LANG_COMPILER_RANLIB
|
||||
/variable/CMAKE_LINK_LIBRARY_SUFFIX
|
||||
@ -60,6 +62,8 @@ Variables that Provide Information
|
||||
/variable/CMAKE_MATCH_n
|
||||
/variable/CMAKE_MINIMUM_REQUIRED_VERSION
|
||||
/variable/CMAKE_MINOR_VERSION
|
||||
/variable/CMAKE_NETRC
|
||||
/variable/CMAKE_NETRC_FILE
|
||||
/variable/CMAKE_PARENT_LIST_FILE
|
||||
/variable/CMAKE_PATCH_VERSION
|
||||
/variable/CMAKE_PROJECT_DESCRIPTION
|
||||
@ -121,6 +125,7 @@ Variables that Change Behavior
|
||||
/variable/CMAKE_AUTOMOC_RELAXED_MODE
|
||||
/variable/CMAKE_BACKWARDS_COMPATIBILITY
|
||||
/variable/CMAKE_BUILD_TYPE
|
||||
/variable/CMAKE_CODEBLOCKS_COMPILER_ID
|
||||
/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES
|
||||
/variable/CMAKE_CODELITE_USE_TARGETS
|
||||
/variable/CMAKE_COLOR_MAKEFILE
|
||||
@ -156,6 +161,7 @@ Variables that Change Behavior
|
||||
/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE
|
||||
/variable/CMAKE_INCLUDE_PATH
|
||||
/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME
|
||||
/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
|
||||
/variable/CMAKE_INSTALL_MESSAGE
|
||||
/variable/CMAKE_INSTALL_PREFIX
|
||||
/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT
|
||||
@ -185,6 +191,7 @@ Variables that Change Behavior
|
||||
/variable/CMAKE_USER_MAKE_RULES_OVERRIDE
|
||||
/variable/CMAKE_WARN_DEPRECATED
|
||||
/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
|
||||
/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY
|
||||
|
||||
Variables that Describe the System
|
||||
==================================
|
||||
@ -269,6 +276,7 @@ Variables that Control the Build
|
||||
/variable/CMAKE_ANDROID_STL_TYPE
|
||||
/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY
|
||||
/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG
|
||||
/variable/CMAKE_AUTOGEN_PARALLEL
|
||||
/variable/CMAKE_AUTOMOC
|
||||
/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES
|
||||
/variable/CMAKE_AUTOMOC_DEPEND_FILTERS
|
||||
@ -285,6 +293,7 @@ Variables that Control the Build
|
||||
/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY
|
||||
/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG
|
||||
/variable/CMAKE_CONFIG_POSTFIX
|
||||
/variable/CMAKE_CUDA_SEPARABLE_COMPILATION
|
||||
/variable/CMAKE_DEBUG_POSTFIX
|
||||
/variable/CMAKE_ENABLE_EXPORTS
|
||||
/variable/CMAKE_EXE_LINKER_FLAGS
|
||||
@ -406,6 +415,8 @@ Variables for Languages
|
||||
/variable/CMAKE_LANG_CREATE_SHARED_MODULE
|
||||
/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY
|
||||
/variable/CMAKE_LANG_FLAGS
|
||||
/variable/CMAKE_LANG_FLAGS_CONFIG
|
||||
/variable/CMAKE_LANG_FLAGS_CONFIG_INIT
|
||||
/variable/CMAKE_LANG_FLAGS_DEBUG
|
||||
/variable/CMAKE_LANG_FLAGS_DEBUG_INIT
|
||||
/variable/CMAKE_LANG_FLAGS_INIT
|
||||
@ -415,6 +426,7 @@ Variables for Languages
|
||||
/variable/CMAKE_LANG_FLAGS_RELEASE_INIT
|
||||
/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO
|
||||
/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT
|
||||
/variable/CMAKE_LANG_GHS_KERNEL_FLAGS_CONFIG
|
||||
/variable/CMAKE_LANG_GHS_KERNEL_FLAGS_DEBUG
|
||||
/variable/CMAKE_LANG_GHS_KERNEL_FLAGS_MINSIZEREL
|
||||
/variable/CMAKE_LANG_GHS_KERNEL_FLAGS_RELEASE
|
||||
@ -501,6 +513,7 @@ Variables for CTest
|
||||
/variable/CTEST_P4_COMMAND
|
||||
/variable/CTEST_P4_OPTIONS
|
||||
/variable/CTEST_P4_UPDATE_OPTIONS
|
||||
/variable/CTEST_RUN_CURRENT_SCRIPT
|
||||
/variable/CTEST_SCP_COMMAND
|
||||
/variable/CTEST_SITE
|
||||
/variable/CTEST_SOURCE_DIRECTORY
|
||||
@ -525,6 +538,7 @@ Variables for CPack
|
||||
/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY
|
||||
/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
|
||||
/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY
|
||||
/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
|
||||
/variable/CPACK_INSTALL_SCRIPT
|
||||
/variable/CPACK_PACKAGING_INSTALL_PREFIX
|
||||
/variable/CPACK_SET_DESTDIR
|
||||
|
@ -11,6 +11,7 @@ Synopsis
|
||||
cmake [<options>] (<path-to-source> | <path-to-existing-build>)
|
||||
cmake [(-D <var>=<value>)...] -P <cmake-script-file>
|
||||
cmake --build <dir> [<options>...] [-- <build-tool-options>...]
|
||||
cmake --open <dir>
|
||||
cmake -E <command> [<options>...]
|
||||
cmake --find-package <options>...
|
||||
|
||||
@ -51,6 +52,10 @@ Options
|
||||
``--build <dir>``
|
||||
See `Build Tool Mode`_.
|
||||
|
||||
``--open <dir>``
|
||||
Open the generated project in the associated application. This is
|
||||
only supported by some generators.
|
||||
|
||||
``-N``
|
||||
View mode only.
|
||||
|
||||
@ -332,7 +337,7 @@ Available commands are:
|
||||
``paxr`` (restricted pax, default), and ``zip``.
|
||||
|
||||
``time <command> [<args>...]``
|
||||
Run command and return elapsed time.
|
||||
Run command and display elapsed time.
|
||||
|
||||
``touch <file>``
|
||||
Touch a file.
|
||||
|
@ -62,6 +62,12 @@ Options
|
||||
|
||||
Run cpack with debug output (for CPack developers).
|
||||
|
||||
``--trace``
|
||||
Put underlying cmake scripts in trace mode.
|
||||
|
||||
``--trace-expand``
|
||||
Put underlying cmake scripts in expanded trace mode.
|
||||
|
||||
``-P <package name>``
|
||||
override/define CPACK_PACKAGE_NAME
|
||||
|
||||
|
@ -3,12 +3,18 @@
|
||||
ctest(1)
|
||||
********
|
||||
|
||||
.. contents::
|
||||
|
||||
Synopsis
|
||||
========
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
ctest [<options>]
|
||||
ctest <path-to-source> <path-to-build> --build-generator <generator>
|
||||
[<options>...] [-- <build-options>...] [--test-command <test>]
|
||||
ctest (-D <dashboard> | -M <model> -T <action> | -S <script> | -SP <script>)
|
||||
[-- <dashboard-options>...]
|
||||
|
||||
Description
|
||||
===========
|
||||
@ -55,17 +61,21 @@ Options
|
||||
``-F``
|
||||
Enable failover.
|
||||
|
||||
This option allows ctest to resume a test set execution that was
|
||||
This option allows CTest to resume a test set execution that was
|
||||
previously interrupted. If no interruption occurred, the ``-F`` option
|
||||
will have no effect.
|
||||
|
||||
``-j <jobs>, --parallel <jobs>``
|
||||
Run the tests in parallel using the given number of jobs.
|
||||
|
||||
This option tells ctest to run the tests in parallel using given
|
||||
number of jobs. This option can also be set by setting the
|
||||
This option tells CTest to run the tests in parallel using given
|
||||
number of jobs. This option can also be set by setting the
|
||||
environment variable ``CTEST_PARALLEL_LEVEL``.
|
||||
|
||||
This option can be used with the :prop_test:`PROCESSORS` test property.
|
||||
|
||||
See `Label and Subproject Summary`_.
|
||||
|
||||
``--test-load <level>``
|
||||
While running tests in parallel (e.g. with ``-j``), try not to start
|
||||
tests when they may cause the CPU load to pass above a given threshold.
|
||||
@ -74,7 +84,7 @@ Options
|
||||
``TestLoad`` option of the `CTest Test Step`_.
|
||||
|
||||
``-Q,--quiet``
|
||||
Make ctest quiet.
|
||||
Make CTest quiet.
|
||||
|
||||
This option will suppress all the output. The output log file will
|
||||
still be generated if the ``--output-log`` is specified. Options such
|
||||
@ -84,37 +94,37 @@ Options
|
||||
``-O <file>, --output-log <file>``
|
||||
Output to log file.
|
||||
|
||||
This option tells ctest to write all its output to a log file.
|
||||
This option tells CTest to write all its output to a log file.
|
||||
|
||||
``-N,--show-only``
|
||||
Disable actual execution of tests.
|
||||
|
||||
This option tells ctest to list the tests that would be run but not
|
||||
This option tells CTest to list the tests that would be run but not
|
||||
actually run them. Useful in conjunction with the ``-R`` and ``-E``
|
||||
options.
|
||||
|
||||
``-L <regex>, --label-regex <regex>``
|
||||
Run tests with labels matching regular expression.
|
||||
|
||||
This option tells ctest to run only the tests whose labels match the
|
||||
This option tells CTest to run only the tests whose labels match the
|
||||
given regular expression.
|
||||
|
||||
``-R <regex>, --tests-regex <regex>``
|
||||
Run tests matching regular expression.
|
||||
|
||||
This option tells ctest to run only the tests whose names match the
|
||||
This option tells CTest to run only the tests whose names match the
|
||||
given regular expression.
|
||||
|
||||
``-E <regex>, --exclude-regex <regex>``
|
||||
Exclude tests matching regular expression.
|
||||
|
||||
This option tells ctest to NOT run the tests whose names match the
|
||||
This option tells CTest to NOT run the tests whose names match the
|
||||
given regular expression.
|
||||
|
||||
``-LE <regex>, --label-exclude <regex>``
|
||||
Exclude tests with labels matching regular expression.
|
||||
|
||||
This option tells ctest to NOT run the tests whose labels match the
|
||||
This option tells CTest to NOT run the tests whose labels match the
|
||||
given regular expression.
|
||||
|
||||
``-FA <regex>, --fixture-exclude-any <regex>``
|
||||
@ -137,11 +147,13 @@ Options
|
||||
``-D <dashboard>, --dashboard <dashboard>``
|
||||
Execute dashboard test.
|
||||
|
||||
This option tells ctest to act as a CDash client and perform a
|
||||
This option tells CTest to act as a CDash client and perform a
|
||||
dashboard test. All tests are <Mode><Test>, where Mode can be
|
||||
Experimental, Nightly, and Continuous, and Test can be Start,
|
||||
Update, Configure, Build, Test, Coverage, and Submit.
|
||||
|
||||
See `Dashboard Client`_.
|
||||
|
||||
``-D <var>:<type>=<value>``
|
||||
Define a variable for script mode.
|
||||
|
||||
@ -153,35 +165,33 @@ Options
|
||||
``-M <model>, --test-model <model>``
|
||||
Sets the model for a dashboard.
|
||||
|
||||
This option tells ctest to act as a CDash client where the ``<model>``
|
||||
This option tells CTest to act as a CDash client where the ``<model>``
|
||||
can be ``Experimental``, ``Nightly``, and ``Continuous``.
|
||||
Combining ``-M`` and ``-T`` is similar to ``-D``.
|
||||
|
||||
See `Dashboard Client`_.
|
||||
|
||||
``-T <action>, --test-action <action>``
|
||||
Sets the dashboard action to perform.
|
||||
|
||||
This option tells ctest to act as a CDash client and perform some
|
||||
This option tells CTest to act as a CDash client and perform some
|
||||
action such as ``start``, ``build``, ``test`` etc. See
|
||||
`Dashboard Client Steps`_ for the full list of actions.
|
||||
Combining ``-M`` and ``-T`` is similar to ``-D``.
|
||||
|
||||
``--track <track>``
|
||||
Specify the track to submit dashboard to
|
||||
|
||||
Submit dashboard to specified track instead of default one. By
|
||||
default, the dashboard is submitted to Nightly, Experimental, or
|
||||
Continuous track, but by specifying this option, the track can be
|
||||
arbitrary.
|
||||
See `Dashboard Client`_.
|
||||
|
||||
``-S <script>, --script <script>``
|
||||
Execute a dashboard for a configuration.
|
||||
|
||||
This option tells ctest to load in a configuration script which sets
|
||||
This option tells CTest to load in a configuration script which sets
|
||||
a number of parameters such as the binary and source directories.
|
||||
Then ctest will do what is required to create and run a dashboard.
|
||||
Then CTest will do what is required to create and run a dashboard.
|
||||
This option basically sets up a dashboard and then runs ``ctest -D``
|
||||
with the appropriate options.
|
||||
|
||||
See `Dashboard Client`_.
|
||||
|
||||
``-SP <script>, --script-new-process <script>``
|
||||
Execute a dashboard for a configuration.
|
||||
|
||||
@ -190,16 +200,12 @@ Options
|
||||
script may modify the environment and you do not want the modified
|
||||
environment to impact other ``-S`` scripts.
|
||||
|
||||
``-A <file>, --add-notes <file>``
|
||||
Add a notes file with submission.
|
||||
|
||||
This option tells ctest to include a notes file when submitting
|
||||
dashboard.
|
||||
See `Dashboard Client`_.
|
||||
|
||||
``-I [Start,End,Stride,test#,test#|Test file], --tests-information``
|
||||
Run a specific number of tests by number.
|
||||
|
||||
This option causes ctest to run tests starting at number Start,
|
||||
This option causes CTest to run tests starting at number Start,
|
||||
ending at number End, and incrementing by Stride. Any additional
|
||||
numbers after Stride are considered individual test numbers. Start,
|
||||
End,or stride can be empty. Optionally a file can be given that
|
||||
@ -214,11 +220,11 @@ Options
|
||||
``--rerun-failed``
|
||||
Run only the tests that failed previously.
|
||||
|
||||
This option tells ctest to perform only the tests that failed during
|
||||
its previous run. When this option is specified, ctest ignores all
|
||||
This option tells CTest to perform only the tests that failed during
|
||||
its previous run. When this option is specified, CTest ignores all
|
||||
other options intended to modify the list of tests to run (``-L``, ``-R``,
|
||||
``-E``, ``-LE``, ``-I``, etc). In the event that CTest runs and no tests
|
||||
fail, subsequent calls to ctest with the ``--rerun-failed`` option will run
|
||||
fail, subsequent calls to CTest with the ``--rerun-failed`` option will run
|
||||
the set of tests that most recently failed (if any).
|
||||
|
||||
``--repeat-until-fail <n>``
|
||||
@ -236,7 +242,7 @@ Options
|
||||
``--interactive-debug-mode [0|1]``
|
||||
Set the interactive mode to 0 or 1.
|
||||
|
||||
This option causes ctest to run tests in either an interactive mode
|
||||
This option causes CTest to run tests in either an interactive mode
|
||||
or a non-interactive mode. On Windows this means that in
|
||||
non-interactive mode, all system debug pop up windows are blocked.
|
||||
In dashboard mode (Experimental, Nightly, Continuous), the default
|
||||
@ -246,36 +252,139 @@ Options
|
||||
``--no-label-summary``
|
||||
Disable timing summary information for labels.
|
||||
|
||||
This option tells ctest not to print summary information for each
|
||||
This option tells CTest not to print summary information for each
|
||||
label associated with the tests run. If there are no labels on the
|
||||
tests, nothing extra is printed.
|
||||
|
||||
``--no-subproject-summary``
|
||||
See `Label and Subproject Summary`_.
|
||||
|
||||
``--no-subproject-summary``
|
||||
Disable timing summary information for subprojects.
|
||||
|
||||
This option tells ctest not to print summary information for each
|
||||
This option tells CTest not to print summary information for each
|
||||
subproject associated with the tests run. If there are no subprojects on the
|
||||
tests, nothing extra is printed.
|
||||
|
||||
``--build-and-test <path-to-source> <path-to-build>``
|
||||
Configure, build and run a test.
|
||||
See `Label and Subproject Summary`_.
|
||||
|
||||
This option tells ctest to configure (i.e. run cmake on), build,
|
||||
and or execute a test. The configure and test steps are optional.
|
||||
The arguments to this command line are the source and binary
|
||||
directories.
|
||||
The ``--build-generator`` option *must* be provided to use
|
||||
``--build-and-test``. If ``--test-command`` is specified then that will be
|
||||
run after the build is complete. Other options that affect this
|
||||
mode are ``--build-target``, ``--build-nocmake``, ``--build-run-dir``,
|
||||
``--build-two-config``, ``--build-exe-dir``,
|
||||
``--build-project``, ``--build-noclean`` and ``--build-options``.
|
||||
``--build-and-test``
|
||||
See `Build and Test Mode`_.
|
||||
|
||||
``--test-output-size-passed <size>``
|
||||
Limit the output for passed tests to ``<size>`` bytes.
|
||||
|
||||
``--test-output-size-failed <size>``
|
||||
Limit the output for failed tests to ``<size>`` bytes.
|
||||
|
||||
``--overwrite``
|
||||
Overwrite CTest configuration option.
|
||||
|
||||
By default CTest uses configuration options from configuration file.
|
||||
This option will overwrite the configuration option.
|
||||
|
||||
``--force-new-ctest-process``
|
||||
Run child CTest instances as new processes.
|
||||
|
||||
By default CTest will run child CTest instances within the same
|
||||
process. If this behavior is not desired, this argument will
|
||||
enforce new processes for child CTest processes.
|
||||
|
||||
``--schedule-random``
|
||||
Use a random order for scheduling tests.
|
||||
|
||||
This option will run the tests in a random order. It is commonly
|
||||
used to detect implicit dependencies in a test suite.
|
||||
|
||||
``--submit-index``
|
||||
Legacy option for old Dart2 dashboard server feature.
|
||||
Do not use.
|
||||
|
||||
``--timeout <seconds>``
|
||||
Set a global timeout on all tests.
|
||||
|
||||
This option will set a global timeout on all tests that do not
|
||||
already have a timeout set on them.
|
||||
|
||||
``--stop-time <time>``
|
||||
Set a time at which all tests should stop running.
|
||||
|
||||
Set a real time of day at which all tests should timeout. Example:
|
||||
``7:00:00 -0400``. Any time format understood by the curl date parser
|
||||
is accepted. Local time is assumed if no timezone is specified.
|
||||
|
||||
``--print-labels``
|
||||
Print all available test labels.
|
||||
|
||||
This option will not run any tests, it will simply print the list of
|
||||
all labels associated with the test set.
|
||||
|
||||
.. include:: OPTIONS_HELP.txt
|
||||
|
||||
.. _`Label and Subproject Summary`:
|
||||
|
||||
Label and Subproject Summary
|
||||
============================
|
||||
|
||||
CTest prints timing summary information for each label and subproject
|
||||
associated with the tests run. The label time summary will not include labels
|
||||
that are mapped to subprojects.
|
||||
|
||||
When the :prop_test:`PROCESSORS` test property is set, CTest will display a
|
||||
weighted test timing result in label and subproject summaries. The time is
|
||||
reported with `sec*proc` instead of just `sec`.
|
||||
|
||||
The weighted time summary reported for each label or subproject j is computed
|
||||
as::
|
||||
|
||||
Weighted Time Summary for Label/Subproject j =
|
||||
sum(raw_test_time[j,i] * num_processors[j,i], i=1...num_tests[j])
|
||||
|
||||
for labels/subprojects j=1...total
|
||||
|
||||
where:
|
||||
|
||||
* raw_test_time[j,i]: Wall-clock time for the ith test for the jth label or
|
||||
subproject
|
||||
* num_processors[j,i]: Value of the CTest PROCESSORS property for the ith test
|
||||
for the jth label or subproject
|
||||
* num_tests[j]: Number of tests associated with the jth label or subproject
|
||||
* total: Total number of labels or subprojects that have at least one test run
|
||||
|
||||
Therefore, the weighted time summary for each label or subproject represents
|
||||
the amount of time that CTest gave to run the tests for each label or
|
||||
subproject and gives a good representation of the total expense of the tests
|
||||
for each label or subproject when compared to other labels or subprojects.
|
||||
|
||||
For example, if "SubprojectA" showed "100 sec*proc" and "SubprojectB" showed
|
||||
"10 sec*proc", then CTest allocated approximately 10 times the CPU/core time
|
||||
to run the tests for "SubprojectA" than for "SubprojectB" (e.g. so if effort
|
||||
is going to be expended to reduce the cost of the test suite for the whole
|
||||
project, then reducing the cost of the test suite for "SubprojectA" would
|
||||
likely have a larger impact than effort to reduce the cost of the test suite
|
||||
for "SubprojectB").
|
||||
|
||||
.. _`Build and Test Mode`:
|
||||
|
||||
Build and Test Mode
|
||||
===================
|
||||
|
||||
CTest provides a command-line signature to to configure (i.e. run cmake on),
|
||||
build, and or execute a test::
|
||||
|
||||
ctest --build-and-test <path-to-source> <path-to-build>
|
||||
--build-generator <generator> [<options>...] [-- <build-options>...]
|
||||
[--test-command <test>]
|
||||
|
||||
The configure and test steps are optional. The arguments to this command line
|
||||
are the source and binary directories. The ``--build-generator`` option *must*
|
||||
be provided to use ``--build-and-test``. If ``--test-command`` is specified
|
||||
then that will be run after the build is complete. Other options that affect
|
||||
this mode include:
|
||||
|
||||
``--build-target``
|
||||
Specify a specific target to build.
|
||||
|
||||
This option goes with the ``--build-and-test`` option, if left out the
|
||||
``all`` target is built.
|
||||
If left out the ``all`` target is built.
|
||||
|
||||
``--build-nocmake``
|
||||
Run the build without running cmake first.
|
||||
@ -324,68 +433,48 @@ Options
|
||||
``--test-command``
|
||||
The test to run with the ``--build-and-test`` option.
|
||||
|
||||
``--test-output-size-passed <size>``
|
||||
Limit the output for passed tests to ``<size>`` bytes.
|
||||
|
||||
``--test-output-size-failed <size>``
|
||||
Limit the output for failed tests to ``<size>`` bytes.
|
||||
|
||||
``--test-timeout``
|
||||
The time limit in seconds, internal use only.
|
||||
The time limit in seconds
|
||||
|
||||
.. _`Dashboard Client`:
|
||||
|
||||
Dashboard Client
|
||||
================
|
||||
|
||||
CTest can operate as a client for the `CDash`_ software quality dashboard
|
||||
application. As a dashboard client, CTest performs a sequence of steps
|
||||
to configure, build, and test software, and then submits the results to
|
||||
a `CDash`_ server. The command-line signature used to submit to `CDash`_ is::
|
||||
|
||||
ctest (-D <dashboard> | -M <model> -T <action> | -S <script> | -SP <script>)
|
||||
[-- <dashboard-options>...]
|
||||
|
||||
Options for Dashboard Client include:
|
||||
|
||||
``--track <track>``
|
||||
Specify the track to submit dashboard to
|
||||
|
||||
Submit dashboard to specified track instead of default one. By
|
||||
default, the dashboard is submitted to Nightly, Experimental, or
|
||||
Continuous track, but by specifying this option, the track can be
|
||||
arbitrary.
|
||||
|
||||
``-A <file>, --add-notes <file>``
|
||||
Add a notes file with submission.
|
||||
|
||||
This option tells CTest to include a notes file when submitting
|
||||
dashboard.
|
||||
|
||||
``--tomorrow-tag``
|
||||
Nightly or experimental starts with next day tag.
|
||||
|
||||
This is useful if the build will not finish in one day.
|
||||
|
||||
``--ctest-config``
|
||||
The configuration file used to initialize CTest state when submitting dashboards.
|
||||
|
||||
This option tells CTest to use different initialization file instead
|
||||
of CTestConfiguration.tcl. This way multiple initialization files
|
||||
can be used for example to submit to multiple dashboards.
|
||||
|
||||
``--overwrite``
|
||||
Overwrite CTest configuration option.
|
||||
|
||||
By default ctest uses configuration options from configuration file.
|
||||
This option will overwrite the configuration option.
|
||||
|
||||
``--extra-submit <file>[;<file>]``
|
||||
Submit extra files to the dashboard.
|
||||
|
||||
This option will submit extra files to the dashboard.
|
||||
|
||||
``--force-new-ctest-process``
|
||||
Run child CTest instances as new processes.
|
||||
|
||||
By default CTest will run child CTest instances within the same
|
||||
process. If this behavior is not desired, this argument will
|
||||
enforce new processes for child CTest processes.
|
||||
|
||||
``--schedule-random``
|
||||
Use a random order for scheduling tests.
|
||||
|
||||
This option will run the tests in a random order. It is commonly
|
||||
used to detect implicit dependencies in a test suite.
|
||||
|
||||
``--submit-index``
|
||||
Legacy option for old Dart2 dashboard server feature.
|
||||
Do not use.
|
||||
|
||||
``--timeout <seconds>``
|
||||
Set a global timeout on all tests.
|
||||
|
||||
This option will set a global timeout on all tests that do not
|
||||
already have a timeout set on them.
|
||||
|
||||
``--stop-time <time>``
|
||||
Set a time at which all tests should stop running.
|
||||
|
||||
Set a real time of day at which all tests should timeout. Example:
|
||||
``7:00:00 -0400``. Any time format understood by the curl date parser
|
||||
is accepted. Local time is assumed if no timezone is specified.
|
||||
|
||||
``--http1.0``
|
||||
Submit using HTTP 1.0.
|
||||
|
||||
@ -399,26 +488,6 @@ Options
|
||||
this to maintain compatibility with an older version of CDash which
|
||||
doesn't support compressed test output.
|
||||
|
||||
``--print-labels``
|
||||
Print all available test labels.
|
||||
|
||||
This option will not run any tests, it will simply print the list of
|
||||
all labels associated with the test set.
|
||||
|
||||
.. include:: OPTIONS_HELP.txt
|
||||
|
||||
.. _`Dashboard Client`:
|
||||
|
||||
Dashboard Client
|
||||
================
|
||||
|
||||
CTest can operate as a client for the `CDash`_ software quality dashboard
|
||||
application. As a dashboard client, CTest performs a sequence of steps
|
||||
to configure, build, and test software, and then submits the results to
|
||||
a `CDash`_ server.
|
||||
|
||||
.. _`CDash`: http://cdash.org/
|
||||
|
||||
Dashboard Client Steps
|
||||
----------------------
|
||||
|
||||
@ -731,7 +800,6 @@ Configuration settings to specify the version control tool include:
|
||||
* `CTest Script`_ variable: :variable:`CTEST_UPDATE_VERSION_ONLY`
|
||||
|
||||
|
||||
|
||||
Additional configuration settings include:
|
||||
|
||||
``NightlyStartTime``
|
||||
@ -773,6 +841,7 @@ Configuration settings include:
|
||||
* `CTest Script`_ variable: :variable:`CTEST_LABELS_FOR_SUBPROJECTS`
|
||||
* :module:`CTest` module variable: ``CTEST_LABELS_FOR_SUBPROJECTS``
|
||||
|
||||
See `Label and Subproject Summary`_.
|
||||
|
||||
.. _`CTest Build Step`:
|
||||
|
||||
@ -804,6 +873,8 @@ Configuration settings include:
|
||||
* `CTest Script`_ variable: :variable:`CTEST_LABELS_FOR_SUBPROJECTS`
|
||||
* :module:`CTest` module variable: ``CTEST_LABELS_FOR_SUBPROJECTS``
|
||||
|
||||
See `Label and Subproject Summary`_.
|
||||
|
||||
``MakeCommand``
|
||||
Command-line to launch the software build process.
|
||||
It will be executed in the location specified by the
|
||||
@ -847,6 +918,7 @@ Configuration settings include:
|
||||
* `CTest Script`_ variable: :variable:`CTEST_LABELS_FOR_SUBPROJECTS`
|
||||
* :module:`CTest` module variable: ``CTEST_LABELS_FOR_SUBPROJECTS``
|
||||
|
||||
See `Label and Subproject Summary`_.
|
||||
|
||||
``TestLoad``
|
||||
While running tests in parallel (e.g. with ``-j``), try not to start
|
||||
@ -1082,3 +1154,5 @@ See Also
|
||||
========
|
||||
|
||||
.. include:: LINKS.txt
|
||||
|
||||
.. _`CDash`: http://cdash.org/
|
||||
|
1
Help/module/FetchContent.rst
Normal file
1
Help/module/FetchContent.rst
Normal file
@ -0,0 +1 @@
|
||||
.. cmake-module:: ../../Modules/FetchContent.cmake
|
1
Help/module/FindIconv.rst
Normal file
1
Help/module/FindIconv.rst
Normal file
@ -0,0 +1 @@
|
||||
.. cmake-module:: ../../Modules/FindIconv.cmake
|
@ -11,10 +11,15 @@ diagnostics expect target names to match a restricted pattern.
|
||||
|
||||
Target names may contain upper and lower case letters, numbers, the underscore
|
||||
character (_), dot(.), plus(+) and minus(-). As a special case, ALIAS
|
||||
targets and IMPORTED targets may contain two consequtive colons.
|
||||
targets and IMPORTED targets may contain two consecutive colons.
|
||||
|
||||
Target names reserved by one or more CMake generators are not allowed.
|
||||
Among others these include "all", "help" and "test".
|
||||
Among others these include "all", "clean", "help", and "install".
|
||||
|
||||
Target names associated with optional features, such as "test" and "package",
|
||||
may also be reserved. CMake 3.10 and below always reserve them. CMake 3.11
|
||||
and above reserve them only when the corresponding feature is enabled
|
||||
(e.g. by including the :module:`CTest` or :module:`CPack` modules).
|
||||
|
||||
The OLD behavior for this policy is to allow creating targets with
|
||||
reserved names or which do not match the validity pattern.
|
||||
|
26
Help/policy/CMP0072.rst
Normal file
26
Help/policy/CMP0072.rst
Normal file
@ -0,0 +1,26 @@
|
||||
CMP0072
|
||||
-------
|
||||
|
||||
:module:`FindOpenGL` prefers GLVND by default when available.
|
||||
|
||||
The :module:`FindOpenGL` module provides an ``OpenGL::GL`` target and an
|
||||
``OPENGL_LIBRARIES`` variable for projects to use for legacy GL interfaces.
|
||||
When both a legacy GL library (e.g. ``libGL.so``) and GLVND libraries
|
||||
for OpenGL and GLX (e.g. ``libOpenGL.so`` and ``libGLX.so``) are available,
|
||||
the module must choose between them. It documents an ``OpenGL_GL_PREFERENCE``
|
||||
variable that can be used to specify an explicit preference. When no such
|
||||
preference is set, the module must choose a default preference.
|
||||
|
||||
CMake 3.11 and above prefer to choose GLVND libraries. This policy provides
|
||||
compatibility with projects that expect the legacy GL library to be used.
|
||||
|
||||
The ``OLD`` behavior for this policy is to set ``OpenGL_GL_PREFERENCE`` to
|
||||
``LEGACY``. The ``NEW`` behavior for this policy is to set
|
||||
``OpenGL_GL_PREFERENCE`` to ``GLVND``.
|
||||
|
||||
This policy was introduced in CMake version 3.11. CMake version
|
||||
|release| warns when the policy is not set and uses ``OLD`` behavior.
|
||||
Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW``
|
||||
explicitly.
|
||||
|
||||
.. include:: DEPRECATED.txt
|
@ -4,11 +4,10 @@ DEBUG_CONFIGURATIONS
|
||||
Specify which configurations are for debugging.
|
||||
|
||||
The value must be a semi-colon separated list of configuration names.
|
||||
Currently this property is used only by the target_link_libraries
|
||||
command (see its documentation for details). Additional uses may be
|
||||
defined in the future.
|
||||
Currently this property is used only by the :command:`target_link_libraries`
|
||||
command. Additional uses may be defined in the future.
|
||||
|
||||
This property must be set at the top level of the project and before
|
||||
the first target_link_libraries command invocation. If any entry in
|
||||
the first :command:`target_link_libraries` command invocation. If any entry in
|
||||
the list does not match a valid configuration for the project the
|
||||
behavior is undefined.
|
||||
|
@ -19,5 +19,8 @@ Defined pools could be used globally by setting
|
||||
or per target by setting the target properties
|
||||
:prop_tgt:`JOB_POOL_COMPILE` and :prop_tgt:`JOB_POOL_LINK`.
|
||||
|
||||
If not set, this property uses the value of the :variable:`CMAKE_JOB_POOLS`
|
||||
variable.
|
||||
|
||||
Build targets provided by CMake that are meant for individual interactive
|
||||
use, such as ``install``, are placed in the ``console`` pool automatically.
|
||||
|
@ -17,3 +17,13 @@ by the native build tool. Xcode does not support per-configuration
|
||||
definitions on source files.
|
||||
|
||||
.. include:: /include/COMPILE_DEFINITIONS_DISCLAIMER.txt
|
||||
|
||||
Contents of ``COMPILE_DEFINITIONS`` may use "generator expressions"
|
||||
with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
|
||||
manual for available expressions. However, :generator:`Xcode`
|
||||
does not support per-config per-source settings, so expressions
|
||||
that depend on the build configuration are not allowed with that
|
||||
generator.
|
||||
|
||||
Generator expressions should be preferred instead of setting the alternative per-configuration
|
||||
property.
|
||||
|
@ -3,9 +3,9 @@ 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 :prop_sf:`COMPILE_DEFINITIONS` to pass
|
||||
additional preprocessor definitions.
|
||||
The ``COMPILE_FLAGS`` property sets additional compiler flags used to build
|
||||
source files. Use :prop_sf:`COMPILE_DEFINITIONS` to pass additional
|
||||
preprocessor definitions.
|
||||
|
||||
Contents of ``COMPILE_FLAGS`` may use "generator expressions"
|
||||
with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
|
||||
|
17
Help/prop_sf/COMPILE_OPTIONS.rst
Normal file
17
Help/prop_sf/COMPILE_OPTIONS.rst
Normal file
@ -0,0 +1,17 @@
|
||||
COMPILE_OPTIONS
|
||||
---------------
|
||||
|
||||
List of additional options to pass to the compiler.
|
||||
|
||||
This property holds a :ref:`;-list <CMake Language Lists>` of options
|
||||
and will be added to the list of compile flags when this
|
||||
source file builds. Use :prop_sf:`COMPILE_DEFINITIONS` to pass
|
||||
additional preprocessor definitions and :prop_sf:`INCLUDE_DIRECTORIES` to pass
|
||||
additional include directories.
|
||||
|
||||
Contents of ``COMPILE_OPTIONS`` may use "generator expressions" with the
|
||||
syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` manual
|
||||
for available expressions. However, :generator:`Xcode`
|
||||
does not support per-config per-source settings, so expressions
|
||||
that depend on the build configuration are not allowed with that
|
||||
generator.
|
@ -1,8 +1,23 @@
|
||||
GENERATED
|
||||
---------
|
||||
|
||||
Is this source file generated as part of the build process.
|
||||
Is this source file generated as part of the build or CMake process.
|
||||
|
||||
If a source file is generated by the build process CMake will handle
|
||||
it differently in terms of dependency checking etc. Otherwise having
|
||||
a non-existent source file could create problems.
|
||||
Tells the internal CMake engine that a source file is generated by an outside
|
||||
process such as another build step, or the execution of CMake itself. This
|
||||
information is then used to exempt the file from any existence or validity
|
||||
checks. Generated files are created by the execution of commands such as
|
||||
:command:`add_custom_command` and :command:`file(GENERATE)`.
|
||||
|
||||
When a generated file created by an :command:`add_custom_command` command
|
||||
is explicitly listed as a source file for any target in the same
|
||||
directory scope (which usually means the same ``CMakeLists.txt`` file),
|
||||
CMake will automatically create a dependency to make sure the file is
|
||||
generated before building that target.
|
||||
|
||||
Generated sources may be hidden in some IDE tools, while in others they might
|
||||
be shown. For the special case of sources generated by CMake's :prop_tgt:`AUTOMOC`
|
||||
or :prop_tgt:`AUTORCC` functionality, the :prop_gbl:`AUTOGEN_SOURCE_GROUP`,
|
||||
:prop_gbl:`AUTOMOC_SOURCE_GROUP` and :prop_gbl:`AUTORCC_SOURCE_GROUP` target
|
||||
properties may influence where the generated sources are grouped in the project's
|
||||
file lists.
|
||||
|
18
Help/prop_sf/INCLUDE_DIRECTORIES.rst
Normal file
18
Help/prop_sf/INCLUDE_DIRECTORIES.rst
Normal file
@ -0,0 +1,18 @@
|
||||
INCLUDE_DIRECTORIES
|
||||
-------------------
|
||||
|
||||
List of preprocessor include file search directories.
|
||||
|
||||
This property holds a :ref:`;-list <CMake Language Lists>` of paths
|
||||
and will be added to the list of include directories when this
|
||||
source file builds. These directories will take precedence over directories
|
||||
defined at target level except for :generator:`Xcode` generator due to technical
|
||||
limitations.
|
||||
|
||||
Relative paths should not be added to this property directly.
|
||||
|
||||
Contents of ``INCLUDE_DIRECTORIES`` may use "generator expressions" with
|
||||
the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` manual
|
||||
for available expressions. However, :generator:`Xcode` does not support
|
||||
per-config per-source settings, so expressions that depend on the build
|
||||
configuration are not allowed with that generator.
|
6
Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst
Normal file
6
Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst
Normal file
@ -0,0 +1,6 @@
|
||||
VS_SHADER_DISABLE_OPTIMIZATIONS
|
||||
-------------------------------
|
||||
|
||||
Disable compiler optimizations for an ``.hlsl`` source file. This adds the
|
||||
``-Od`` flag to the command line for the FxCompiler tool. Specify the value
|
||||
``true`` for this property to disable compiler optimizations.
|
6
Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst
Normal file
6
Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst
Normal file
@ -0,0 +1,6 @@
|
||||
VS_SHADER_ENABLE_DEBUG
|
||||
----------------------
|
||||
|
||||
Enable debugging information for an ``.hlsl`` source file. This adds the
|
||||
``-Zi`` flag to the command line for the FxCompiler tool. Specify the value
|
||||
``true`` to generate debugging information for the compiled shader.
|
21
Help/prop_tgt/AUTOGEN_PARALLEL.rst
Normal file
21
Help/prop_tgt/AUTOGEN_PARALLEL.rst
Normal file
@ -0,0 +1,21 @@
|
||||
AUTOGEN_PARALLEL
|
||||
----------------
|
||||
|
||||
Number of parallel ``moc`` or ``uic`` processes to start when using
|
||||
:prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`.
|
||||
|
||||
The custom `<origin>_autogen` target starts a number of threads of which
|
||||
each one parses a source file and on demand starts a ``moc`` or ``uic``
|
||||
process. :prop_tgt:`AUTOGEN_PARALLEL` controls how many parallel threads
|
||||
(and therefore ``moc`` or ``uic`` processes) are started.
|
||||
|
||||
- An empty (or unset) value or the string ``AUTO`` sets the number of
|
||||
threads/processes to the number of physical CPUs on the host system.
|
||||
- A positive non zero integer value sets the exact thread/process count.
|
||||
- Otherwise a single thread/process is started.
|
||||
|
||||
By default :prop_tgt:`AUTOGEN_PARALLEL` is initialized from
|
||||
:variable:`CMAKE_AUTOGEN_PARALLEL`.
|
||||
|
||||
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||
with Qt.
|
@ -3,15 +3,29 @@ AUTOGEN_TARGET_DEPENDS
|
||||
|
||||
Target dependencies of the corresponding ``_autogen`` target.
|
||||
|
||||
Targets which have their :prop_tgt:`AUTOMOC` target ``ON`` have a
|
||||
corresponding ``_autogen`` target which is used to autogenerate generate moc
|
||||
files. As this ``_autogen`` target is created at generate-time, it is not
|
||||
possible to define dependencies of it, such as to create inputs for the ``moc``
|
||||
executable.
|
||||
Targets which have their :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` property
|
||||
``ON`` have a corresponding ``_autogen`` target which is used to auto generate
|
||||
``moc`` and ``uic`` files. As this ``_autogen`` target is created at
|
||||
generate-time, it is not possible to define dependencies of it,
|
||||
such as to create inputs for the ``moc`` or ``uic`` executable.
|
||||
|
||||
The ``AUTOGEN_TARGET_DEPENDS`` target property can be set instead to a list of
|
||||
dependencies for the ``_autogen`` target. The buildsystem will be generated to
|
||||
depend on its contents.
|
||||
The :prop_tgt:`AUTOGEN_TARGET_DEPENDS` target property can be set instead to a
|
||||
list of dependencies of the ``_autogen`` target. Dependencies can be target
|
||||
names or file names.
|
||||
|
||||
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||
with Qt.
|
||||
|
||||
Use cases
|
||||
^^^^^^^^^
|
||||
|
||||
If :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` depends on a file that is either
|
||||
|
||||
- a :prop_sf:`GENERATED` non C++ file (e.g. a :prop_sf:`GENERATED` ``.json``
|
||||
or ``.ui`` file) or
|
||||
- a :prop_sf:`GENERATED` C++ file that isn't recognized by :prop_tgt:`AUTOMOC`
|
||||
and :prop_tgt:`AUTOUIC` because it's skipped by :prop_sf:`SKIP_AUTOMOC`,
|
||||
:prop_sf:`SKIP_AUTOUIC`, :prop_sf:`SKIP_AUTOGEN` or :policy:`CMP0071` or
|
||||
- a file that isn't in the target's sources
|
||||
|
||||
it must added to :prop_tgt:`AUTOGEN_TARGET_DEPENDS`.
|
||||
|
@ -71,7 +71,8 @@ automoc targets together in an IDE, e.g. in MSVS.
|
||||
The global property :prop_gbl:`AUTOGEN_SOURCE_GROUP` can be used to group
|
||||
files generated by :prop_tgt:`AUTOMOC` together in an IDE, e.g. in MSVS.
|
||||
|
||||
Additional macro names to search for can be added to :prop_tgt:`AUTOMOC_MACRO_NAMES`.
|
||||
Additional macro names to search for can be added to
|
||||
:prop_tgt:`AUTOMOC_MACRO_NAMES`.
|
||||
|
||||
Additional ``moc`` dependency file names can be extracted from source code
|
||||
by using :prop_tgt:`AUTOMOC_DEPEND_FILTERS`.
|
||||
@ -82,5 +83,8 @@ which is controlled by :prop_tgt:`AUTOMOC_COMPILER_PREDEFINES`.
|
||||
Source C++ files can be excluded from :prop_tgt:`AUTOMOC` processing by
|
||||
enabling :prop_sf:`SKIP_AUTOMOC` or the broader :prop_sf:`SKIP_AUTOGEN`.
|
||||
|
||||
The number of parallel ``moc`` processes to start can be modified by
|
||||
setting :prop_tgt:`AUTOGEN_PARALLEL`.
|
||||
|
||||
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||
with Qt.
|
||||
|
@ -1,21 +1,27 @@
|
||||
AUTOMOC_DEPEND_FILTERS
|
||||
----------------------
|
||||
|
||||
Filter definitions used by :prop_tgt:`AUTOMOC` to extract file names from
|
||||
source code as additional dependencies for the ``moc`` file.
|
||||
|
||||
This property is only used if the :prop_tgt:`AUTOMOC` property is ``ON``
|
||||
for this target.
|
||||
Filter definitions used by :prop_tgt:`AUTOMOC` to extract file names from a
|
||||
source file that are registered as additional dependencies for the
|
||||
``moc`` file of the source file.
|
||||
|
||||
Filters are defined as ``KEYWORD;REGULAR_EXPRESSION`` pairs. First the file
|
||||
content is searched for ``KEYWORD``. If it is found at least once, then file
|
||||
names are extracted by successively searching for ``REGULAR_EXPRESSION`` and
|
||||
taking the first match group.
|
||||
|
||||
Consider a filter extracts the file name ``DEP`` from the content of a file
|
||||
``FOO``. If ``DEP`` changes, then the ``moc`` file for ``FOO`` gets rebuilt.
|
||||
The file ``DEP`` is searched for first in the vicinity
|
||||
of ``FOO`` and afterwards in the target's :prop_tgt:`INCLUDE_DIRECTORIES`.
|
||||
The file name found in the first match group is searched for
|
||||
|
||||
- first in the vicinity of the source file
|
||||
- and afterwards in the target's :prop_tgt:`INCLUDE_DIRECTORIES`.
|
||||
|
||||
If any of the extracted files changes, then the ``moc`` file for the source
|
||||
file gets rebuilt even when the source file itself doesn't change.
|
||||
|
||||
If any of the extracted files is :prop_sf:`GENERATED` or if it is not in the
|
||||
target's sources, then it might be necessary to add it to the
|
||||
``_autogen`` target dependencies.
|
||||
See :prop_tgt:`AUTOGEN_TARGET_DEPENDS` for reference.
|
||||
|
||||
By default :prop_tgt:`AUTOMOC_DEPEND_FILTERS` is initialized from
|
||||
:variable:`CMAKE_AUTOMOC_DEPEND_FILTERS`, which is empty by default.
|
||||
@ -24,22 +30,75 @@ See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||
with Qt.
|
||||
|
||||
|
||||
Example
|
||||
^^^^^^^
|
||||
Example 1
|
||||
^^^^^^^^^
|
||||
|
||||
Consider a file ``FOO.hpp`` holds a custom macro ``OBJ_JSON_FILE`` and we
|
||||
want the ``moc`` file to depend on the macro`s file name argument::
|
||||
A header file ``my_class.hpp`` uses a custom macro ``JSON_FILE_MACRO`` which
|
||||
is defined in an other header ``macros.hpp``.
|
||||
We want the ``moc`` file of ``my_class.hpp`` to depend on the file name
|
||||
argument of ``JSON_FILE_MACRO``::
|
||||
|
||||
// my_class.hpp
|
||||
class My_Class : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
OBJ_JSON_FILE ( "DEP.json" )
|
||||
JSON_FILE_MACRO ( "info.json" )
|
||||
...
|
||||
};
|
||||
|
||||
Then we might use :variable:`CMAKE_AUTOMOC_DEPEND_FILTERS` to
|
||||
define a filter like this::
|
||||
In ``CMakeLists.txt`` we add a filter to
|
||||
:variable:`CMAKE_AUTOMOC_DEPEND_FILTERS` like this::
|
||||
|
||||
set(CMAKE_AUTOMOC_DEPEND_FILTERS
|
||||
"OBJ_JSON_FILE" "[\n][ \t]*OBJ_JSON_FILE[ \t]*\\([ \t]*\"([^\"]+)\""
|
||||
list( APPEND CMAKE_AUTOMOC_DEPEND_FILTERS
|
||||
"JSON_FILE_MACRO"
|
||||
"[\n][ \t]*JSON_FILE_MACRO[ \t]*\\([ \t]*\"([^\"]+)\""
|
||||
)
|
||||
|
||||
We assume ``info.json`` is a plain (not :prop_sf:`GENERATED`) file that is
|
||||
listed in the target's source. Therefore we do not need to add it to
|
||||
:prop_tgt:`AUTOGEN_TARGET_DEPENDS`.
|
||||
|
||||
Example 2
|
||||
^^^^^^^^^
|
||||
|
||||
In the target ``my_target`` a header file ``complex_class.hpp`` uses a
|
||||
custom macro ``JSON_BASED_CLASS`` which is defined in an other header
|
||||
``macros.hpp``::
|
||||
|
||||
// macros.hpp
|
||||
...
|
||||
#define JSON_BASED_CLASS(name, json) \
|
||||
class name : public QObject \
|
||||
{ \
|
||||
Q_OBJECT \
|
||||
Q_PLUGIN_METADATA(IID "demo" FILE json) \
|
||||
name() {} \
|
||||
};
|
||||
...
|
||||
|
||||
::
|
||||
|
||||
// complex_class.hpp
|
||||
#pragma once
|
||||
JSON_BASED_CLASS(Complex_Class, "meta.json")
|
||||
// end of file
|
||||
|
||||
Since ``complex_class.hpp`` doesn't contain a ``Q_OBJECT`` macro it would be
|
||||
ignored by :prop_tgt:`AUTOMOC`. We change this by adding ``JSON_BASED_CLASS``
|
||||
to :variable:`CMAKE_AUTOMOC_MACRO_NAMES`::
|
||||
|
||||
list(APPEND CMAKE_AUTOMOC_MACRO_NAMES "JSON_BASED_CLASS")
|
||||
|
||||
We want the ``moc`` file of ``complex_class.hpp`` to depend on
|
||||
``meta.json``. So we add a filter to
|
||||
:variable:`CMAKE_AUTOMOC_DEPEND_FILTERS`::
|
||||
|
||||
list(APPEND CMAKE_AUTOMOC_DEPEND_FILTERS
|
||||
"JSON_BASED_CLASS"
|
||||
"[\n^][ \t]*JSON_BASED_CLASS[ \t]*\\([^,]*,[ \t]*\"([^\"]+)\""
|
||||
)
|
||||
|
||||
Additionally we assume ``meta.json`` is :prop_sf:`GENERATED` which is
|
||||
why we have to add it to :prop_tgt:`AUTOGEN_TARGET_DEPENDS`::
|
||||
|
||||
set_property(TARGET my_target APPEND PROPERTY AUTOGEN_TARGET_DEPENDS "meta.json")
|
||||
|
@ -13,6 +13,11 @@ as target sources at build time and invoke ``rcc`` accordingly.
|
||||
This property is initialized by the value of the :variable:`CMAKE_AUTORCC`
|
||||
variable if it is set when a target is created.
|
||||
|
||||
By default :prop_tgt:`AUTORCC` is processed inside a
|
||||
:command:`custom command <add_custom_command>`.
|
||||
If the ``.qrc`` file is :prop_sf:`GENERATED` though, a
|
||||
:command:`custom target <add_custom_target>` is used instead.
|
||||
|
||||
Additional command line options for rcc can be set via the
|
||||
:prop_sf:`AUTORCC_OPTIONS` source file property on the ``.qrc`` file.
|
||||
|
||||
|
@ -33,5 +33,8 @@ autouic targets together in an IDE, e.g. in MSVS.
|
||||
Source files can be excluded from :prop_tgt:`AUTOUIC` processing by
|
||||
enabling :prop_sf:`SKIP_AUTOUIC` or the broader :prop_sf:`SKIP_AUTOGEN`.
|
||||
|
||||
The number of parallel ``uic`` processes to start can be modified by
|
||||
setting :prop_tgt:`AUTOGEN_PARALLEL`.
|
||||
|
||||
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||
with Qt.
|
||||
|
@ -8,4 +8,4 @@ build sources within the target. Use :prop_tgt:`COMPILE_DEFINITIONS`
|
||||
to pass additional preprocessor definitions.
|
||||
|
||||
This property is deprecated. Use the :prop_tgt:`COMPILE_OPTIONS`
|
||||
property or the command:`target_compile_options` command instead.
|
||||
property or the :command:`target_compile_options` command instead.
|
||||
|
@ -11,3 +11,7 @@ For instance:
|
||||
.. code-block:: cmake
|
||||
|
||||
set_property(TARGET myexe PROPERTY CUDA_SEPARABLE_COMPILATION ON)
|
||||
|
||||
This property is initialized by the value of the
|
||||
:variable:`CMAKE_CUDA_SEPARABLE_COMPILATION` variable if it is set when a
|
||||
target is created.
|
||||
|
22
Help/prop_tgt/IMPORTED_GLOBAL.rst
Normal file
22
Help/prop_tgt/IMPORTED_GLOBAL.rst
Normal file
@ -0,0 +1,22 @@
|
||||
IMPORTED_GLOBAL
|
||||
---------------
|
||||
|
||||
Indication of whether an :ref:`IMPORTED target <Imported Targets>` is
|
||||
globally visible.
|
||||
|
||||
The boolean value of this property is True for targets created with the
|
||||
``IMPORTED`` ``GLOBAL`` options to :command:`add_executable()` or
|
||||
:command:`add_library()`. It is always False for targets built within the
|
||||
project.
|
||||
|
||||
For targets created with the ``IMPORTED`` option to
|
||||
:command:`add_executable()` or :command:`add_library()` but without the
|
||||
additional option ``GLOBAL`` this is False, too. However, setting this
|
||||
property for such a locally ``IMPORTED`` target to True promotes that
|
||||
target to global scope. This promotion can only be done in the same
|
||||
directory where that ``IMPORTED`` target was created in the first place.
|
||||
|
||||
Once an imported target has been made global, it cannot be changed back to
|
||||
non-global. Therefore, if a project sets this property, it may only
|
||||
provide a value of True. CMake will issue an error if the project tries to
|
||||
set the property to a non-True value, even if the value was already False.
|
@ -2,7 +2,7 @@
|
||||
------------------------
|
||||
|
||||
This property is implemented only when ``<LANG>`` is ``C``, ``CXX``,
|
||||
or ``CUDA``.
|
||||
``Fortran``, or ``CUDA``.
|
||||
|
||||
Specify a :ref:`;-list <CMake Language Lists>` containing a command line
|
||||
for a compiler launching tool. The :ref:`Makefile Generators` and the
|
||||
|
@ -4,5 +4,6 @@ LINK_FLAGS
|
||||
Additional flags to use when linking this target.
|
||||
|
||||
The LINK_FLAGS property can be used to add extra flags to the link
|
||||
step of a target. LINK_FLAGS_<CONFIG> will add to the configuration
|
||||
<CONFIG>, for example, DEBUG, RELEASE, MINSIZEREL, RELWITHDEBINFO.
|
||||
step of a target. :prop_tgt:`LINK_FLAGS_<CONFIG>` will add to the
|
||||
configuration ``<CONFIG>``, for example, ``DEBUG``, ``RELEASE``,
|
||||
``MINSIZEREL``, ``RELWITHDEBINFO``, ...
|
||||
|
@ -5,7 +5,8 @@ Output name for target files.
|
||||
|
||||
This sets the base name for output files created for an executable or
|
||||
library target. If not set, the logical target name is used by
|
||||
default.
|
||||
default during generation. The value is not set by default during
|
||||
configuration.
|
||||
|
||||
Contents of ``OUTPUT_NAME`` and the variants listed below may use
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
@ -139,7 +139,8 @@ Modules
|
||||
This is robust against unusual ways of labeling tests, provides much better
|
||||
support for advanced features such as parameterized tests, and does not
|
||||
require re-running CMake to discover added or removed tests within a test
|
||||
executable.
|
||||
executable. Note that a breaking change was made in CMake 3.10.3 to address
|
||||
an ambiguity of the ``TIMEOUT`` keyword (see :ref:`Release Notes 3.10.3`).
|
||||
|
||||
* The :module:`InstallRequiredSystemLibraries` module gained support
|
||||
for installing Intel compiler runtimes.
|
||||
@ -267,3 +268,17 @@ Changes made since CMake 3.10.0 include the following.
|
||||
* The :manual:`cmake-server(7)` ``codemodel`` response ``crossReferences``
|
||||
field added by 3.10.0 has been dropped due to excessive memory usage.
|
||||
Another approach will be needed to provide backtrace information.
|
||||
|
||||
.. _`Release Notes 3.10.3`:
|
||||
|
||||
3.10.3
|
||||
------
|
||||
|
||||
* CMake 3.10.1 added a ``TIMEOUT`` option to :command:`gtest_discover_tests`
|
||||
from the :module:`GoogleTest` module. That keyword clashed with the
|
||||
``TIMEOUT`` test property, which is one of the common properties that
|
||||
would be set with the command's ``PROPERTIES`` keyword, usually leading
|
||||
to legal but unintended behavior. The keyword was changed to
|
||||
``DISCOVERY_TIMEOUT`` in CMake 3.10.3 to address this problem. The
|
||||
ambiguous behavior of the :command:`gtest_discover_tests` command's
|
||||
``TIMEOUT`` keyword in 3.10.1 and 3.10.2 has not been preserved.
|
||||
|
285
Help/release/3.11.rst
Normal file
285
Help/release/3.11.rst
Normal file
@ -0,0 +1,285 @@
|
||||
CMake 3.11 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.10 include the following.
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
* TI C/C++ compilers are now supported by the :generator:`Ninja` generator.
|
||||
|
||||
Generators
|
||||
----------
|
||||
|
||||
* The :generator:`CodeBlocks` extra generator learned to check a
|
||||
:variable:`CMAKE_CODEBLOCKS_COMPILER_ID` variable for a custom
|
||||
compiler identification value to place in the project file.
|
||||
|
||||
* The :ref:`Makefile Generators` and the :generator:`Ninja` generator learned
|
||||
to add compiler launcher tools along with the compiler for the ``Fortran``
|
||||
language (``C``, ``CXX``, and ``CUDA`` were supported previously).
|
||||
See the :variable:`CMAKE_<LANG>_COMPILER_LAUNCHER` variable and
|
||||
:prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property for details.
|
||||
|
||||
* :ref:`Visual Studio Generators` learned to support the ``COMPILE_LANGUAGE``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>` in
|
||||
target-wide :prop_tgt:`COMPILE_DEFINITIONS`,
|
||||
:prop_tgt:`INCLUDE_DIRECTORIES`, :prop_tgt:`COMPILE_OPTIONS`, and
|
||||
:command:`file(GENERATE)`. See generator expression documentation
|
||||
for caveats.
|
||||
|
||||
* The :generator:`Xcode` generator learned to support the ``COMPILE_LANGUAGE``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>` in
|
||||
target-wide :prop_tgt:`COMPILE_DEFINITIONS` and
|
||||
:prop_tgt:`INCLUDE_DIRECTORIES`. It previously supported only
|
||||
:prop_tgt:`COMPILE_OPTIONS` and :command:`file(GENERATE)`.
|
||||
See generator expression documentation for caveats.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
* :command:`add_library` and :command:`add_executable` commands can now be
|
||||
called without any sources and will not complain as long as sources are
|
||||
added later via the :command:`target_sources` command.
|
||||
|
||||
* The :command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands
|
||||
gained ``NETRC`` and ``NETRC_FILE`` options to specify use of a
|
||||
``.netrc`` file.
|
||||
|
||||
* The :command:`target_compile_definitions` command learned to set the
|
||||
:prop_tgt:`INTERFACE_COMPILE_DEFINITIONS` property on
|
||||
:ref:`Imported Targets`.
|
||||
|
||||
* The :command:`target_compile_features` command learned to set the
|
||||
:prop_tgt:`INTERFACE_COMPILE_FEATURES` property on :ref:`Imported Targets`.
|
||||
|
||||
* The :command:`target_compile_options` command learned to set the
|
||||
:prop_tgt:`INTERFACE_COMPILE_OPTIONS` property on :ref:`Imported Targets`.
|
||||
|
||||
* The :command:`target_include_directories` command learned to set the
|
||||
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` property on
|
||||
:ref:`Imported Targets`.
|
||||
|
||||
* The :command:`target_sources` command learned to set the
|
||||
:prop_tgt:`INTERFACE_SOURCES` property on :ref:`Imported Targets`.
|
||||
|
||||
* The :command:`target_link_libraries` command learned to set the
|
||||
:prop_tgt:`INTERFACE_LINK_LIBRARIES` property on :ref:`Imported Targets`.
|
||||
|
||||
Variables
|
||||
---------
|
||||
|
||||
* A :variable:`CMAKE_GENERATOR_INSTANCE` variable was introduced
|
||||
to hold the selected instance of the generator's corresponding
|
||||
native tools if multiple are available. This is used by the
|
||||
:generator:`Visual Studio 15 2017` generator to hold the
|
||||
selected instance of Visual Studio persistently.
|
||||
|
||||
* A :variable:`CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS` variable was added
|
||||
to enable setting of default permissions for directories created implicitly
|
||||
during installation of files by :command:`install` and
|
||||
:command:`file(INSTALL)`, e.g. during ``make install``.
|
||||
|
||||
* A :variable:`CMAKE_JOB_POOLS` variable was added specify a value to use for
|
||||
the :prop_gbl:`JOB_POOLS` property. This enables control over build
|
||||
parallelism with command line configuration parameters when using the Ninja
|
||||
generator.
|
||||
|
||||
* The :variable:`CMAKE_NETRC` and :variable:`CMAKE_NETRC_FILE` variables
|
||||
were added to specify use of a ``.netrc`` file by the
|
||||
:command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands and
|
||||
the :module:`ExternalProject` module.
|
||||
|
||||
* A :variable:`CMAKE_CUDA_SEPARABLE_COMPILATION` variable was added to
|
||||
initialize the :prop_tgt:`CUDA_SEPARABLE_COMPILATION` target property
|
||||
on targets when they are created.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
* The :prop_sf:`COMPILE_DEFINITIONS` source file property learned to support
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
||||
|
||||
* A :prop_sf:`COMPILE_OPTIONS` source file property was added to manage list
|
||||
of options to pass to the compiler.
|
||||
|
||||
* An :prop_tgt:`IMPORTED_GLOBAL` target property was added to indicate
|
||||
whether an :ref:`IMPORTED target <Imported Targets>` is globally visible.
|
||||
It is automatically set to a true value for targets created with the
|
||||
``GLOBAL`` option to :command:`add_library` or :command:`add_executable`.
|
||||
Additionally, project code may now *promote* a local imported target
|
||||
to be globally visible by setting this property to ``TRUE``.
|
||||
|
||||
* An :prop_sf:`INCLUDE_DIRECTORIES` source file property was added to specify
|
||||
list of preprocessor include file search directories.
|
||||
|
||||
* Source file properties :prop_sf:`VS_SHADER_DISABLE_OPTIMIZATIONS` and
|
||||
:prop_sf:`VS_SHADER_ENABLE_DEBUG` have been added to specify more
|
||||
details of ``.hlsl`` sources with :ref:`Visual Studio Generators`.
|
||||
|
||||
Modules
|
||||
-------
|
||||
|
||||
* The :module:`CheckIncludeFiles` module :command:`CHECK_INCLUDE_FILES`
|
||||
command gained a ``LANGUAGE`` option to specify whether to check using the
|
||||
``C`` or ``CXX`` compiler.
|
||||
|
||||
* The :module:`CMakePackageConfigHelpers` module
|
||||
:command:`write_basic_package_version_file` command learned a new
|
||||
``SameMinorVersion`` mode for the ``COMPATIBILITY`` argument.
|
||||
|
||||
* The :module:`ExternalProject` module learned to substitute ``<DOWNLOAD_DIR>``
|
||||
in comments, commands, working directory and byproducts.
|
||||
|
||||
* The :module:`ExternalProject` module gained ``NETRC`` and ``NETRC_FILE``
|
||||
options to specify use of a ``.netrc`` file.
|
||||
|
||||
* A new :module:`FetchContent` module was added which supports populating
|
||||
content at configure time using any of the download/update methods
|
||||
supported by :command:`ExternalProject_Add`. This allows the content
|
||||
to be used immediately during the configure stage, such as with
|
||||
:command:`add_subdirectory`, etc. Hierarchical project structures are
|
||||
well supported, allowing parent projects to override the content details
|
||||
of child projects and ensuring content is not populated multiple times
|
||||
throughout the whole project tree.
|
||||
|
||||
* The :module:`FindBLAS` and :module:`FindLAPACK` modules learned to support
|
||||
`FLAME`_ ``blis`` and ``libflame``.
|
||||
|
||||
* The :module:`FindDoxygen` module :command:`doxygen_add_docs` function
|
||||
now supports a new ``DOXYGEN_VERBATIM_VARS`` list variable. Any
|
||||
``DOXYGEN_...`` variable contained in that list will bypass the automatic
|
||||
quoting logic, leaving its contents untouched when transferring them to the
|
||||
output ``Doxyfile``.
|
||||
|
||||
* A :module:`FindIconv` module was added to locate iconv support.
|
||||
|
||||
* The :module:`GenerateExportHeader` module ``GENERATE_EXPORT_HEADER`` command
|
||||
gained an ``INCLUDE_GUARD_NAME`` option to change the name of the include
|
||||
guard symbol written to the generated export header.
|
||||
Additionally, it now adds a comment after the closing ``#endif`` on the
|
||||
generated export header's include guard.
|
||||
|
||||
* The :module:`UseJava` module ``add_jar`` command gained a
|
||||
``GENERATE_NATIVE_HEADERS`` option to generate native header files
|
||||
using ``javac -h`` for ``javac`` 1.8 or above. This supersedes
|
||||
``create_javah``, which no longer works with JDK 1.10 and above due
|
||||
to removal of the ``javah`` tool by `JEP 313`_.
|
||||
|
||||
.. _`FLAME`: https://github.com/flame
|
||||
.. _`JEP 313`: http://openjdk.java.net/jeps/313
|
||||
|
||||
Autogen
|
||||
-------
|
||||
|
||||
* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC`, CMake now starts
|
||||
multiple parallel ``moc`` or ``uic`` processes to reduce the build time.
|
||||
A new :variable:`CMAKE_AUTOGEN_PARALLEL` variable and
|
||||
:prop_tgt:`AUTOGEN_PARALLEL` target property may be set to specify the
|
||||
number of parallel ``moc`` or ``uic`` processes to start. The default
|
||||
is derived from the number of CPUs on the host.
|
||||
|
||||
CTest
|
||||
-----
|
||||
|
||||
* The :command:`ctest_start` command no longer sets
|
||||
:variable:`CTEST_RUN_CURRENT_SCRIPT` due to issues with scoping if it is
|
||||
called from inside a function. Instead, it sets an internal variable in
|
||||
CTest. However, setting :variable:`CTEST_RUN_CURRENT_SCRIPT` to 0 at the
|
||||
global scope still prevents the script from being re-run at the end.
|
||||
|
||||
CPack
|
||||
-----
|
||||
|
||||
* :manual:`cpack(1)` gained ``--trace`` and ``--trace-expand`` options.
|
||||
|
||||
* The :module:`CPackIFW` module gained new
|
||||
:variable:`CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR` variable to control
|
||||
if the target directory should not be deleted when uninstalling.
|
||||
|
||||
* The :module:`CPackRPM` module learned to enable enforcing of execute
|
||||
privileges on programs and shared libraries.
|
||||
See :variable:`CPACK_RPM_INSTALL_WITH_EXEC` variable.
|
||||
|
||||
* A :variable:`CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS` variable was added
|
||||
which serves the same purpose during packaging (e.g. ``make package``) as the
|
||||
:variable:`CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS` variable serves during
|
||||
installation (e.g. ``make install``).
|
||||
|
||||
Other
|
||||
-----
|
||||
|
||||
* :ref:`Alias Targets` may now alias :ref:`Imported Targets` that are
|
||||
created with the ``GLOBAL`` option to :command:`add_library`.
|
||||
|
||||
* :ref:`Interface Libraries` may now have custom properties set on them if
|
||||
they start with either an underscore (``_``) or a lowercase ASCII character.
|
||||
The original intention was to only allow properties which made sense for
|
||||
``INTERFACE`` libraries, but it also blocked usage of custom properties.
|
||||
|
||||
* The :manual:`cmake(1)` ``--open <dir>`` command-line option was added
|
||||
to open generated IDE projects like Visual Studio solutions or Xcode
|
||||
projects.
|
||||
|
||||
Deprecated and Removed Features
|
||||
===============================
|
||||
|
||||
* An explicit deprecation diagnostic was added for policies ``CMP0037``
|
||||
through ``CMP0054`` (``CMP0036`` and below were already deprecated).
|
||||
The :manual:`cmake-policies(7)` manual explains that the OLD behaviors
|
||||
of all policies are deprecated and that projects should port to the
|
||||
NEW behaviors.
|
||||
|
||||
* The ``KDevelop3`` generator has been removed.
|
||||
|
||||
Other Changes
|
||||
=============
|
||||
|
||||
* Policy :policy:`CMP0037` no longer reserves target names associated
|
||||
with optional features, such as ``test`` and ``package``, unless
|
||||
the corresponding feature is enabled.
|
||||
|
||||
* The :module:`FindOpenGL` module now prefers GLVND libraries if available.
|
||||
See policy :policy:`CMP0072`.
|
||||
|
||||
* The minimum deployment target set in the
|
||||
:variable:`CMAKE_OSX_DEPLOYMENT_TARGET` variable used to be only
|
||||
applied for macOS regardless of the selected SDK. It is now properly
|
||||
set for the target platform selected by :variable:`CMAKE_OSX_SYSROOT`.
|
||||
For example, if the sysroot variable specifies an iOS SDK then the
|
||||
value in ``CMAKE_OSX_DEPLOYMENT_TARGET`` is interpreted as minimum
|
||||
iOS version.
|
||||
|
||||
* The :generator:`Xcode` generator behavior of generating one project
|
||||
file per :command:`project()` command may now be controlled with the
|
||||
:variable:`CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY` variable.
|
||||
This could be useful to speed up the CMake generation step for
|
||||
large projects and to work-around a bug in the ``ZERO_CHECK`` logic.
|
||||
|
||||
* Since the ``CMakeCache.txt`` format does not support newlines in values,
|
||||
values containing newlines are now truncated before writing to the file.
|
||||
In addition, a warning comment is written to the cache file, and a warning
|
||||
message is displayed to the user on the console.
|
||||
|
||||
Updates
|
||||
=======
|
||||
|
||||
Changes made since CMake 3.11.0 include the following.
|
||||
|
||||
3.11.1
|
||||
------
|
||||
|
||||
* The :module:`CheckIncludeFile` module ``check_include_file`` macro,
|
||||
:module:`CheckIncludeFileCXX` module ``check_include_file_cxx`` macro,
|
||||
and :module:`CheckIncludeFiles` module ``check_include_files`` macro
|
||||
were taught to honor the ``CMAKE_REQUIRED_LIBRARIES`` variable in
|
||||
CMake 3.11.0. This has been reverted due to changing behavior of
|
||||
checks for existing projects. It may be restored in the future
|
||||
with a policy for compatibility.
|
@ -66,7 +66,7 @@ Variables
|
||||
Properties
|
||||
----------
|
||||
|
||||
* :ref:`Visual Studio Generators` learned to support additonal
|
||||
* :ref:`Visual Studio Generators` learned to support additional
|
||||
target properties to customize projects for NVIDIA Nsight
|
||||
Tegra Visual Studio Edition:
|
||||
|
||||
|
@ -111,7 +111,7 @@ Modules
|
||||
|
||||
* 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
|
||||
``GIT_SUBMODULES`` option to restrict which submodules are initialized and
|
||||
updated.
|
||||
|
||||
* The :module:`ExternalProject` module leared the ``DOWNLOAD_NO_EXTRACT 1``
|
||||
|
@ -237,7 +237,7 @@ CPack
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
|
||||
:command:`cpack_ifw_configure_component_group` commands gained a new
|
||||
``USER_INTERFACES`` option to add a list of additonal pages to the IFW
|
||||
``USER_INTERFACES`` option to add a list of additional pages to the IFW
|
||||
installer.
|
||||
|
||||
* The :module:`CPackRPM` module learned to generate debuginfo
|
||||
|
@ -13,6 +13,7 @@ Releases
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
3.11 <3.11>
|
||||
3.10 <3.10>
|
||||
3.9 <3.9>
|
||||
3.8 <3.8>
|
||||
|
10
Help/variable/CMAKE_AUTOGEN_PARALLEL.rst
Normal file
10
Help/variable/CMAKE_AUTOGEN_PARALLEL.rst
Normal file
@ -0,0 +1,10 @@
|
||||
CMAKE_AUTOGEN_PARALLEL
|
||||
----------------------
|
||||
|
||||
Number of parallel ``moc`` or ``uic`` processes to start when using
|
||||
:prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`.
|
||||
|
||||
This variable is used to initialize the :prop_tgt:`AUTOGEN_PARALLEL` property
|
||||
on all the targets. See that target property for additional information.
|
||||
|
||||
By default :variable:`CMAKE_AUTOGEN_PARALLEL` is unset.
|
@ -12,7 +12,7 @@ information.
|
||||
The default value is ``Q_OBJECT;Q_GADGET;Q_NAMESPACE``.
|
||||
|
||||
Example
|
||||
-------
|
||||
^^^^^^^
|
||||
Let CMake know that source files that contain ``CUSTOM_MACRO`` must be ``moc``
|
||||
processed as well::
|
||||
|
||||
|
@ -5,7 +5,7 @@ Specifies the build type on single-configuration generators.
|
||||
|
||||
This statically specifies what build type (configuration) will be
|
||||
built in this build tree. Possible values are empty, ``Debug``, ``Release``,
|
||||
``RelWithDebInfo`` and ``MinSizeRel``. This variable is only meaningful to
|
||||
``RelWithDebInfo``, ``MinSizeRel``, ... This variable is only meaningful to
|
||||
single-configuration generators (such as :ref:`Makefile Generators` and
|
||||
:generator:`Ninja`) i.e. those which choose a single configuration when CMake
|
||||
runs to generate a build tree as opposed to multi-configuration generators
|
||||
@ -13,7 +13,7 @@ which offer selection of the build configuration within the generated build
|
||||
environment. There are many per-config properties and variables
|
||||
(usually following clean ``SOME_VAR_<CONFIG>`` order conventions), such as
|
||||
``CMAKE_C_FLAGS_<CONFIG>``, specified as uppercase:
|
||||
``CMAKE_C_FLAGS_[DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL]``. For example,
|
||||
``CMAKE_C_FLAGS_[DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL|...]``. For example,
|
||||
in a build tree configured to build type ``Debug``, CMake will see to
|
||||
having :variable:`CMAKE_C_FLAGS_DEBUG <CMAKE_<LANG>_FLAGS_DEBUG>` settings get
|
||||
added to the :variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>` settings. See
|
||||
|
13
Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst
Normal file
13
Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst
Normal file
@ -0,0 +1,13 @@
|
||||
CMAKE_CODEBLOCKS_COMPILER_ID
|
||||
----------------------------
|
||||
|
||||
Change the compiler id in the generated CodeBlocks project files.
|
||||
|
||||
CodeBlocks uses its own compiler id string which differs from
|
||||
:variable:`CMAKE_<LANG>_COMPILER_ID`. If this variable is left empty,
|
||||
CMake tries to recognize the CodeBlocks compiler id automatically.
|
||||
Otherwise the specified string is used in the CodeBlocks project file.
|
||||
See the CodeBlocks documentation for valid compiler id strings.
|
||||
|
||||
Other IDEs like QtCreator that also use the CodeBlocks generator may ignore
|
||||
this setting.
|
@ -1,8 +1,26 @@
|
||||
CMAKE_CROSSCOMPILING
|
||||
--------------------
|
||||
|
||||
Is CMake currently cross compiling.
|
||||
Intended to indicate whether CMake is cross compiling, but note limitations
|
||||
discussed below.
|
||||
|
||||
This variable will be set to true by CMake if CMake is cross
|
||||
compiling. Specifically if the build platform is different from the
|
||||
target platform.
|
||||
This variable will be set to true by CMake if the :variable:`CMAKE_SYSTEM_NAME`
|
||||
variable has been set manually (i.e. in a toolchain file or as a cache entry
|
||||
from the :manual:`cmake <cmake(1)>` command line). In most cases, manually
|
||||
setting :variable:`CMAKE_SYSTEM_NAME` will only be done when cross compiling,
|
||||
since it will otherwise be given the same value as
|
||||
:variable:`CMAKE_HOST_SYSTEM_NAME` if not manually set, which is correct for
|
||||
the non-cross-compiling case. In the event that :variable:`CMAKE_SYSTEM_NAME`
|
||||
is manually set to the same value as :variable:`CMAKE_HOST_SYSTEM_NAME`, then
|
||||
``CMAKE_CROSSCOMPILING`` will still be set to true.
|
||||
|
||||
Another case to be aware of is that builds targeting Apple platforms other than
|
||||
macOS are handled differently to other cross compiling scenarios. Rather than
|
||||
relying on :variable:`CMAKE_SYSTEM_NAME` to select the target platform, Apple
|
||||
device builds use :variable:`CMAKE_OSX_SYSROOT` to select the appropriate SDK,
|
||||
which indirectly determines the target platform. Furthermore, when using the
|
||||
Xcode generator, developers can switch between device and simulator builds at
|
||||
build time rather than having a single choice at configure time, so the concept
|
||||
of whether the build is cross compiling or not is more complex. Therefore, the
|
||||
use of ``CMAKE_CROSSCOMPILING`` is not recommended for projects targeting Apple
|
||||
devices.
|
||||
|
6
Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst
Normal file
6
Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst
Normal file
@ -0,0 +1,6 @@
|
||||
CMAKE_CUDA_SEPARABLE_COMPILATION
|
||||
--------------------------------
|
||||
|
||||
Default value for :prop_tgt:`CUDA_SEPARABLE_COMPILATION` target property.
|
||||
This variable is used to initialize the property on each target as it is
|
||||
created.
|
@ -4,7 +4,7 @@ CMAKE_EXTRA_GENERATOR
|
||||
The extra generator used to build the project. See
|
||||
:manual:`cmake-generators(7)`.
|
||||
|
||||
When using the Eclipse, CodeBlocks or KDevelop generators, CMake
|
||||
When using the Eclipse, CodeBlocks, CodeLite, Kate or Sublime generators, CMake
|
||||
generates Makefiles (:variable:`CMAKE_GENERATOR`) and additionally project
|
||||
files for the respective IDE. This IDE project file generator is stored in
|
||||
``CMAKE_EXTRA_GENERATOR`` (e.g. ``Eclipse CDT4``).
|
||||
|
24
Help/variable/CMAKE_GENERATOR_INSTANCE.rst
Normal file
24
Help/variable/CMAKE_GENERATOR_INSTANCE.rst
Normal file
@ -0,0 +1,24 @@
|
||||
CMAKE_GENERATOR_INSTANCE
|
||||
------------------------
|
||||
|
||||
Generator-specific instance specification provided by user.
|
||||
|
||||
Some CMake generators support selection of an instance of the native build
|
||||
system when multiple instances are available. If the user specifies an
|
||||
instance (e.g. by setting this cache entry), or after a default instance is
|
||||
chosen when a build tree is first configured, the value will be available in
|
||||
this variable.
|
||||
|
||||
The value of this variable should never be modified by project code.
|
||||
A toolchain file specified by the :variable:`CMAKE_TOOLCHAIN_FILE`
|
||||
variable may initialize ``CMAKE_GENERATOR_INSTANCE`` as a cache entry.
|
||||
Once a given build tree has been initialized with a particular value
|
||||
for this variable, changing the value has undefined behavior.
|
||||
|
||||
Instance specification is supported only on specific generators:
|
||||
|
||||
* For the :generator:`Visual Studio 15 2017` generator (and above)
|
||||
this specifies the absolute path to the VS installation directory
|
||||
of the selected VS instance.
|
||||
|
||||
See native build system documentation for allowed instance values.
|
@ -1,7 +1,7 @@
|
||||
CMAKE_INCLUDE_CURRENT_DIR
|
||||
-------------------------
|
||||
|
||||
Automatically add the current source- and build directories to the include path.
|
||||
Automatically add the current source and build directories to the include path.
|
||||
|
||||
If this variable is enabled, CMake automatically adds
|
||||
:variable:`CMAKE_CURRENT_SOURCE_DIR` and :variable:`CMAKE_CURRENT_BINARY_DIR`
|
||||
|
@ -1,7 +1,7 @@
|
||||
CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE
|
||||
--------------------------------------
|
||||
|
||||
Automatically add the current source- and build directories to the
|
||||
Automatically add the current source and build directories to the
|
||||
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target property.
|
||||
|
||||
If this variable is enabled, CMake automatically adds for each shared
|
||||
|
@ -0,0 +1,29 @@
|
||||
CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
|
||||
-------------------------------------------
|
||||
|
||||
Default permissions for directories created implicitly during installation
|
||||
of files by :command:`install` and :command:`file(INSTALL)`.
|
||||
|
||||
If ``make install`` is invoked and directories are implicitly created they
|
||||
get permissions set by :variable:`CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS`
|
||||
variable or platform specific default permissions if the variable is not set.
|
||||
|
||||
Implicitly created directories are created if they are not explicitly installed
|
||||
by :command:`install` command but are needed to install a file on a certain
|
||||
path. Example of such locations are directories created due to the setting of
|
||||
:variable:`CMAKE_INSTALL_PREFIX`.
|
||||
|
||||
Expected content of the :variable:`CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS`
|
||||
variable is a list of permissions that can be used by :command:`install` command
|
||||
`PERMISSIONS` section.
|
||||
|
||||
Example usage:
|
||||
|
||||
::
|
||||
|
||||
set(CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
|
||||
OWNER_READ
|
||||
OWNER_WRITE
|
||||
OWNER_EXECUTE
|
||||
GROUP_READ
|
||||
)
|
6
Help/variable/CMAKE_JOB_POOLS.rst
Normal file
6
Help/variable/CMAKE_JOB_POOLS.rst
Normal file
@ -0,0 +1,6 @@
|
||||
CMAKE_JOB_POOLS
|
||||
---------------
|
||||
|
||||
If the :prop_gbl:`JOB_POOLS` global property is not set, the value
|
||||
of this variable is used in its place. See :prop_gbl:`JOB_POOLS`
|
||||
for additional information.
|
@ -6,7 +6,7 @@ The external toolchain for cross-compiling, if supported.
|
||||
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
|
||||
``CMAKE_<LANG>_COMPILER_EXTERNAL_TOOLCHAIN`` may be set to a path to
|
||||
the external toolchain and will be passed to the compiler driver if supported.
|
||||
|
||||
This variable may only be set in a toolchain file specified by
|
||||
|
@ -3,4 +3,5 @@ CMAKE_<LANG>_COMPILER_LAUNCHER
|
||||
|
||||
Default value for :prop_tgt:`<LANG>_COMPILER_LAUNCHER` 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``, ``CXX``, or ``CUDA``.
|
||||
created. This is done only when ``<LANG>`` is ``C``, ``CXX``, ``Fortran``,
|
||||
or ``CUDA``.
|
||||
|
4
Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst
Normal file
4
Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst
Normal file
@ -0,0 +1,4 @@
|
||||
CMAKE_<LANG>_FLAGS_<CONFIG>
|
||||
---------------------------
|
||||
|
||||
Flags for language ``<LANG>`` when building for the ``<CONFIG>`` configuration.
|
10
Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst
Normal file
10
Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst
Normal file
@ -0,0 +1,10 @@
|
||||
CMAKE_<LANG>_FLAGS_<CONFIG>_INIT
|
||||
--------------------------------
|
||||
|
||||
Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS_<CONFIG>` cache
|
||||
entry the first time a build tree is configured for language ``<LANG>``.
|
||||
This variable is meant to be set by a :variable:`toolchain file
|
||||
<CMAKE_TOOLCHAIN_FILE>`. CMake may prepend or append content to
|
||||
the value based on the environment and target platform.
|
||||
|
||||
See also :variable:`CMAKE_<LANG>_FLAGS_INIT`.
|
@ -1,6 +1,5 @@
|
||||
CMAKE_<LANG>_FLAGS_DEBUG
|
||||
------------------------
|
||||
|
||||
Flags for ``Debug`` build type or configuration.
|
||||
|
||||
``<LANG>`` flags used when :variable:`CMAKE_BUILD_TYPE` is ``Debug``.
|
||||
This variable is the ``Debug`` variant of the
|
||||
:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>` variable.
|
||||
|
@ -1,10 +1,5 @@
|
||||
CMAKE_<LANG>_FLAGS_DEBUG_INIT
|
||||
-----------------------------
|
||||
|
||||
Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS_DEBUG` cache
|
||||
entry the first time a build tree is configured for language ``<LANG>``.
|
||||
This variable is meant to be set by a :variable:`toolchain file
|
||||
<CMAKE_TOOLCHAIN_FILE>`. CMake may prepend or append content to
|
||||
the value based on the environment and target platform.
|
||||
|
||||
See also :variable:`CMAKE_<LANG>_FLAGS_INIT`.
|
||||
This variable is the ``Debug`` variant of the
|
||||
:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>_INIT` variable.
|
||||
|
@ -7,9 +7,5 @@ This variable is meant to be set by a :variable:`toolchain file
|
||||
<CMAKE_TOOLCHAIN_FILE>`. CMake may prepend or append content to
|
||||
the value based on the environment and target platform.
|
||||
|
||||
See also the configuration-specific variables:
|
||||
|
||||
* :variable:`CMAKE_<LANG>_FLAGS_DEBUG_INIT`
|
||||
* :variable:`CMAKE_<LANG>_FLAGS_RELEASE_INIT`
|
||||
* :variable:`CMAKE_<LANG>_FLAGS_MINSIZEREL_INIT`
|
||||
* :variable:`CMAKE_<LANG>_FLAGS_RELWITHDEBINFO_INIT`
|
||||
See also the configuration-specific
|
||||
:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>_INIT` variable.
|
||||
|
@ -1,7 +1,5 @@
|
||||
CMAKE_<LANG>_FLAGS_MINSIZEREL
|
||||
-----------------------------
|
||||
|
||||
Flags for ``MinSizeRel`` build type or configuration.
|
||||
|
||||
``<LANG>`` flags used when :variable:`CMAKE_BUILD_TYPE` is ``MinSizeRel``
|
||||
(short for minimum size release).
|
||||
This variable is the ``MinSizeRel`` variant of the
|
||||
:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>` variable.
|
||||
|
@ -1,10 +1,5 @@
|
||||
CMAKE_<LANG>_FLAGS_MINSIZEREL_INIT
|
||||
----------------------------------
|
||||
|
||||
Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS_MINSIZEREL`
|
||||
cache entry the first time a build tree is configured for language ``<LANG>``.
|
||||
This variable is meant to be set by a :variable:`toolchain file
|
||||
<CMAKE_TOOLCHAIN_FILE>`. CMake may prepend or append content to
|
||||
the value based on the environment and target platform.
|
||||
|
||||
See also :variable:`CMAKE_<LANG>_FLAGS_INIT`.
|
||||
This variable is the ``MinSizeRel`` variant of the
|
||||
:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>_INIT` variable.
|
||||
|
@ -1,6 +1,5 @@
|
||||
CMAKE_<LANG>_FLAGS_RELEASE
|
||||
--------------------------
|
||||
|
||||
Flags for ``Release`` build type or configuration.
|
||||
|
||||
``<LANG>`` flags used when :variable:`CMAKE_BUILD_TYPE` is ``Release``.
|
||||
This variable is the ``Release`` variant of the
|
||||
:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>` variable.
|
||||
|
@ -1,10 +1,5 @@
|
||||
CMAKE_<LANG>_FLAGS_RELEASE_INIT
|
||||
-------------------------------
|
||||
|
||||
Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS_RELEASE`
|
||||
cache entry the first time a build tree is configured for language ``<LANG>``.
|
||||
This variable is meant to be set by a :variable:`toolchain file
|
||||
<CMAKE_TOOLCHAIN_FILE>`. CMake may prepend or append content to
|
||||
the value based on the environment and target platform.
|
||||
|
||||
See also :variable:`CMAKE_<LANG>_FLAGS_INIT`.
|
||||
This variable is the ``Release`` variant of the
|
||||
:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>_INIT` variable.
|
||||
|
@ -1,7 +1,5 @@
|
||||
CMAKE_<LANG>_FLAGS_RELWITHDEBINFO
|
||||
---------------------------------
|
||||
|
||||
Flags for ``RelWithDebInfo`` type or configuration.
|
||||
|
||||
``<LANG>`` flags used when :variable:`CMAKE_BUILD_TYPE` is ``RelWithDebInfo``
|
||||
(short for Release With Debug Information).
|
||||
This variable is the ``RelWithDebInfo`` variant of the
|
||||
:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>` variable.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user