Commit Graph

719 Commits

Author SHA1 Message Date
Brad King 067b49a656 Merge topic 'doc-ctest-j-typo'
df53aafd Help: Add missing space to ctest -j option description
2014-12-01 10:01:28 -05:00
Christopher Dembia df53aafdac Help: Add missing space to ctest -j option description 2014-12-01 09:26:48 -05:00
Brad King 8e75f1d2fa Merge topic 'target-sources-error-conditions'
8a75c7ef Help: Document the export limitation of INTERFACE_SOURCES.
e1348056 Export: Disallow export of targets with INTERFACE_SOURCES
bb5905bb cmTarget: Don't allow relative paths in INTERFACE_SOURCES
2014-12-01 08:57:34 -05:00
Brad King 2a92231630 Merge topic 'doc-installed-file-property'
89bb34d3 Help: Add 3.1 release notes for INSTALL property scope
07254a81 Help: Document installed file property API
a1aceb25 Help: Format set_property and get_property command docs
2014-12-01 08:57:32 -05:00
Brad King 8b5591f93e Merge topic 'doc-CMP0053-dedup-char'
191d2b20 Help: Remove duplicate '#' in CMP0053 valid character list
2014-12-01 08:57:30 -05:00
Brad King 89bb34d349 Help: Add 3.1 release notes for INSTALL property scope 2014-12-01 08:48:22 -05:00
Nils Gladitz 07254a8166 Help: Document installed file property API
Since commit v3.1.0-rc1~479^2~1 (Add an "installed file" property
scope, 2014-05-15) the get_property and set_property commands
support an 'INSTALL' scope.  Add documentation for this scope.
2014-12-01 08:48:19 -05:00
Brad King a1aceb2585 Help: Format set_property and get_property command docs 2014-12-01 08:47:58 -05:00
Christoph Grüninger 191d2b209b Help: Remove duplicate '#' in CMP0053 valid character list 2014-12-01 08:32:51 -05:00
Stephen Kelly 8a75c7ef32 Help: Document the export limitation of INTERFACE_SOURCES. 2014-11-29 12:25:00 +01:00
Brad King 82582c96bd Merge topic 'break-command-strictness'
d54617d0 break: Add policy CMP0055 to check calls strictly
bae604d9 Track nested loop levels in CMake language with a stack of counters
2014-11-26 13:50:47 -05:00
Brad King 43c93acf27 Merge topic 'remove-developer-forbidden-API'
beaea609 Remove note disallowing use of some string and vector API.
2014-11-26 10:37:53 -05:00
Gregor Jasny d54617d006 break: Add policy CMP0055 to check calls strictly
Reject break() without loop scope or any arguments.

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2014-11-25 14:14:20 -05:00
Stephen Kelly beaea609a0 Remove note disallowing use of some string and vector API.
The compilers introducing these limitations are no longer supported
as host compilers.
2014-11-25 18:35:00 +01:00
Brad King 66ba7ea831 Merge topic 'custom-command-byproducts'
1f4f2aab Help: Add notes for topic 'custom-command-byproducts'
2014-11-25 10:42:27 -05:00
Brad King d52cfd129c Merge topic 'doc-drop-borland-workaround'
c2af447d Remove disallowed feature which Borland did not accept.
2014-11-25 10:35:44 -05:00
Stephen Kelly c2af447d44 Remove disallowed feature which Borland did not accept. 2014-11-25 10:34:47 -05:00
Brad King c7b9fad117 Merge topic 'remove-ancient-msvc-workarounds'
12cb0b86 Help: Update developer manual with some C++ features now permitted.
ba74465f cmGeneratorTarget: Remove MSVC7 workaround
41363c0c VisualStudio: Remove MSVC6 compatibility macro.
4efcfe52 cmSystemTools: Remove MSVC6 compatibility define.
5f4695cd cmStandardIncludes: Remove MSVC6 condition for cmArrayBegin macro.
7a064337 cmFindCommon: Remove MSVC6 workaround for nested struct private access.
fdb73547 cmTarget: Remove std::min and std::max MSVC6 compatibility code.
2014-11-25 10:28:57 -05:00
Brad King 1f4f2aabc7 Help: Add notes for topic 'custom-command-byproducts' 2014-11-25 10:21:55 -05:00
Brad King 90cfed51f6 Merge topic 'improve-INTERFACE-property-docs'
bb1111ea Help: Warn that paths should not be used in INTERFACE_ build properties.
96691d12 Help: Fix typo in genex in documentation.
f8f02451 Help: Use a property-specific command instead of the generic one.
8609a884 Help: Make remaining build property docs consistent.
bcface39 Help: Link to target_link_libraries from target properies.
e12926e7 Help: Format the LINK_INTERFACE_LIBRARIES target properies.
c8540e94 Help: Unify the help text of INTERFACE_ build properties.
2014-11-25 10:18:52 -05:00
Brad King 0f19208076 Merge topic 'custom-command-byproducts'
557aef0b ExternalProject: Add options to specify BYPRODUCTS (#14963)
e15a7075 Add an option for explicit BYPRODUCTS of custom commands (#14963)
2014-11-25 10:18:16 -05:00
Stephen Kelly bb1111eaa2 Help: Warn that paths should not be used in INTERFACE_ build properties. 2014-11-25 10:00:35 -05:00
Stephen Kelly 96691d126b Help: Fix typo in genex in documentation. 2014-11-22 21:26:06 +01:00
Stephen Kelly f8f02451ad Help: Use a property-specific command instead of the generic one. 2014-11-22 12:58:58 +01:00
Stephen Kelly 8609a884a2 Help: Make remaining build property docs consistent.
These help entries are different enough that they can not use the
generic template.
2014-11-22 12:51:25 +01:00
Stephen Kelly bcface3932 Help: Link to target_link_libraries from target properies. 2014-11-22 12:46:13 +01:00
Stephen Kelly e12926e793 Help: Format the LINK_INTERFACE_LIBRARIES target properies. 2014-11-22 12:45:43 +01:00
Stephen Kelly c8540e9466 Help: Unify the help text of INTERFACE_ build properties. 2014-11-22 12:39:04 +01:00
Stephen Kelly 12cb0b868c Help: Update developer manual with some C++ features now permitted. 2014-11-20 23:11:38 +01:00
Brad King d4fdfaaef1 Merge branch 'doc-target_include_directories-fixup' into release 2014-11-17 15:16:35 -05:00
Brad King d903f7ce91 Merge topic 'doc-target_include_directories-fixup'
1d22ee67 Help: target_include_directories does not allow target names
2014-11-17 15:15:56 -05:00
Brad King 1d22ee67aa Help: target_include_directories does not allow target names
Since commit v2.8.11~227^2~1 (Don't allow targets args in the new target
commands, 2013-01-29) the target_include_directories command does not
support target names on the right hand side, but that commit forgot to
remove it from the docs.  It was never released with such support.
Update the command documentation now.
2014-11-17 14:47:42 -05:00
Brad King 598a316154 Merge branch 'vs14-is-2015' into release 2014-11-17 09:44:52 -05:00
Brad King 444f61e044 Merge topic 'console-pool'
2d75d7e5 Help: Add notes for topic 'console-pool'
f42d86f0 Ninja: Implement USES_TERMINAL using the console pool if available
f281ae01 Ninja: Remove unused declaration
d5eae556 Ninja: factor out the test for console pool support
4d1fedf4 Give the interactive cache editor the USES_TERMINAL property
fe5d6e8c Add USES_TERMINAL option for custom commands
ad6ee426 Rename doing_verbatim to doing_nothing
2014-11-17 09:40:56 -05:00
Brad King e943fa8a19 Merge topic 'vs14-is-2015'
f5afb90d VS: Rename VS 14 generator to 'Visual Studio 14 2015'
2014-11-17 09:40:51 -05:00
Brad King 545d10cc67 Merge topic 'string-SUBSTRING-truncate'
474bbb9d string: Tolerate SUBSTRING length exceeding end index
2014-11-17 09:40:44 -05:00
Brad King e15a7075b5 Add an option for explicit BYPRODUCTS of custom commands (#14963)
A common idiom in CMake-based build systems is to have custom commands
that generate files not listed explicitly as outputs so that these
files do not have to be newer than the inputs.  The file modification
times of such "byproducts" are updated only when their content changes.
Then other build rules can depend on the byproducts explicitly so that
their dependents rebuild when the content of the original byproducts
really does change.

This "undeclared byproduct" approach is necessary for Makefile, VS, and
Xcode build tools because if a byproduct were listed as an output of a
rule then the rule would always rerun when the input is newer than the
byproduct but the byproduct may never be updated.

Ninja solves this problem by offering a 'restat' feature to check
whether an output was really modified after running a rule and tracking
the fact that it is up to date separately from its timestamp.  However,
Ninja also stats all dependencies up front and will only restat files
that are listed as outputs of rules with the 'restat' option enabled.
Therefore an undeclared byproduct that does not exist at the start of
the build will be considered missing and the build will fail even if
other dependencies would cause the byproduct to be available before its
dependents build.

CMake works around this limitation by adding 'phony' build rules for
custom command dependencies in the build tree that do not have any
explicit specification of what produces them.  This is not optimal
because it prevents Ninja from reporting an error when an input to a
rule really is missing.  A better approach is to allow projects to
explicitly specify the byproducts of their custom commands so that no
phony rules are needed for them.  In order to work with the non-Ninja
generators, the byproducts must be known separately from the outputs.

Add a new "BYPRODUCTS" option to the add_custom_command and
add_custom_target commands to specify byproducts explicitly.  Teach the
Ninja generator to specify byproducts as outputs of the custom commands.
In the case of POST_BUILD, PRE_LINK, and PRE_BUILD events on targets
that link, the byproducts must be specified as outputs of the link rule
that runs the commands.  Activate 'restat' for such rules so that Ninja
knows it needs to check the byproducts, but not for link rules that have
no byproducts.
2014-11-14 16:16:00 -05:00
Brad King f5afb90d7c VS: Rename VS 14 generator to 'Visual Studio 14 2015'
Now that we know the year component of this VS version we
can add it to the generator name.  For convenience, map
the name without the year to the name with the year.
2014-11-14 14:23:36 -05:00
Peter Collingbourne 2d75d7e56b Help: Add notes for topic 'console-pool' 2014-11-14 11:56:34 -05:00
Peter Collingbourne fe5d6e8c0f Add USES_TERMINAL option for custom commands
Teach the add_custom_command and add_custom_target commands a new
USES_TERMINAL option.  Use it to tell the generator to give the command
direct access to the terminal if possible.
2014-11-14 11:55:09 -05:00
Brad King 0cacf73959 Help: Document add_custom_command marking outputs GENERATED 2014-11-14 10:06:55 -05:00
Brad King 66ea634b4c Help: Revise and format 'add_custom_target' docs
Format the reStructuredText markup manually.  Organize the command
options into a definition list.  Use inline markup to cross-reference
related documents.
2014-11-13 11:52:54 -05:00
Brad King e7bd9e9b08 Merge topic 'add-FindIntl'
b015b469 Help: Add notes for topic 'add-FindIntl'
2014-11-13 11:22:03 -05:00
Domen Vrankar 474bbb9dbc string: Tolerate SUBSTRING length exceeding end index
string SUBSTRING command now ignores length if it points
past end of string and uses end of string instead.
String SUBSTRING tests now cover more corner cases.
2014-11-13 11:04:52 -05:00
Brad King 3d0addd965 Merge branch 'doc-install-SCRIPT-CODE-COMPONENT' into release 2014-11-13 10:21:53 -05:00
Brad King b015b4698e Help: Add notes for topic 'add-FindIntl' 2014-11-13 10:11:42 -05:00
Brad King 307570aee1 Merge topic 'add-FindIntl'
c5e797db FindIntl: New module to find Gettext libintl
2014-11-13 10:08:34 -05:00
Brad King 8abba92472 Merge topic 'doc-install-SCRIPT-CODE-COMPONENT'
7361e810 Help: Document COMPONENT option of install(SCRIPT/CODE) (#14956)
2014-11-13 10:08:25 -05:00
Brad King 2c71fe6d62 Merge topic 'ExternalProject_UPDATE_DISCONNECTED'
3c497f11 Help: Add notes for topic 'ExternalProject_UPDATE_DISCONNECTED'
aba5cec6 ExternalProject: Add unit tests for UPDATE_DISCONNECTED
3f606fa7 ExternalProject: Add UPDATE_DISCONNECTED option
c0b749cf ExternalProject: Always add a command to a step
2014-11-13 10:08:22 -05:00
Brad King 3c497f1129 Help: Add notes for topic 'ExternalProject_UPDATE_DISCONNECTED' 2014-11-13 09:55:17 -05:00