Commit Graph

798 Commits

Author SHA1 Message Date
Brad King d90e288b7b Merge topic 'file-LOCK-command'
93017828 Help: Add notes for topic 'file-LOCK-command'
e6db4c5a file: Add LOCK subcommand to do file and directory locking
05d6531c cmSystemTools: Add StringToInt helper
2014-12-03 10:02:07 -05:00
Brad King 72c4128176 Merge topic 'doc-CMAKE_CXX_KNOWN_FEATURES-typo'
37d684bd Help: Fix typo in CMAKE_CXX_KNOWN_FEATURES docs
2014-12-03 10:01:52 -05:00
Brad King b9eac05fb6 Merge topic 'vs-hlsl-settings'
2a224b4c VS: Add source file properties to set the hlsl shader entry point and model
2014-12-03 10:01:49 -05:00
Brad King f773e28a8e Merge topic 'doc-Nsight-Tegra-toolchain'
23e2bd7e Help: Document Nsight Tegra toolchain configuration (#15276)
2014-12-03 10:01:47 -05:00
Brad King 53fa072e6a Merge topic 'add-continue-command'
0de867dd continue: Add a new CMake language command for loop continuation (#14013)
2014-12-03 10:01:44 -05:00
Brad King cf63779f35 Merge topic 'FindOpenGL-revert-imported-targets'
02e34de2 FindOpenGL: Revert support for imported targets (#15267)
2014-12-03 10:01:42 -05:00
Brad King 930178283a Help: Add notes for topic 'file-LOCK-command' 2014-12-03 09:47:44 -05:00
Ruslan Baratov e6db4c5a4e file: Add LOCK subcommand to do file and directory locking
Provide options to fail without blocking or to block up to a timeout.
Provide options to specify the scope containing the lock so it can be
released automatically at the end of a function, file, or process.

Extend the RunCMake.file test with cases covering the file(LOCK) command
usage and error cases.
2014-12-03 09:47:44 -05:00
Brad King 1c104c019a Merge branch 'vs-phone-store-deployment-location' into release 2014-12-03 09:32:42 -05:00
Brad King 7c28e7c172 Merge branch 'vs-hlsl-settings' into release 2014-12-03 09:32:38 -05:00
Brad King 0e7c7bd3df Merge branch 'doc-CMAKE_CXX_KNOWN_FEATURES-typo' into release 2014-12-03 09:32:32 -05:00
Brad King 206117af17 Merge branch 'doc-Nsight-Tegra-toolchain' into release 2014-12-03 09:32:22 -05:00
Gilles Khouzam 352f246f3e VS: Add source file property to specify Windows App deployment location
Add a VS_DEPLOYMENT_LOCATION source file property to specify where to
put files that are part of the package.  For example:

  set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_LOCATION "assets")

Without this, sources marked with VS_DEPLOYMENT_CONTENT cannot be
located properly.
2014-12-03 09:31:59 -05:00
Cedric Perthuis 2a224b4ce3 VS: Add source file properties to set the hlsl shader entry point and model
Create properties VS_SHADER_ENTRYPOINT and VS_SHADER_MODEL.  Without
these many .hlsl source files may not be possible to use.  Extend the
VSWinStorePhone test project to cover them.
2014-12-03 09:30:59 -05:00
David Demelier 37d684bd67 Help: Fix typo in CMAKE_CXX_KNOWN_FEATURES docs
Typo "ss defined" => "as defined".
2014-12-03 09:12:17 -05:00
Brad King 23e2bd7e8c Help: Document Nsight Tegra toolchain configuration (#15276) 2014-12-02 14:40:25 -05:00
Brad King f3ae286cc0 Merge branch 'FindOpenGL-revert-imported-targets' into release 2014-12-02 10:23:01 -05:00
Brad King b85cd1bd69 Merge branch 'doc-compile-features-typo' into release 2014-12-02 10:22:39 -05:00
Brad King c3c251ce0a Merge topic 'FindOpenGL-no-X11'
d051cbda FindOpenGL: Drop explicit dependency on X11 (#15268)
2014-12-02 10:21:22 -05:00
Brad King 5bc8282898 Merge topic 'doc-compile-features-typo'
64f8c533 Help: Fix typo in cmake-compile-features(7) manual
2014-12-02 10:21:21 -05:00
Brad King f39d713af6 Merge topic 'FindOpenSSL-separate-libs'
be9bec5d FindOpenSSL: Report crypto and ssl libraries separately
2014-12-02 10:21:14 -05:00
David Demelier 64f8c5336b Help: Fix typo in cmake-compile-features(7) manual
Fix spelling 'execptions' => 'exceptions'.
2014-12-02 09:20:22 -05:00
Brad King 02e34de2b6 FindOpenGL: Revert support for imported targets (#15267)
Revert the feature added by commit v3.1.0-rc1~420^2~2 (FindOpenGL:
Provide imported targets for GL and GLU, 2014-05-31).  Unfortunately it
does not work on Windows because the full path to each library file is
not actually known.  The IMPORTED_LOCATION of an imported target must be
a full path, but OPENGL_gl_LIBRARY is just 'opengl32' on Windows because
the actual library file is in some implicit link directory that we may
know know.

More infrastructure will be needed in CMake to allow a name-only
imported library.  Until that exists, we will not be able to provide
imported targets in FindOpenGL.
2014-12-01 16:01:09 -05:00
Brad King d051cbda5d FindOpenGL: Drop explicit dependency on X11 (#15268)
In commit 079e8469ab (... OpenGL always needs X11 on Unix, 2002-09-05)
the FindOpenGL module was taught to search for X11 as a dependency of
the OpenGL library.  This was done without a detailed explanation, and
the dependency should not be explicitly needed because OpenGL headers
should not expose applications to X11 APIs directly.

Unfortunately the only way to know if anything legitimately depends on
this behavior (perhaps in static library cases) is to simply remove it
and wait for issues to be reported.  If so, then we can add some kind of
compatibility setting for this later.  Add a release note to draw
attention to this change.

Reported-by: Dainius "GreatEmerald" Masiliūnas <pastas4@gmail.com>
2014-12-01 11:05:29 -05:00
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
Gregor Jasny 0de867dde2 continue: Add a new CMake language command for loop continuation (#14013)
Inspired-by: Doug Barbieri
Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2014-12-01 09:50:49 -05:00
Hannes Mezger be9bec5df2 FindOpenSSL: Report crypto and ssl libraries separately
Some applications only need the OpenSSL crypto library and want to avoid
linking against the SSL library.  Set OPENSSL_CRYPTO_LIBRARY and
OPENSSL_SSL_LIBRARY in the code paths that do not need to find them
separately, and document them publicly.  This allows applications to be
more specific when linking against OpenSSL.
2014-12-01 09:41:46 -05:00
Brad King 5062bf7488 Merge branch 'doc-ctest-j-typo' into release 2014-12-01 09:28:41 -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 58d3898083 Merge branch 'target-sources-error-conditions' into release 2014-12-01 08:55:45 -05:00
Brad King 5445a99d1a Merge branch 'doc-installed-file-property' into release 2014-12-01 08:49:13 -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
Brad King 7361e8102a Help: Document COMPONENT option of install(SCRIPT/CODE) (#14956) 2014-11-13 08:41:56 -05:00
Brad King ac9e4f9979 Merge topic 'doc-CMAKE_INSTALL_PREFIX-link-GNUInstallDirs'
00d4cdc9 Help: Link to GNUInstallDirs from CMAKE_INSTALL_PREFIX (#15246)
2014-11-12 09:35:43 -05:00
Brad King 44a6b6e44d Merge topic 'emacs-mode-underscore-in-symbol'
cb80e513 Help: Add 3.1 release note Emacs mode update
30f14aeb cmake-mode.el: syntax of '_' should be treated as symbol
2014-11-12 09:35:40 -05:00
Brad King 5d1fe90ed1 Merge branch 'emacs-mode-underscore-in-symbol' into release 2014-11-12 09:30:15 -05:00
Brad King cb80e51346 Help: Add 3.1 release note Emacs mode update 2014-11-12 09:29:25 -05:00
Brad King 0011abeab0 Merge branch 'doc-CMAKE_INSTALL_PREFIX-link-GNUInstallDirs' into release 2014-11-12 09:17:07 -05:00
Brad King 00d4cdc935 Help: Link to GNUInstallDirs from CMAKE_INSTALL_PREFIX (#15246)
Add a note to the CMAKE_INSTALL_PREFIX documentation that refers readers
to the GNUInstallDirs module to make the latter easier to discover.
2014-11-12 08:32:01 -05:00
Roger Leigh c5e797dbb8 FindIntl: New module to find Gettext libintl
Add support for Sun/Uniforum/GNU gettext libintl.  This belongs in CMake
rather than upstream because:

* There are multiple upstreams (Sun, GNU).

* It may or may not be in the glibc C library depending
  upon the platform and build options used.

Although we already have a FindGettext module, that is for the tools.
This module is for the library, and is independent because it's
perfectly OK to use libintl without the gettext tools (and vice versa),
and they might not all be found.  Add cross references between the two
modules in notes to make the relationship clearer.
2014-11-11 13:02:16 -05:00
Brad King 0f836cb0ef Merge topic 'doc-cleanup-xrefs'
4c8c442d Help: Fix broken cross-references reported by 'nitpicky' option
2014-11-07 11:54:54 -05:00
Brad King 06c3b7a822 Merge branch 'doc-cleanup-xrefs' into release 2014-11-07 11:45:27 -05:00
Brad King 4c8c442d7c Help: Fix broken cross-references reported by 'nitpicky' option
Enable the Sphinx 'nitpicky' option and fix the resulting warnings about
dangling references.
2014-11-07 11:41:21 -05:00
Brad King 70105facd6 Merge topic 'doc-formatting'
f0ca3ef0 Help: Wrap long lines in pre-formatted documentation blocks
2014-11-07 11:08:59 -05:00
Brad King 0ef2d5f805 Merge topic 'doc-FindITK-FindVTK-relnotes'
1550d97d Help: Update 3.1 release notes for dropping of FindITK and FindVTK
2014-11-07 11:08:57 -05:00
Brad King 3dfc856b79 Merge branch 'doc-formatting' into release 2014-11-07 11:02:45 -05:00
Brad King addff66d33 Merge branch 'doc-FindITK-FindVTK-relnotes' into release 2014-11-07 11:02:29 -05:00
Brad King f0ca3ef0a3 Help: Wrap long lines in pre-formatted documentation blocks
Help format the blocks better for display without a wide screen.
2014-11-07 10:59:09 -05:00
Brad King 1550d97d96 Help: Update 3.1 release notes for dropping of FindITK and FindVTK
The changes made by commit v3.1.0-rc1~46^2~1 (FindITK: Drop this ancient
compatibility module, 2014-10-02) and commit v3.1.0-rc1~46^2 (FindVTK:
Drop this ancient compatibility module, 2014-10-02) need to come with
release notes explaining that the modules were dropped.  Also remove a
release not related to an update made to FindVTK that was never
released.
2014-11-07 10:52:25 -05:00
Brad King b71399a189 Merge branch 'release-doc-formatting' into release 2014-11-07 10:20:58 -05:00
Brad King 67c4be51a3 Merge branch 'release-doc-formatting' into doc-formatting
Resolve conflict in Modules/ExternalProject.cmake by keeping our side,
which is more completely revised.
2014-11-06 14:52:49 -05:00
Brad King 79349ed8fc Help: Tell latex to use a small font for cmake-language.7 productions 2014-11-06 14:52:27 -05:00
Brad King 8dab50636d Help: Fix example in cmake-packages to avoid long line 2014-11-06 14:46:18 -05:00