Commit Graph

432 Commits

Author SHA1 Message Date
Stephen Kelly e5da9e51d0 cmTarget: Allow any generator expression in SOURCES property.
Remove use of UseObjectLibraries from Makefile and Ninja generators. It
is not needed now because those generators use GetExternalObjects
which already contains the objects from object libraries.

The VS10 generator calls both the UseObjectLibraries and the GetExternalObjects
methods. Ensure that duplicates are not created by skipping objects
from object libraries in handling of GetExternalObjects.

Similarly, fix VS6, VS7 and Xcode object handling by skipping
external objects from OBJECT_LIBRARY usage as appropriate.

The error message in the BadSourceExpression1 test is now reported
by the generator expression evaluator, so it has different text.
2014-04-02 23:12:56 +02:00
Stephen Kelly 5702e10677 cmTarget: Include TARGET_OBJECTS genex in target SOURCES property.
Add policy CMP0051 to control this behavior.
2014-04-02 23:12:56 +02:00
Brad King 97243c22b2 Merge branch 'revise-compiler-id-policies' into release 2014-04-02 14:54:17 -04:00
Brad King 8018fcca6e Merge branch 'master' into revise-compiler-id-policies 2014-04-02 14:44:35 -04:00
Brad King a41c0a9dcb Do not warn by default when policy CMP0025 or CMP0047 is not set
These policies are triggered by the use of a particular compiler rather
than outdated CMake code in a project.  Avoid warning in every project
that enables a language by not displaying the policy warning by default.
Add variable CMAKE_POLICY_WARNING_CMP<NNNN> to control the warning
explicitly; otherwise enable the warning with --debug-output or --trace.

This breaks with strict policy convention because it does not provide
developers with any warning about the behavior change by default.
Existing projects will continue to build without a warning or change in
behavior.  When a developer changes the minimum required version of
CMake in a project to a sufficiently high value (3.0), the project will
suddenly get the new compiler id and may break, but at least the
breakage comes with a change to the project rather than the version of
CMake used to build it.

Breaking strict policy convention is worthwhile in this case because
very few projects will be affected by the behavior change but every
project would have to see the warning if it were enabled by default.
2014-04-02 14:43:54 -04:00
Brad King d339653eaf Help: Revise and format policy CMP0025 and CMP0047 docs
Add inline reST markup as appropriate.  Word CMP0047 docs more like
those of CMP0025.  State explicitly that the policies must be set
before the project or enable_language command calls.
2014-04-02 14:42:45 -04:00
Alex Merry fcdf86d004 Help: Rewrite the cmake-developer.7 find module documentation
As well as the traditional variables, providing imported targets is
suggested, and the relative advantages and disadvantages briefly
discussed.

A mini-tutorial walking through creating a simple find module is
provided.

This changes the recommended version variable from Foo_VERSION_STRING to
Foo_VERSION, because there is really no need to have different variable
names for package version files vs. find modules.  It notes the old
variable name, though, and suggests setting it for compatibility.
2014-04-02 10:59:29 -04:00
Stephen Kelly 28e1d2f8fc cmStringCommand: Add GENEX_STRIP subcommand.
Strip out any generator expressions in the input string.
2014-03-31 23:18:44 +02:00
Stephen Kelly bf98cc252f Genex: Evaluate TARGET_OBJECTS as a normal expression. 2014-03-31 23:18:44 +02:00
Brad King 63c6325487 Merge topic 'fix-Qt-manual-typo'
dcfbbe87 Help: Fix typo in cmake-qt manual.
2014-03-26 13:24:47 -04:00
Stephen Kelly dcfbbe87eb Help: Fix typo in cmake-qt manual.
Do -> To.
2014-03-26 17:50:08 +01:00
Ben Boeckel 9523d2a55c ninja: Add support for custom depfile formats
Not everything that isn't MSVC is GCC. I have support for LDC's depfile
format on its way upstream[1], but its future is uncertain. CMake should
at least support this for future depfile formats.

[1]https://github.com/martine/ninja/pull/721
2014-03-23 23:54:13 -04:00
Brad King df136e6c27 Merge topic 'ExternalProject-no-download-progress'
f1b953ec Help: Add notes for topic 'ExternalProject-no-download-progress'
7d35b550 ExternalProject: Add option to disable download progress (#14807)
2014-03-20 09:22:26 -04:00
Stephen Kelly bbffccca42 add_custom_command: Evaluate generator expressions in DEPENDS
Rely on evaluation in cmCustomCommandGenerator for the generators.

When tracing target dependencies, depend on the union of dependencies
for all configurations.
2014-03-20 09:21:56 -04:00
Brad King f1b953ec9b Help: Add notes for topic 'ExternalProject-no-download-progress' 2014-03-17 13:12:10 -04:00
Brad King 6e466c6f2e Merge branch 'master' into CONFIG-LOCATION-CMP0026 2014-03-17 09:31:21 -04:00
Stephen Kelly c903b5319b cmTarget: Restore <CONFIG>_LOCATION to CMP0026 OLD behavior (#14808)
Restore support for the undocumented <CONFIG>_LOCATION target property
removed by commit v3.0.0-rc1~175^2 (cmTarget: Remove support for
<CONFIG>_LOCATION property, 2013-12-30) as part of the CMP0026 OLD
behavior.
2014-03-17 09:30:39 -04:00
Brad King 7fba4552fc Merge topic 'cpack-deb-compression-types'
16caa6ec Help: Add release notes for topic 'cpack-deb-compression-types'
2014-03-14 10:36:05 -04:00
Brad King 3d89b36415 Merge topic 'ctest-intel-coverage'
3a7501d9 Help: Add release notes for topic 'ctest-intel-coverage'
9840320d CTest: Add support for Intel coverage files
2014-03-14 10:35:42 -04:00
Brad King 3a7501d9eb Help: Add release notes for topic 'ctest-intel-coverage' 2014-03-14 10:31:30 -04:00
Brad King 16caa6ecba Help: Add release notes for topic 'cpack-deb-compression-types' 2014-03-14 09:34:14 -04:00
Brad King 328c217960 Help: Drop cmStdString from cmake-developer(7) examples
The type no longer exists within CMake.
2014-03-13 15:11:22 -04:00
Brad King b801205dad Merge topic 'ctest-coverage-extra'
93d5c4dc Help: Add release notes for topic 'ctest-coverage-extra'
ef1c1153 CTest: Teach ctest_coverage() to read CTEST_COVERAGE_EXTRA_FLAGS
2014-03-11 09:18:28 -04:00
Brad King e21ffaf8fe Merge topic 'doc-osx-path-variables'
764e977a Help: Document variables CMAKE_APPBUNDLE_PATH and CMAKE_FRAMEWORK_PATH
2014-03-10 10:35:32 -04:00
Brad King 29d4f6b03b Merge branch 'doc-osx-path-variables' into release 2014-03-10 10:24:16 -04:00
Brad King 764e977ad7 Help: Document variables CMAKE_APPBUNDLE_PATH and CMAKE_FRAMEWORK_PATH 2014-03-10 10:23:42 -04:00
Brad King 93d5c4dc22 Help: Add release notes for topic 'ctest-coverage-extra' 2014-03-10 10:21:11 -04:00
Brad King 581abf6d31 Merge branch 'release' 2014-03-10 09:37:08 -04:00
Brad King 7c9041bdab Merge topic 'link-libraries-response-files'
489b1c23 Windows: Use response files to specify link libraries for GNU tools
745caae6 Makefile: Rename linker response file boolean to be more specific
5e8e4d0f cmLocalGenerator: Add response file option to OutputLinkLibraries
b9aa5041 cmLocalGenerator: Simplify GetIncludeFlags output formatting
971653b7 cmLocalGenerator: Add format option to ConvertToLinkReference
0c0ef9e7 cmLocalGenerator: Add format option to ConvertToIncludeReference
02bebd60 cmLocalGenerator: Add format option to ConvertToOutputForExisting
c8751709 Makefile: Factor out some duplicate link libraries generation
2014-03-06 09:46:50 -05:00
Brad King 489b1c23b9 Windows: Use response files to specify link libraries for GNU tools
Work around the command-line-length limit by using an @linklibs.rsp
response file to pass the flags for link libraries.  This allows
very long lists of libraries to be used in addition to the existing
support for passing object files via response file.

Suggested-by: Peter Keuschnigg <peter.keuschnigg@pmu.ac.at>
2014-03-05 13:07:41 -05:00
Brad King 4d67891a73 Merge topic 'FeatureSummary_combine_WHAT_values'
4da09d1a Help: Add release notes for topic 'FeatureSummary_combine_WHAT_values'
2014-03-05 13:04:49 -05:00
Brad King 4da09d1a3f Help: Add release notes for topic 'FeatureSummary_combine_WHAT_values' 2014-03-05 11:20:28 -05:00
Brad King c9df12ccee Merge topic 'doc-host-target-vars'
06986afc Help: Update CMAKE_SYSTEM* and CMAKE_HOST_SYSTEM* documentation
2014-03-05 11:08:01 -05:00
Brad King 955dd1a551 Merge topic 'doc-find_package-build-paths'
69d73d27 Help: Mention in find_package that cmake-gui step is Windows-only (#14781)
2014-03-05 11:07:57 -05:00
Jiri Malak 06986afc4b Help: Update CMAKE_SYSTEM* and CMAKE_HOST_SYSTEM* documentation
Update to documentation for HOST/TARGET system related variables to be
consistent with current functionality.
2014-03-04 10:01:26 -05:00
Brad King 54a4c93087 Merge branch 'doc-find_package-build-paths' into release 2014-03-03 14:43:36 -05:00
Brad King 69d73d27cb Help: Mention in find_package that cmake-gui step is Windows-only (#14781)
Recently used cmake-gui locations are searched only on Windows because
the Windows registry is used to record the values.  This behavior is
historical and may be removed by a policy in the future so rather than
implementing it on other platforms simply document the current behavior.
2014-03-03 14:36:48 -05:00
Brad King 8982a4b301 Merge topic 'add_definitions-no-genex'
1a9316a8 add_definitions: Don't document genex support.
2014-03-03 10:32:05 -05:00
Brad King d838c477ae Merge topic 'CMP0043-dir-prop'
38df26bc CMP0043: Document old and new interfaces for setting directory property.
2014-03-03 10:31:53 -05:00
Brad King c69a84c308 Merge branch 'CMP0043-dir-prop' into release 2014-03-03 10:12:05 -05:00
Brad King 9efba5d956 Merge branch 'add_definitions-no-genex' into release 2014-03-03 10:12:01 -05:00
Stephen Kelly 38df26bc6f CMP0043: Document old and new interfaces for setting directory property. 2014-03-03 10:11:19 -05:00
Stephen Kelly 1a9316a808 add_definitions: Don't document genex support.
This command does not support generator expressions. The documentation
was mistakenly extended to claim it in commit v3.0.0-rc1~60^2~3 (Help: Mark
up the buildsystem commands documentation, 2014-02-03).
2014-03-03 10:10:39 -05:00
Brad King d57bc8797d Merge topic 'FindRuby-2'
57abfeaa Help: Add FindRuby-2 topic release notes
165f6430 FindRuby: Add support for Ruby 2.0 and 2.1
2014-03-03 10:06:24 -05:00
Brad King eafd2a8511 Merge topic 'FindPkgConfig-PKG_CONFIG'
80aa18b4 Help: Add release notes for topic 'FindPkgConfig-PKG_CONFIG'
c53b5cd2 FindPkgConfig: Prefer PKG_CONFIG to find pkg-config (#13175)
2014-02-28 09:48:38 -05:00
Brad King e62102bef1 Merge topic 'FindGTest-AUTO-SOURCES'
ac42bca8 Help: Add FindGTest-AUTO-SOURCES topic release notes
c50325b8 FindGTest: Optionally detect sources automatically (#14775)
2014-02-28 09:48:36 -05:00
Brad King 27defbd6d4 Merge topic 'add-FindOpenCL'
1b08e609 Help: Add release notes for topic 'add-FindOpenCL'
041485bc Add FindOpenCL module
2014-02-28 09:48:30 -05:00
Brad King 2a93843f3f Merge topic 'ExternalProject-BUILD_ALWAYS'
755b378e Help: Add ExternalProject-BUILD_ALWAYS topic release notes
2014-02-28 09:48:27 -05:00
Brad King 244b7696ed Merge topic 'FindHg-add-WC_INFO'
02a74a7d Help: Add FindHg-WC_INFO topic release notes
2014-02-28 09:48:25 -05:00
Brad King 80aa18b4a8 Help: Add release notes for topic 'FindPkgConfig-PKG_CONFIG' 2014-02-28 09:48:20 -05:00
Brad King 1b08e6095b Help: Add release notes for topic 'add-FindOpenCL' 2014-02-28 09:18:06 -05:00
Brad King 42f981987e Merge branch 'FindRuby-2' into release 2014-02-28 08:50:32 -05:00
Brad King 5161f7bc36 Help: Consolidate FindRuby-2 release notes for 3.0.0 2014-02-28 08:50:05 -05:00
Brad King 57abfeaac5 Help: Add FindRuby-2 topic release notes 2014-02-28 08:47:12 -05:00
Brad King 755b378e57 Help: Add ExternalProject-BUILD_ALWAYS topic release notes 2014-02-27 09:09:02 -05:00
Brad King 02a74a7d9f Help: Add FindHg-WC_INFO topic release notes 2014-02-27 09:03:32 -05:00
Brad King ac42bca833 Help: Add FindGTest-AUTO-SOURCES topic release notes 2014-02-27 08:54:13 -05:00
Brad King 041ba1eefd Merge topic 'INTERFACE-property-docs'
ad75afbf Help: List the whitelist of properties for INTERFACE libraries.
2014-02-26 09:38:58 -05:00
Brad King 6223621e9a Merge topic 'msvc-compiler-pdb-files'
fba51b09 MSVC: Add properties to configure compiler PDB files (#14762)
3737860a cmTarget: Add per-config compilation info
718a9532 cmTarget: Refactor ComputePDBOutputDir interface
aae5184c Help: Refactor PDB_NAME and PDB_OUTPUT_DIRECTORY docs
b4aac0ca Makefile: Fix per-config linker PDB output directory
2014-02-26 09:38:51 -05:00
Brad King fba51b096e MSVC: Add properties to configure compiler PDB files (#14762)
Since commit v2.8.12~437^2~2 (VS: Separate compiler and linker PDB files
2013-04-05) we no longer set /Fd with the PDB_NAME or PDB_OUTPUT_DIRECTORY
properties.  Those properties now exclusively handle linker PDB files.
Since STATIC libraries do not link their compiler PDB file becomes more
important.  Add new target properties "COMPILE_PDB_NAME[_<CONFIG>]" and
"COMPILE_PDB_OUTPUT_DIRECTORY[_<CONFIG>]" to specify the compiler PDB
file location and pass the value to the MSVC /Fd option.
2014-02-26 09:34:38 -05:00
Matthäus G. Chajdas 041485bc16 Add FindOpenCL module 2014-02-26 08:53:00 -05:00
Stephen Kelly ad75afbfb4 Help: List the whitelist of properties for INTERFACE libraries. 2014-02-26 10:40:49 +01:00
Brad King 958cd84431 Merge topic 'dev/faster-parsers'
048be205 Help: Add release notes for the 'faster-parsers' topic
7c565d2f cmGeneratorExpression: Improve parsing in StripEmptyListElements
68eb1757 cmGeneratorExpressionLexer: Use a switch statement to parse
67253133 ExpandListArguments: Optimize the parser
2014-02-25 11:18:14 -05:00
Ben Boeckel 048be20536 Help: Add release notes for the 'faster-parsers' topic 2014-02-25 10:56:10 -05:00
Brad King aae5184c16 Help: Refactor PDB_NAME and PDB_OUTPUT_DIRECTORY docs
Move the note about VS 6 into the PDB_NOTE.txt common include file
and include it from the per-config properties too.  Also re-word
the note to clarify the separate compiler and linker flags involved
and state explicitly that compiler flags are not affected.
2014-02-24 13:44:27 -05:00
Brad King cf42f93d07 Merge topic 'install-FILES-genex'
6e89c8a5 install: Support generator expressions in FILES and PROGRAMS mode
f11f7b34 cmInstallFilesGenerator: Add reference to calling cmMakefile
e190236c Help: Format install() command documentation
2014-02-24 10:40:04 -05:00
Brad King c124c7de1d Merge topic 'doc-add_test-cleanup'
8afa5fe8 Help: Revise and format add_test() command documentation
2014-02-24 10:40:03 -05:00
Brad King b686154b61 Merge branch 'install-FILES-genex' into release 2014-02-24 09:16:36 -05:00
Brad King 6e89c8a5f1 install: Support generator expressions in FILES and PROGRAMS mode
Teach the install(FILES) and install(PROGRAMS) commands to evaluate
generator expressions in the list of files.

Extend the ExportImport test to cover installation cases involving
generator expressions.
2014-02-21 17:05:26 -05:00
Brad King e190236c74 Help: Format install() command documentation
Add inline markup and explicit markup blocks as appropriate.
2014-02-21 17:05:26 -05:00
Brad King 549b4d02d4 Merge branch 'doc-add_test-cleanup' into release 2014-02-20 09:53:08 -05:00
Brad King 8afa5fe8ce Help: Revise and format add_test() command documentation
Favor the add_test(NAME) signature and document the limitations of
the plain signature.
2014-02-20 08:58:13 -05:00
Brad King 28dcccface Begin post-3.0 development 2014-02-19 09:30:37 -05:00
Brad King 7cbab17871 Change version scheme to use only two components for feature levels
Historically CMake used three version components for the feature level.
We released new features while incrementing only the third version
component.  Since commit v2.8.2~105^2~4 (New version scheme to support
branchy workflow, 2010-04-23) we used the fourth version component for
bug-fix releases and the development date:

 <major>.<minor>.<patch>[.<tweak>][-rc<n>] = Release
 <major>.<minor>.<patch>.<date>[-<id>]     = Development

This solidified use of three components for the feature level, and was
necessary to continue releasing 2.x versions because:

* Some existing projects performed floating-point comparisons of
  ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} to 2.x numbers
  so ``x`` could never be higher than 9.

* Version 2.9.<date> was used briefly in post-2.8.0 development in
  CVS prior to the transition to Git, so using it in releases may
  have caused confusion.

Now that we are moving to 3.x versions, these two restrictions go away.
Therefore we now change to use only two components for the feature
level and use the scheme:

 <major>.<minor>.<patch>[-rc<n>] = Release
 <major>.<minor>.<date>[-<id>]   = Development
2014-02-19 09:30:13 -05:00
Brad King f8ccb6d038 Help: Drop development topic notes to prepare release
Release versions do not have the development topic section of
the CMake Release Notes index page.
2014-02-19 09:30:12 -05:00
Brad King db68dd2454 Help: Rename 3.0 release notes to 3.0.0
Bug-fix releases 3.0.x may have their own notes so this will look more
consistent.
2014-02-19 09:30:00 -05:00
Brad King d30e4fa703 Help: Consolidate remaining 3.0 release notes 2014-02-19 08:39:44 -05:00
Brad King a7c956b867 Merge topic 'doc-usage-requirements'
0c54b775 Help: Document the purpose of usage requirements clearly.
2014-02-19 08:34:29 -05:00
Brad King 9304d09613 Merge topic 'FindBoost-namespace'
17485e37 FindBoost: Add suport for custom namespaces
2014-02-19 08:34:24 -05:00
Brad King 5a607c4a6f Merge topic 'doc-package-registry'
bf012e0c Help: Format find_package() command documentation
bd6887e4 Help: Document the package registry in cmake-packages.7
2014-02-19 08:34:22 -05:00
Stephen Kelly 0c54b775a4 Help: Document the purpose of usage requirements clearly.
People will be tempted to put things there for convenience, thereby
causing conflicts similar to

 http://thread.gmane.org/gmane.comp.compilers.clang.devel/35162/focus=35169

where it is conceivable that the LLVM developers could put a flag on
a target for convenience, which would cause conflicts for some downstreams.
2014-02-18 16:08:44 +01:00
Chuck Atkins 17485e37a2 FindBoost: Add suport for custom namespaces
When building boost with an alternate namespace the libraries generated
will have a different naming convention.  This is often done to ensure
no symbol conflicts with external libraries built against a different
version of boost.  If the namespace used is "myprivateboost::" instead
of "boost::" then the libraries built will be named myprivateboost_foo
instead of boost_foo.  Add an option to specify a custom namespace used
to alter the library names that get searched for.
2014-02-17 16:05:48 -05:00
Brad King bf012e0cb6 Help: Format find_package() command documentation
Add inline markup and explicit markup block syntax as needed.
Add cross-references to other documentation as appropriate.
2014-02-17 15:37:04 -05:00
Brad King bd6887e4d6 Help: Document the package registry in cmake-packages.7
Port documentation from the CMake Wiki page at:

 http://www.cmake.org/Wiki/CMake/Tutorials/Package_Registry

as of 2014-02-17 into our main documentation.
2014-02-17 15:34:48 -05:00
Stephen Kelly a74d125a7c Help: Fix typo
binary_find -> binary_search.
2014-02-17 11:07:59 +01:00
Stephen Kelly f2eee72fac add_custom_command: Disallow use of SOURCE signatures.
Add CMP0050 to control this behavior.
2014-02-12 11:19:27 -05:00
Stephen Kelly c248a437c4 Add policy CMP0049 to avoid variable expansion in source lists 2014-02-12 11:17:38 -05:00
Brad King 10f90d644c Help: Add CMake 3.0 Release Notes
Manually read through version control history since the 2.8.12.2
release and write release notes for important user-facing changes.

Co-Author: Stephen Kelly <steveire@gmail.com>
2014-02-11 09:07:14 -05:00
Brad King 5d05124cb7 Merge topic 'doc-policy-version-3.0'
aab11bca Help: Change version 3.0.0 -> 3.0 in policy docs
2014-02-10 15:40:33 -05:00
Brad King aab11bcab4 Help: Change version 3.0.0 -> 3.0 in policy docs
Starting with 3.0 we will use only two components for the feature level,
and policies are only ever introduced with a bump to the feature level
version.
2014-02-10 11:40:21 -05:00
Brad King 89d49eccc5 Merge topic 'extend-docs'
0b3e98d9 Help: Don't list debuggable properties in cmake-buildsystem manual.
39d08b92 Help: Add additional hyperlink targets
ef17e293 Help: Document SYSTEM treatment of IMPORTED target INTERFACE_INCLUDE_DIRS
2014-02-10 11:25:10 -05:00
Brad King f67ab2a920 Merge topic 'release-notes-prep'
4b7f2f52 Help: Add hyperlink targets for argument types in cmake-language(7)
113df227 Remove ChangeLog.manual
79f55909 Remove ChangeLog.txt
d25dbc90 Tests/BundleTest: Drop use of ChangeLog.txt
2014-02-10 11:24:58 -05:00
Stephen Kelly 0b3e98d913 Help: Don't list debuggable properties in cmake-buildsystem manual. 2014-02-10 09:03:53 +01:00
Stephen Kelly 39d08b929e Help: Add additional hyperlink targets 2014-02-09 12:11:09 +01:00
Stephen Kelly ef17e29389 Help: Document SYSTEM treatment of IMPORTED target INTERFACE_INCLUDE_DIRS
Document how the behavior can be controlled.
2014-02-09 12:11:09 +01:00
Brad King 4b7f2f5213 Help: Add hyperlink targets for argument types in cmake-language(7)
Add reStructuredText hyperlink targets for the bracket, quoted, and
unquoted argument sections.
2014-02-07 13:35:50 -05:00
Stephen Kelly f02b5fb5a0 Help: Fix typo.
'to not to' -> 'not to'
2014-02-07 14:25:19 +01:00
Stephen Kelly cc46b702d0 Help: Adjust the QtAutogen properties to the common style.
Link to the cmake-qt manual.
2014-02-06 16:15:54 -05:00
Stephen Kelly f371545d3b Help: Use ``True`` and ``False`` for IMPORTED values.
Only the first letter is capitalized. It is marked up.
2014-02-06 16:15:54 -05:00
Stephen Kelly 3879c84782 Help: Document relation of properties to the rest of the buildsystem. 2014-02-06 16:15:53 -05:00
Stephen Kelly ba4c2fa8fd Help: Mark up the buildsystem commands documentation
Cross-link to the cmake-buildsystem manual.
2014-02-06 16:15:53 -05:00
Stephen Kelly a683262a72 Help: Note that the compatible interface properties must not intersect. 2014-02-06 16:15:53 -05:00
Stephen Kelly fbe01bedbe Help: Specify how to order and modify transitively set property values. 2014-02-06 16:15:53 -05:00
Stephen Kelly 645500b413 Help: Add hyperlink targets to some manual sections.
These can be refered to from the command documentation and other
relevant locations.
2014-02-06 16:15:53 -05:00
Stephen Kelly 85a4fad78c Help: Use ``inline-literals`` to mark generator expressions. 2014-02-06 16:15:52 -05:00
Stephen Kelly a0fa025377 Help: Mark up references to NEW and OLD policy settings properly. 2014-02-06 16:15:52 -05:00
Stephen Kelly 6c02e7f427 Help: Add a style guide. 2014-02-06 16:15:50 -05:00
Stephen Kelly 91fbff8820 Help: Fix typos
Psuedo -> Pseudo

 behaviour -> behavior

CMake uses American spelling.
2014-02-06 16:14:13 -05:00
Brad King fed3f88f8c Merge topic 'doc-version-components'
52e7beb6 Help: Expand documentation of CMAKE_VERSION and related variables
2014-02-05 09:34:37 -05:00
Brad King 0bae76b439 Merge topic 'release-notes'
ccc87047 Help: Add documents to collect notes between releases
70309e70 Help: Add documents for release notes
34ea1f15 Utilities/Sphinx: Add option to build 'text' format
2014-02-05 09:34:30 -05:00
Brad King 52e7beb6ab Help: Expand documentation of CMAKE_VERSION and related variables
Describe the meaning of each version component in more detail in the
documentation of CMAKE_VERSION.  Simplify the per-component version
variable documentation by referencing the main variable.

Include information about how to compare version strings.  Also add
an historical note about the version scheme used prior to commit
v2.8.2~105^2~4 (New version scheme to support branchy workflow,
2010-04-23).
2014-02-05 09:24:41 -05:00
Brad King ccc8704777 Help: Add documents to collect notes between releases
Add a release/dev.txt file and include it from release/index.rst in
development versions.  Add a "Changes Since Release" section with a
toctree that globs adjacent "dev/*" documents.  Add a sample topic
document explaining how topic-specific release note documents work.

This approach will allow developers to write release notes for their
changes as they are made.  The release manager may then consolidate and
organize the notes for a specific release version.
2014-02-04 11:48:54 -05:00
Brad King 70309e7083 Help: Add documents for release notes
Add a release/index.rst document titled "CMake Release Notes" to hold
the toctree for release notes.  Add a "Release Notes" section to the
top-level html document index to link to the new document.
2014-02-04 11:15:12 -05:00
Alex Merry 635e96dde2 Help: Be clearer about which header files are considered for AUTOMOC
The old documentation stated that "all header files" were considered,
which was not true for any sensible definition of "all header files".
Only header files with certain names are considered.

Document the filename patterns matched for parsing.
2014-02-04 13:42:39 +01:00
Brad King 2e2552af65 Merge topic 'cmake-qt-manual'
4271a4ed Help: Add information about INTERFACE_AUTOUIC_OPTIONS.
7935f4de Help: Note that AUTOMOC consumes the defines and includes from targets.
2739a6f9 Help: Move Qt tool invocation information to a generic cmake-qt manual.
2014-02-03 11:11:14 -05:00
Stephen Kelly 4271a4ed35 Help: Add information about INTERFACE_AUTOUIC_OPTIONS. 2014-02-02 11:50:16 +01:00
Stephen Kelly 7935f4dec8 Help: Note that AUTOMOC consumes the defines and includes from targets. 2014-02-02 11:34:04 +01:00
Stephen Kelly 2739a6f97e Help: Move Qt tool invocation information to a generic cmake-qt manual.
Add an introduction about the use of different package types, and the
ability to use Qt 4 and 5 versions together in a single buildsystem.

Add a section about automatic linking of the qtmain.lib library and
how to disable it.
2014-02-02 11:28:12 +01:00
Brad King 7e142c5ac2 project: Manage VERSION variables
Teach the project() command to set variables

  {PROJECT,<PROJECT-NAME>}_VERSION{,_MAJOR,_MINOR,_PATCH,_TWEAK}

holding the project version number and its components.  Add project()
command option "VERSION" to specify the version explicitly, and default
to the empty string when it is not given.

Since this clears variables when no VERSION is given, this may change
behavior for existing projects that set the version variables themselves
prior to calling project().  Add policy CMP0048 for compatibility.

Suggested-by: Alex Neundorf <neundorf@kde.org>
2014-01-29 09:45:18 -05:00
Brad King 16d040c958 project: Add optional LANGUAGES keyword
Teach the project() command to recognize an optional "LANGUAGES"
keyword after the project name and prior to the list of languages.
Do not allow multiple copies of the keyword.  If the keyword is
specified and no languages are listed, imply NONE.
2014-01-29 09:40:51 -05:00
Brad King 00007dcc36 Help: Format project command and variable documentation
Also add document for CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE variable.
2014-01-29 09:15:20 -05:00
Stephen Kelly ed632736e3 Help: Note that std::string::clear may not be used.
As found in commit 519c0a5d (Can't use std::string::clear() in
cmake., 2012-09-15).
2014-01-27 13:02:59 -05:00
Stephen Kelly cc04bb6c16 Help: Document non-use of std::set::insert.
As found in commit 8e7c207e (Use a manual loop to insert into
set::set., 2012-09-15).
2014-01-27 13:02:59 -05:00
Brad King 0bd4157886 Merge topic 'cmake-rerun-depends'
82d43175 Allow projects to specify extra inputs to CMake
1ef444d6 Add test case to verify CMake does not re-run on first build
2014-01-22 08:47:59 -05:00
Brad King d8d3e9241e Merge topic 'cmake-E-sleep'
94389f63 cmake: Add '-E sleep' command
2014-01-22 08:47:57 -05:00
Stephen Kelly e00db59d6c QNX: Introduce QCC compiler id for that QNX platform compiler.
Introduce policy CMP0047 to control resetting the id for
compatibility.

De-duplicate content in the QNX platform file by including the GNU
one. QNX is a form of GNU platform.

Do not clear CMAKE_SHARED_LIBRARY_${lang}_FLAGS variables.  They
are populated again later by the Compiler/GNU.cmake file anyway.

Modify the CMAKE_CXX_COMPILE_OBJECT variable only when the QCC
compiler id is in use, and the language is CXX.  Use the QNX
recommended flag for QCC instead of the gcc compatible -x flag.

Populate new module files to handle system includes and depfiles
when using the QCC compiler.

Remove code which unsets the system include and depfiles related
variables.  When a GNU driver is used instead of the QCC one, the
appropriate flags will be used.  These variables were previously
cleared for lowest-common-denominator compatibility with both
drivers.
2014-01-22 08:47:32 -05:00
Brad King 82d4317503 Allow projects to specify extra inputs to CMake
Define a new 'CMAKE_CONFIGURE_DEPENDS' directory property that projects
can use to specify input files to the CMake configuration process.
Extend the RunCMake.Configure test to verify that the build system
re-runs CMake when this input changes.
2014-01-21 14:14:49 -05:00
Brad King 94389f6388 cmake: Add '-E sleep' command
Add a cmake command-line interface to provide a cross-platform 'sleep'.
2014-01-21 13:50:49 -05:00
Brad King 25d414625a Merge topic 'update-qt4-docs'
f81e67c6 Help: Update Qt4 documentation.
2014-01-20 10:59:19 -05:00
Brad King 45056264bb Help: Document CMAKE_OSX_* variables
Add documentation entries for variables

 CMAKE_OSX_ARCHITECTURES
 CMAKE_OSX_DEPLOYMENT_TARGET
 CMAKE_OSX_SYSROOT

Explain what each does and when/how they should be set.
2014-01-16 10:21:47 -05:00
Brad King c700a623c1 Merge topic 'fix-help-if-typo'
5968b6e0 Help: Fix typo in 'if()' command documentation
2014-01-16 09:24:17 -05:00
Raphael Kubo da Costa 5968b6e030 Help: Fix typo in 'if()' command documentation
s/argumemnts/arguments/
2014-01-15 15:47:59 -05:00
Stephen Kelly f81e67c616 Help: Update Qt4 documentation.
Remove independent doc listing for Qt4ConfigurationSettings, Qt4Macros
and UseQt4. These are implementation details.

Recommend the use of IMPORTED targets.

Remove references to the UseQt4 file, which is obsolete in light of
the IMPORTED targets.

Add documentation for automatic tool invocation and options.

Remove reference to variables which should not be needed in modern
implementations.
2014-01-15 16:23:51 +01:00
Rolf Eike Beer 3a0d164bb2 allow to mark a test as "Not Run" with a specific return code (#8466) 2014-01-14 23:57:40 +01:00
Brad King 071005add1 Merge topic 'support-codelite-ide-generator'
0c4e8c70 Add support for codelite IDE project fles
2014-01-13 10:28:37 -05:00
Nils Gladitz 0bf6f13b1d AddDependencies: new policy requires dependencies to exist
Added new policy CMP0046 which requires dependencies added by
add_dependencies() to actually exist.
2014-01-12 12:58:04 +01:00
Eran Ifrah 0c4e8c70a0 Add support for codelite IDE project fles 2014-01-10 09:20:11 +02:00
Brad King 98bdd78afc Merge topic 'extend-docs'
2f15a07 Help: Link to CMAKE_POLICY_DEFAULT_CMP<NNNN> in policies manual.
bb8bde3 Help: Add notes about relocatability of config-file packages.
2014-01-09 16:26:30 -05:00
Brad King e56530f612 Merge topic 'minor-cleanups'
531e40b cmTarget: Make GetSourceFiles populate an out-vector parameter.
38de54c cmGeneratorTarget: Add methods to access source file groups.
f579fe0 Help: Fix link to MAP_IMPORTED_CONFIG_<CONFIG>
590d238 cmTarget: Handle NO_SYSTEM_FROM_IMPORTED.
2014-01-09 13:54:23 -05:00
Stephen Kelly 2f15a07727 Help: Link to CMAKE_POLICY_DEFAULT_CMP<NNNN> in policies manual. 2014-01-09 19:45:08 +01:00
Stephen Kelly bb8bde35b8 Help: Add notes about relocatability of config-file packages. 2014-01-09 19:45:08 +01:00
Brad King 15562c11ef Merge topic 'policies'
73e9340 get_target_property: Error on non-existent target.
ab9f58f FindQt4: Ensure target exists before calling get_target_property.
37ebeb9 FindQt4: Fix use of get_target_property to use actual target name.
6aabb6a Genex: Use case-sensitive comparison for COMPILER_ID.
5bb53f6 cmTarget: Deprecate COMPILE_DEFINITIONS_ properties with a policy.
2014-01-09 09:37:20 -05:00
Brad King 69c366a281 Merge topic 'optional-install'
be0458c InstallRules: added new variable to disable generation of install rules
2014-01-09 09:37:17 -05:00
Stephen Kelly 73e93400e2 get_target_property: Error on non-existent target.
Introduce policy CMP0045 to control this behavior.
2014-01-08 16:41:34 +01:00
Stephen Kelly 6aabb6a62b Genex: Use case-sensitive comparison for COMPILER_ID. 2014-01-08 16:41:34 +01:00
Stephen Kelly 5bb53f6b73 cmTarget: Deprecate COMPILE_DEFINITIONS_ properties with a policy. 2014-01-08 16:41:34 +01:00
Nils Gladitz be0458c562 InstallRules: added new variable to disable generation of install rules
The boolean variable CMAKE_SKIP_INSTALL_RULES
allows disabling generation of install rules for projects which don't
want them.
2014-01-08 16:28:14 +01:00
Stephen Kelly f579fe0d7a Help: Fix link to MAP_IMPORTED_CONFIG_<CONFIG> 2014-01-08 16:06:41 +01:00
Stephen Kelly 28ffb7e0be Note how to write CMP0022 compatible code with CMake 2.8.9.
This has come up on the mailing list, and various other places.
2014-01-08 13:41:24 +01:00
Brad King 855e8759fd Merge topic 'minor-cleanups'
3917d86 Genex: Add a nullary form for CONFIG
5169130 Help: Document the target properties exported to IMPORTED targets.
ee21f1c CompatibleInterface: Test debugging of not-set property.
80e9fe9 Help: Note that language-specific 'built-ins' are set by the project command.
0b5bf8a Help: Mention CMAKE_DISABLE_FIND_PACKAGE_<PackageName> in package docs.
28c865b Tests: simplify Qt4 target usage
6cfe6b8 Help: Fix typo: 'target' -> 'target property'
b7deca4 Test: Remove obsolete commented code.
9c9f69f Genex: Make EQUAL support upper case binary literals
6eb3218 Genex: Fix case of methods in the dag checker.
646c6ec Genex: Use a preprocessor loop to implement transitive DAG check.
711fb38 Genex: List transitive properties and methods as a table, not two lists.
802a28f Add cmHasLiteralSuffix API.
2014-01-07 09:39:22 -05:00