14979 Commits

Author SHA1 Message Date
Sean McBride
8e96353fd8 Fix warnings about \brief usage
A doxygen \brief is ended with a newline, so remove a newline right
after \brief to fix clang -Wdocumentation warning.
2013-10-08 09:16:32 -04:00
Sean McBride
d993032209 cmGraphVizWriter: Add extra space in comment to suppress warning
Clang's -Wdocumentation thought it was malformed doxygen.
2013-10-08 09:16:31 -04:00
Sean McBride
6cea3eeb4b cmNewLineStyle: Remove useless semi-colon
Warned by clang.
2013-10-08 09:16:31 -04:00
Brad King
261c248254 unset: Add PARENT_SCOPE option
Add an unset() command option to remove a variable from the calling
scope, just like the set() command's PARENT_SCOPE option.  Teach the
Unset test to cover such cases.
2013-10-08 08:37:50 -04:00
Kitware Robot
cfb2c66f66 CMake Nightly Date Stamp 2013-10-08 00:01:08 -04:00
Brad King
1763c31c3b Set policy CMP0025 to NEW while building CMake itself
CMake is aware of the policy's NEW behavior and the AppleClang compiler
id.  Set the policy to NEW explicitly to avoid the warning and get the
NEW behavior.

Also teach the RunCMake test infrastructure to build tests with
-DCMAKE_POLICY_DEFAULT_CMP0025=NEW to avoid the policy warning
in test output that must match specific regular expressions.
2013-10-07 20:12:46 -04:00
Brad King
aa53ee57bb Add policy CMP0025 for Apple Clang compiler id compatibility
The parent commit introduced a separate "AppleClang" compiler id for
Apple's Clang distribution.  Add a policy in order to support projects
that expect this compiler's id to be just "Clang".  When the policy is
OLD or not set, map AppleClang back to Clang.  Continue to use the
AppleClang id internally while enabling the language, but set the
CMAKE_<LANG>_COMPILER_ID after project() or enable_language() to the
compatible value for use by project code.
2013-10-07 20:12:46 -04:00
Brad King
ab65862417 Clang: Add separate "AppleClang" compiler id
Apple distributes their own Clang build with their own version numbers
that differ from upstream Clang.  Use the __apple_build_version__ symbol
to identify the Apple Clang compiler and report the Apple Build Version
as the fourth version component in CMAKE_<LANG>_COMPILER_VERSION.  Add
Compiler/AppleClang-<lang> and Platform/Darwin-AppleClang-<lang> modules
that simply include the upstream equivalents.

Fix comparisons of CMAKE_<LANG>_COMPILER_ID to Clang in CMake's own
source and tests to account for AppleClang.
2013-10-07 20:12:46 -04:00
Stephen Kelly
ce0c303d62 install: Teach EXPORT option to handle INTERFACE_LIBRARY targets 2013-10-07 20:07:27 -04:00
Stephen Kelly
435c912848 export: Add support for INTERFACE_LIBRARY targets 2013-10-07 20:07:27 -04:00
Stephen Kelly
904ff9fe59 export: Add policy CMP0024 to disallow include() of export files
Currently, export() is executed at configure-time.

One problem with this is that certain exported properties like
the link interface may not be complete at the point the export() is
encountered leading to an incorrect or incomplete exported
representation. Additionally, the generated IMPORTED_LOCATION
property may even be incorrect if commands following the export()
have an effect on it.

Another problem is that it requires the C++ implementation of cmake
to be capable of computing the exported information at configure time.
This is a limitation on the cleanup and maintenance of the code. At
some point in the future, this limitation will be dropped and more
implementation will be moved from cmTarget to cmGeneratorTarget.
2013-10-07 19:57:06 -04:00
Stephen Kelly
fe732264e9 Add the INTERFACE_LIBRARY target type.
This target type only contains INTERFACE_* properties, so it can be
used as a structural node. The target-specific commands enforce
that they may only be used with the INTERFACE keyword when used
with INTERFACE_LIBRARY targets. The old-style target properties
matching LINK_INTERFACE_LIBRARIES_<CONFIG> are always ignored for
this target type.

The name of the INTERFACE_LIBRARY must match a validity generator
expression. The validity is similar to that of an ALIAS target,
but with the additional restriction that it may not contain
double colons. Double colons will carry the meaning of IMPORTED
or ALIAS targets in CMake 2.8.13.

An ALIAS target may be created for an INTERFACE library.

At this point it can not be exported and does not appear in the
buildsystem and project files are not created for them. That may
be added as a feature in a later commit.

The generators need some changes to handle the INTERFACE_LIBRARY
targets returned by cmComputeLinkInterface::GetItems. The Ninja
generator does not use that API, so it doesn't require changes
related to that.
2013-10-07 19:56:31 -04:00
Brad King
1d9af198a8 Merge topic 'split-cmake-E'
c04995b cmake: Split -E command implementation into separate source file
2013-10-07 15:45:15 -04:00
Brad King
4e1368c1a0 Merge topic 'IMPORTED-target-SYSTEM-includes'
a63fcbc Always consider includes from IMPORTED targets to be SYSTEM.
2013-10-07 15:45:05 -04:00
Brad King
b38425fa4b Merge topic 'private-link-depends-are-package-private'
0ad2a1c Export: Never treat private link libraries as public package dependencies.
2013-10-07 15:44:59 -04:00
Brad King
c7384a053e Merge topic 'fixDocumentationComment'
e507bf2 CPack: Fix clang -Wdocumentation warnings
2013-10-07 15:44:54 -04:00
Brad King
fe0477c2bf Merge topic 'add_cache_options_to_ccmake'
fadffab ccmake: Teach dialog to support cache STRINGS property
2013-10-07 15:44:48 -04:00
Brad King
3e2e060999 Merge topic 'generate-modern-style'
027a020 Merge branch 'test-property-genex' into generate-modern-style
33055c4 Generate modern-style cmake code.
2013-10-07 15:44:33 -04:00
Brad King
9939c99bc6 Merge topic 'test-property-genex'
6a47c37 add_test: Mention generator expressions in old-style add_test docs
d331292 cmTestGenerator: Evaluate generator expressions in test properties
6fe5c4a cmTestGenerator: Separate test properties for each configuration
2013-10-07 15:44:23 -04:00
Brad King
b53a71bb1b Merge topic 'doc-add_dependencies-direction'
1bdac7d add_dependencies: Clarify direction of dependency in docs (#14424)
2013-10-07 15:44:19 -04:00
Brad King
55af4ba26f Merge topic 'cmListFileLexer-fix-leak-on-error'
ad3d5c5 cmListFileLexer: Fix leak on error before EOF
2013-10-07 15:43:59 -04:00
Brad King
e00089388c Merge topic 'cleanup-properties'
b78bc33 Cleanup some variable documentation names
bbfff52 Remove redundant cmake::GetIsPropertyDefined method
2013-10-07 15:43:55 -04:00
Brad King
ca2c627b39 Merge topic 'mark_as_advanced'
8cff5e4 mark_as_advanced: improve documentation syntax
2013-10-07 15:43:51 -04:00
Brad King
2e7ba290a5 Merge topic 'minor_cleanup'
6931999 VS6: Add some delimiting between error message and content.
d1a5f12 cmTarget: Fix typo in comment.
961c0ba Fix comments to match the code.
7cca50c Remove unused include.
2013-10-07 15:43:23 -04:00
Brad King
6955d7bea6 Merge topic 'cmake-gui-window-settings'
81ea363 cmake-gui: save and restore the geometry and window state between sessions.
2013-10-07 15:43:09 -04:00
Brad King
31e6ee502e Merge topic 'authorative-LINK_LIBRARIES'
f01dc72 Use one authorative source of the LINK_LIBRARIES property.
2013-10-07 15:42:55 -04:00
Brad King
5f9de609dd Merge topic 'rename-genex-method'
cfae430 Genex: Rename cmGeneratorExpression::NeedsParsing to NeedsEvaluation
2013-10-07 15:42:17 -04:00
Brad King
b61960564a Merge topic 'graphviz-at-generate-time'
6cf5564 Generate graphviz files at generate time, not configure time.
2013-10-07 15:42:13 -04:00
Brad King
d673e1f38f Merge topic 'fix-style'
5916645 Fix some indentation problems in cmPolicies.
2013-10-07 15:41:54 -04:00
Brad King
1e54b380cb Merge topic 'MAP_IMPORTED_CONFIG-property-default'
fb1294c cmTarget: Add initializer for MAP_IMPORTED_CONFIG_<CONFIG>
2013-10-07 15:41:49 -04:00
Brad King
a65df441f2 Merge topic 'vs-no-regen-external-msproject'
e478f03 VS: Fix CMAKE_SUPPRESS_REGENERATION bad ZERO_CHECK dependency (#14378)
2013-10-07 15:41:44 -04:00
Brad King
058af7a6ce Merge topic 'PLATFORM_ID-genex'
dcc00ec Genex: Add the PLATFORM_ID expression.
2013-10-07 15:41:39 -04:00
Brad King
ea3bb7ed9a Merge topic 'automoc-gadget'
d4937da Search for the Q_GADGET macro for running automoc too.
2013-10-07 15:41:33 -04:00
Brad King
f4acef500b Merge topic 'ADDITIONAL_MAKE_CLEAN_FILES-genex'
d26594f Genex: Evaluate genexes for additional make clean files.
2013-10-07 15:41:29 -04:00
Brad King
f7558c5447 Merge topic 'fix-reset-compiler'
8b2a2db Fix resetting the compiler on the command line (#14366).
2013-10-07 15:41:24 -04:00
Brad King
0f32faafdb Merge topic 'remove-local-typedef'
2a7fecc remove unused local typedef
2013-10-07 15:41:12 -04:00
Brad King
d4134352ab Begin post-2.8.12 development 2013-10-07 15:24:20 -04:00
Bill Hoffman
fadffab538 ccmake: Teach dialog to support cache STRINGS property
This commit adds the ability to ccmake of cycling through cache options.
This uses the STRINGS property of the cache entry. The enter key will cycle
forward, and the right and left arrows will go up and down in the list.
2013-10-07 14:17:54 -04:00
Brad King
ffff99c58e CMake 2.8.12 2013-10-07 08:28:26 -04:00
Brad King
431eaf3783 Merge branch 'release' 2013-10-07 08:26:01 -04:00
Brad King
c515dc5748 Merge topic 'fix-install-include-dirs-processing'
6f98f4a Genex: Fix processing multiple include directories for relative paths
2013-10-07 08:26:46 -04:00
Stephen Kelly
6f98f4ac92 Genex: Fix processing multiple include directories for relative paths
Re-insert the semicolon which was removed during splitting.

Commit d777b8e7 (Genex: Allow relative paths in INSTALL_INTERFACE.,
2013-07-25) introduced the prefixItems method to allow relative paths
in the argument of the INSTALL_INTERFACE expression. That method was
buggy in that it did not re-introduce the semicolon separator in
the result.

This bug also affects paths which are already absolute in user code.
2013-10-07 08:17:12 -04:00
Kitware Robot
d85b06602a CMake Nightly Date Stamp 2013-10-07 00:01:10 -04:00
Kitware Robot
5b98d09e80 CMake Nightly Date Stamp 2013-10-06 00:01:10 -04:00
Kitware Robot
dc92741d03 CMake Nightly Date Stamp 2013-10-05 00:01:06 -04:00
Brad King
51ab85c398 CMakeDetermineCompilerId: Add notion of "simulated" id/version
Some compilers try to simulate other compilers as a drop-in replacement
supporting all the same command-line options and predefined preprocessor
macros.  In such cases it will be useful to have CMake load the compiler
information files for the simulated compiler instead of duplicating the
information.  Teach CMakeDetermineCompilerId to extract the simulated
compiler id and version when the compiler id detection provides it.
2013-10-04 13:25:06 -04:00
Kitware Robot
e20edcdb3d CMake Nightly Date Stamp 2013-10-04 00:01:07 -04:00
Brad King
c04995b46e cmake: Split -E command implementation into separate source file
Move the cmake::ExecuteCMakeCommand static method and all the static
methods it calls out of the 'cmake' class to a separate 'cmcmd' class.
Build the latter as part of the main cmake executable with cmakemain.cxx
and not in CMakeLib.  Drop unused header includes from "cmake.cxx".

By moving this implementation out of cmake.cxx we avoid carrying it
around in all the executables that use class 'cmake'.  It is needed only
for the main "cmake -E" functionality.
2013-10-03 17:30:28 -04:00
Brad King
e27523a834 Merge topic 'xcode-5'
a3194ff Xcode: Fix OBJECT library support for Xcode 5 (#14254)
dff8d11 Xcode: Drop XCODE_DEPEND_HELPER for Xcode >= 5
1180322 Xcode: Teach Tests/BuildDepends to allow LINK_DEPENDS_NO_SHARED failure
765b46d Xcode: Fix test architecture selection for Xcode >= 5
2013-10-03 08:17:43 -04:00
Kitware Robot
a9a48ff9f4 CMake Nightly Date Stamp 2013-10-03 00:01:05 -04:00