Commit Graph

15283 Commits

Author SHA1 Message Date
Brad King 277bd1db98 Drop CMAKE_STRICT mode
With our modern development workflow it is less likely a property will
be added to C++ code without documentation.  This mode only existed to
support the DocTest which had very limited coverage of the properties
anyway.
2013-10-15 10:47:38 -04:00
Brad King 07b80021aa cmDocumentation: Drop version output from usage and text help
Drop the "cmake version ..." line from the top of usage and text help
formats.  Print it only when requested with --version or similar option.
2013-10-15 10:46:54 -04:00
Brad King 6e68bc2273 cmake: Add --help-policy-list option
All the other --help-<item> options have a corresponding option
--help-<item>-list.  Add one for --help-policy.
2013-10-15 10:46:54 -04:00
Brad King c9a5f34bd7 Cleanup use of CMake version in install destinations
Factor the CMAKE_DATA_DIR, CMAKE_DOC_DIR, and CMAKE_MAN_DIR selection
out of CMakeLists.txt and into a Source/CMakeInstallDestinations.cmake
script.  Load the script from the original location of the code.

Cache the destination values as empty strings so we know if the user
sets them explicitly.  If not, then compute defaults based on the
platform and full CMake version string.  By not caching the versioned
defaults, we can change them in a single build tree as the version
changes.

Remove duplication of the install destination defaults from the
bootstrap script.  Cache empty defaults there too.  Parse from the CMake
code the default values to report in the help output.  Keep the CMake
code in a structured format to make this reliable.
2013-10-15 10:46:54 -04:00
Brad King c72f8513f7 Factor CMake version logic into dedicated module
Move logic to compute CMake_VERSION out of the top-level CMakeLists.txt
file to a dedicated Source/CMakeVersionCompute.cmake module and include
it from the original location.  This will allow it to be re-used.
2013-10-15 10:46:53 -04:00
Brad King cb51088f75 Merge topic 'doc-list-append-nothing'
eec7834 list: Fix docs for APPEND to show that elements are optional
2013-10-15 09:33:28 -04:00
Brad King 69fd12583c Merge topic 'wix-extra-sources'
2e6cadd CPackWiX: allow user supplied extra sources, objects and libraries
2013-10-15 09:33:22 -04:00
Brad King cd36929c27 Merge topic 'wix-deterministic-ids'
3a4a748 CPackWiX: generate deterministic ids for directories, components and files
2013-10-15 09:33:15 -04:00
Brad King b31ca93ba2 Merge topic 'target-LOCATION-policy'
e4e5b28 cmTarget: Deprecate the LOCATION target property with a policy.
2013-10-15 09:33:05 -04:00
Brad King 34f66ae21b Merge topic 'deprecate-COMPILE_FLAGS'
3507d5a Deprecate COMPILE_FLAGS target property.
2013-10-15 09:32:48 -04:00
Brad King 06491955eb Merge topic 'export-at-generate-time'
a4263c9 export(): Handle multiple dependent export sets.
66b290e export(): Process the export() command at generate time.
5fe5c32 export(): Set a Makefile on the cmExportBuildFileGenerator.
e383555 cmExportInstallFileGenerator: Fix comment to match reality.
2013-10-15 09:32:36 -04:00
Brad King ebffbda447 Merge topic 'fix-CMP0024-multiple-directories'
af1f698 CMP0024: Store the fact of included export in global generator.
2013-10-15 09:32:32 -04:00
Brad King 08dc9720ef Merge topic 'osx-framework-search-flag'
2e13c36 OS X: Encode -F framework search flag in per-language platform variable
2013-10-15 09:32:03 -04:00
Brad King 0408415bdd Merge branch 'upstream-kwsys' into update-kwsys 2013-10-15 09:04:01 -04:00
Kitware Robot bedb7bc526 CMake Nightly Date Stamp 2013-10-15 00:01:08 -04:00
Роман Донченко eec7834ed8 list: Fix docs for APPEND to show that elements are optional
list(APPEND) has been able to append nothing since commit a06dcdba
(Allow LIST(APPEND) command to append nothing, 2008-01-16) but the
documentation still used to imply that at least one argument is
required.
2013-10-14 11:16:59 -04:00
Kitware Robot d37c934f17 CMake Nightly Date Stamp 2013-10-14 00:01:05 -04:00
Nils Gladitz 2e6cadde13 CPackWiX: allow user supplied extra sources, objects and libraries 2013-10-13 13:16:54 +02:00
Kitware Robot de94782bc5 CMake Nightly Date Stamp 2013-10-13 00:01:06 -04:00
Nils Gladitz 3a4a74828c CPackWiX: generate deterministic ids for directories, components and files 2013-10-12 10:41:05 +02:00
Kitware Robot dca43862f1 CMake Nightly Date Stamp 2013-10-12 00:01:07 -04:00
Stephen Kelly e4e5b28c27 cmTarget: Deprecate the LOCATION target property with a policy.
The final location and name of a build-target is not determined
until generate-time. However, reading the LOCATION property from
a target is currently allowed at configure time. Apart from creating
possibly-erroneous results, this has an impact on the implementation
of cmake itself, and prevents some major cleanups from being made.

Disallow reading LOCATION from build-targets with a policy. Port some
existing uses of it in CMake itself to use the TARGET_FILE generator
expression.
2013-10-11 21:17:27 +02:00
Stephen Kelly 3507d5afdd Deprecate COMPILE_FLAGS target property.
It is succeeded by COMPILE_OPTIONS, which supports generator
expressions, is a list rather than a string, and is properly
escaped.
2013-10-11 13:40:29 +02:00
Stephen Kelly a4263c9f64 export(): Handle multiple dependent export sets.
The export-sets topic, merged in commit 49c7b649 (Merge topic
'export-sets', 2012-10-01) changed install(EXPORT) to allow
exporting targets whose dependents are exported separately
to different locations. Doing the same for export() was not
possible because the export() command was executed at
configure-time.

Now that export() is also executed at generate-time, make it
possible to export to multiple dependent export sets.
2013-10-11 12:46:10 +02:00
Stephen Kelly 66b290e7e2 export(): Process the export() command at generate time.
Make the API for adding targets string based so that it can easily
use cmGeneratorTarget.

Teach the cmIncludeCommand to generate the exported file at
configure-time instead if it is to be include()d.

The RunCMake.ExportWithoutLanguage test now needs a dummy header.h
file as expected error from export() is now reported after the
missing file error.
2013-10-11 12:46:10 +02:00
Kitware Robot 2a96e374fc CMake Nightly Date Stamp 2013-10-11 00:01:06 -04:00
Stephen Kelly 5fe5c32480 export(): Set a Makefile on the cmExportBuildFileGenerator.
This is better than the cmCommand, because the lifetime of that is
not as useful, and it is only used to report an error anyway.

In the next commit, the cmExportBuildFileGenerator will outlive the
cmCommand.
2013-10-10 16:36:26 +02:00
Brad King 2e13c36211 OS X: Encode -F framework search flag in per-language platform variable
Compilers for languages other than C and C++ on OS X may not understand
the -F framework search flag.  Create a new platform information
variable CMAKE_<LANG>_FRAMEWORK_SEARCH_FLAG to hold the flag, and set it
for C and CXX lanugages in the Platform/Darwin module.

Reported-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2013-10-10 08:33:25 -04:00
Stephen Kelly e383555838 cmExportInstallFileGenerator: Fix comment to match reality.
It was copied from cmExportBuildFileGenerator.
2013-10-10 12:02:32 +02:00
Stephen Kelly af1f698757 CMP0024: Store the fact of included export in global generator.
Storing it in the makefile means that the policy does not trigger
when include and export are in differing directories.
2013-10-10 12:01:39 +02:00
Kitware Robot 872db622d6 CMake Nightly Date Stamp 2013-10-10 00:01:11 -04:00
Brad King 5925e34107 Merge topic 'osx-cmake-app-info-plist'
dcf1b64 OS X: Set CMake.app bundle Info.plist fields (#11694)
2013-10-09 10:24:34 -04:00
Brad King be9d289fce Merge topic 'deprecation-message'
f973737 GenerateExportHeader: Port to use message(DEPRECATION)
f69606d Qt4Macros: Port to use message(DEPRECATION)
509c142 message: Add a DEPRECATION mode
2013-10-09 10:24:16 -04:00
Brad King e81b6742f7 Merge topic 'haiku-updates'
54ef2be Haiku: Include files cleanup in cmCTest
38d5555 Haiku: Remove outdated preprocessor checks
1dc61f8 Haiku: Remove use of B_COMMON_DIRECTORY
7ebc1cb Haiku: Several fixes to platform module
2013-10-09 10:23:04 -04:00
Brad King 7ed7d75a04 Merge topic 'update-kwsys'
f59693b Merge branch 'upstream-kwsys' into update-kwsys
1a39f85 KWSys 2013-10-08 (96b2f6f4)
2013-10-09 10:22:37 -04:00
Brad King 8424d569f0 Merge topic 'unset-PARENT_SCOPE'
261c248 unset: Add PARENT_SCOPE option
2013-10-09 10:22:10 -04:00
Brad King 12a7e2b10c Merge topic 'apple-clang-id'
1763c31 Set policy CMP0025 to NEW while building CMake itself
aa53ee5 Add policy CMP0025 for Apple Clang compiler id compatibility
ab65862 Clang: Add separate "AppleClang" compiler id
2013-10-09 10:21:28 -04:00
Kitware Robot 7f268c243f CMake Nightly Date Stamp 2013-10-09 00:01:16 -04:00
Brad King dcf1b64569 OS X: Set CMake.app bundle Info.plist fields (#11694)
Use the Apple Info.plist reference documentation:

 Core Foundation Keys
 https://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html

 Launch Services Keys
 https://developer.apple.com/library/mac/documentation/general/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html

 Cocoa Keys
 https://developer.apple.com/library/mac/documentation/general/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

modify the Info.plist we create for cmake-gui to add/set fields

 CFBundleShortVersionString = The release-version-number string
 LSApplicationCategoryType  = UTI that categorizes the app for the App Store
 NSHumanReadableCopyright   = Specifies the copyright notice

and drop fields

 CFBundleGetInfoString
 CFBundleLongVersionString
 LSRequiresCarbon

Also prepare to set

 CFBundleVersion            = The build-version-number string

but leave it commented out as TBD (To Be Determined) for now.

The version fields must have form <major>.<minor>.<patch> with integer
components.  While at it, rename the bundle to end in ".<patch>" instead
of "-<patch>" so that it is consistent with the version number and does
not look like a packaging increment suffix.
2013-10-08 12:32:28 -04:00
Stephen Kelly 509c142a3f message: Add a DEPRECATION mode
By default, the message is not issued. If CMAKE_ERROR_DEPRECATED
is on, the message is fatal. If CMAKE_WARN_DEPRECATED is on, the
message is a warning.
2013-10-08 18:11:22 +02:00
Brad King 40c84683aa Merge topic 'export-policy'
904ff9f export: Add policy CMP0024 to disallow include() of export files
2013-10-08 10:59:07 -04:00
Brad King 5a6c15155c Merge topic 'clang-cl-compiler'
3d8356d Clang: Support Windows variants for GNU and MSVC (#13035, #14458)
51ab85c CMakeDetermineCompilerId: Add notion of "simulated" id/version
be10826 CMakeDetermineCompilerId: Fix local var init
2013-10-08 10:58:56 -04:00
Brad King f8241136b4 Merge topic 'INTERFACE_LIBRARY-target-type'
ce0c303 install: Teach EXPORT option to handle INTERFACE_LIBRARY targets
435c912 export: Add support for INTERFACE_LIBRARY targets
fe73226 Add the INTERFACE_LIBRARY target type.
2013-10-08 10:58:40 -04:00
Adrien Destugues 54ef2bea37 Haiku: Include files cleanup in cmCTest
* No need to use a different path from the BeOS one, which still works.

Applied-by: Rolf Eike Beer <eike@sf-mail.de>
2013-10-08 09:56:16 -04:00
Adrien Destugues 1dc61f8142 Haiku: Remove use of B_COMMON_DIRECTORY
The common directory was removed in Haiku. Applications are now
installed in the system directory.

Applied-by: Rolf Eike Beer <eike@sf-mail.de>
2013-10-08 09:55:38 -04:00
Brad King 2ba45f5285 Merge topic 'Add-coverage.py-Coverage'
d0ec3a0 Adding support for the Python coverage.py tool.
2013-10-08 09:53:25 -04:00
Brad King 5bf7102505 Merge topic 'ctest_rerun_failed'
eb2decc ctest: Add --rerun-failed option
2013-10-08 09:53:17 -04:00
Brad King f59693b971 Merge branch 'upstream-kwsys' into update-kwsys 2013-10-08 09:53:13 -04:00
Brad King 5a364d8ed5 Merge topic 'clang-warnings'
af0051f curl, bzip2: Suppress warnings by setting initial value
cb4ec60 cmDocumentation: Fix a few doxygen comment errors
d915819 cm*Lexer: Populate empty doxygen @param comment
97124f9 cmTarget: Properly escape @ char in doxygen comments
8e96353 Fix warnings about \brief usage
d993032 cmGraphVizWriter: Add extra space in comment to suppress warning
6cea3ee cmNewLineStyle: Remove useless semi-colon
7e7a1c0 curl: Fix typo in header include guard
2013-10-08 09:53:13 -04:00
Patrick Reynolds d0ec3a01a6 Adding support for the Python coverage.py tool.
This assumes that coverage.py has been run in such a way to produce its
standard XML output. This uses the Cobertura schema and should be somewhat
generalizable.
2013-10-08 09:20:30 -04:00
Zack Galbreath eb2decc02d ctest: Add --rerun-failed option
Add a new command line argument to ctest.  This allows users to
rerun tests that failed during the previous call to ctest.  This
is accomplished by analyzing the most recently modified file named
"^LastTestsFailed*" in the Testing/Temporary subdirectory of the
project's binary directory.
2013-10-08 09:18:13 -04:00
Sean McBride cb4ec606a9 cmDocumentation: Fix a few doxygen comment errors
Warned by clang -Wdocumentation
2013-10-08 09:16:32 -04:00
Sean McBride d915819ad1 cm*Lexer: Populate empty doxygen @param comment
And in one case fixed wrong param name.
Warned by clang -Wdocumentation.
2013-10-08 09:16:32 -04:00
Sean McBride 97124f91a5 cmTarget: Properly escape @ char in doxygen comments
Found by clang's -Wdocumentation.
2013-10-08 09:16:32 -04:00
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 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
Brad King 431eaf3783 Merge branch 'release' 2013-10-07 08:26:01 -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
Brad King a3194ff4a7 Xcode: Fix OBJECT library support for Xcode 5 (#14254)
Xcode 2.1 through 4 supported $(CURRENT_ARCH) in a PBXFileReference
'path' value used in the "Link Binary with Libraries" build phase.
CMake uses this to reference object file locations on link lines to
bring in OBJECT library content.  However, Xcode 5 now evaluates the
$(CURRENT_ARCH) reference in this context as "undefined_arch" so the
wrong path is given to the linker.  There seems to be no alternative way
to produce an architecture-specific value in a PBXFileReference.

Fortunately Xcode 5 now also handles link dependencies for paths linked
through OTHER_LDFLAGS.  For Xcode >= 5, move the OBJECT library object
file references from the link build phase to OTHER_LDFLAGS.  We can
still show the object files in the source group listing in either case.
2013-10-02 13:03:21 -04:00
Brad King dff8d113b4 Xcode: Drop XCODE_DEPEND_HELPER for Xcode >= 5
Xcode 5.0 now computes dependencies from files linked through
OTHER_LDFLAGS, so we no longer need the XCODE_DEPEND_HELPER hack to
re-link dependents when targets change.
2013-10-02 12:49:09 -04:00
Kitware Robot c0133a58e8 CMake Nightly Date Stamp 2013-10-02 00:01:07 -04:00
Brad King c33a38fe22 CMake 2.8.12-rc4 2013-10-01 08:05:44 -04:00
Brad King e02e56c4a6 Merge topic 'fix-duplicate-custom-commands'
dccd494 Use first custom command for the same output (#14446)
2013-10-01 08:05:17 -04:00
Brad King 204a54774c Merge branch 'release' 2013-10-01 08:03:41 -04:00
Kitware Robot fa97f43c81 CMake Nightly Date Stamp 2013-10-01 00:01:06 -04:00
Brad King dccd4949c0 Use first custom command for the same output (#14446)
In buggy code like

 add_custom_command(
   OUTPUT  ${CMAKE_CURRENT_BINARY_DIR}/out.h
   MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/out.h.in
   ...)
 add_custom_command(
   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/out.h
   ...)

that has more than one rule to generate the same output CMake has always
used the first rule.  However, since commit 2268c41a (Optimize custom
command full-path dependency lookup, 2013-08-06) we update the map from
output to cmSourceFile for every rule generating an output, effectively
keeping the last command instead of the first.

Fix this regression by checking for each map update if the output
already has an entry.  If so, keep only the original entry.  The VS 8
generator triggers this with a special case for generate.stamp rules
that differ between ZERO_CHECK and normal targets, so do not warn for
now.  Leave a TODO comment for warning in the future.
2013-09-30 15:03:00 -04:00
Kitware Robot 6a3958b374 CMake Nightly Date Stamp 2013-09-30 00:01:04 -04:00
Kitware Robot 6f74212360 CMake Nightly Date Stamp 2013-09-29 00:01:07 -04:00
Kitware Robot 1bf010ae98 CMake Nightly Date Stamp 2013-09-28 00:01:10 -04:00
Kitware Robot 6ed8504ea5 CMake Nightly Date Stamp 2013-09-27 00:01:08 -04:00
Kitware Robot b89cedd112 CMake Nightly Date Stamp 2013-09-26 00:01:16 -04:00
Kitware Robot 5f8eefa301 CMake Nightly Date Stamp 2013-09-25 00:01:11 -04:00
Stephen Kelly a63fcbcb9f Always consider includes from IMPORTED targets to be SYSTEM.
Introduce a target property to control this behavior variable
to set the default value for the target property.

This does not affect try_compile runs.
2013-09-24 20:00:31 +02:00
Stephen Kelly 0ad2a1c181 Export: Never treat private link libraries as public package dependencies.
Multiple libraries in a single buildsystem can be exported to multiple
export-sets.

If a library from one export set depends on a library from
another export set, the export logic generates a check in the targets
file to verify that the target in the other export set is found. That
check is executed at downstream-find_package-time.

However, a target may depend privately on a target in another export
set. In that case, the depend used to also be listed in the required
targets in the targets file. Change the export logic to ignore the
private link entries instead.
2013-09-24 15:06:56 +02:00
Eric NOULARD e507bf28c2 CPack: Fix clang -Wdocumentation warnings 2013-09-24 14:29:24 +02:00
Kitware Robot e5538f323e CMake Nightly Date Stamp 2013-09-24 00:01:07 -04:00
Kitware Robot 475635ec0f CMake Nightly Date Stamp 2013-09-23 00:01:05 -04:00
Kitware Robot fe5e193020 CMake Nightly Date Stamp 2013-09-22 00:01:06 -04:00
Kitware Robot ee6b7a8a18 CMake Nightly Date Stamp 2013-09-21 00:01:05 -04:00
Brad King 027a0201b2 Merge branch 'test-property-genex' into generate-modern-style
Resolve conflict in Source/cmTestGenerator.cxx by taking "their" side
(test-property-genex).  It already accounts for the lower-case change in
"our" side (generate-modern-style).
2013-09-20 08:20:01 -04:00
Ben Boeckel 6a47c37ccf add_test: Mention generator expressions in old-style add_test docs
The old-style add_test() call does not support generator expressions at
all. This also applies to the properties for the test, but it is not
mentioned at all.
2013-09-20 08:18:22 -04:00
Ben Boeckel d331292c12 cmTestGenerator: Evaluate generator expressions in test properties
This is useful for cases like:

  add_test(NAME mytest COMMAND mydriver $<TARGET_FILE:myexe>)
  set_tests_properties(mytest PROPERTIES
    REQUIRED_FILES "$<TARGET_FILE:myexe>"
    WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>"
    )

In this example we require the actual test executable to exist to
run the test in addition to the test driver at argv[0].  Also the
$<CONFIGURATION> expression improves over \${CTEST_CONFIGURATION_TYPE}
because the latter is not normalized for case-sensitive filesystems.
2013-09-20 08:18:22 -04:00
Brad King 6fe5c4afc0 cmTestGenerator: Separate test properties for each configuration
Move property generation from GenerateScriptConfigs to separate copies
in GenerateOldStyle and GenerateScriptForConfig.  This causes the
per-config tests generated for the add_test(NAME) signature to each get
their own test properties.  This will allow us to later change the
property values based on the test configuration.

While at it, generate lower-case CMake code (e.g. set_tests_properties).

Inspired-by: Ben Boeckel <mathstuf@gmail.com>
2013-09-20 08:18:10 -04:00
Kitware Robot 45b182180c CMake Nightly Date Stamp 2013-09-20 00:01:10 -04:00
Brad King 1bdac7d5a6 add_dependencies: Clarify direction of dependency in docs (#14424)
State explicitly that the dependencies will build before the target.
Drop wording that may imply the opposite.

Suggested-by: Rob Stewart <robert.stewart@sig.com>
2013-09-19 14:10:23 -04:00
Kitware Robot 5e2b499485 CMake Nightly Date Stamp 2013-09-19 00:01:05 -04:00
Kitware Robot 9bcf6adc38 CMake Nightly Date Stamp 2013-09-18 00:01:06 -04:00
Brad King ad3d5c59b3 cmListFileLexer: Fix leak on error before EOF
Teach cmListFileLexerDestroy to call cmListFileLexerSetToken with a NULL
token to free the token string buffer.  Without this, if an error occurs
before the token cleanup happens when EOF is reached, then the token
string buffer may leak.
2013-09-17 10:27:08 -04:00
Brad King b78bc33311 Cleanup some variable documentation names
Remove trailing whitespace after property names.
Remove duplicate CMAKE_<LANG>_LINK_EXECUTABLE definition.
Rename "[Project name]" placeholder to "<PROJECT-NAME>".
2013-09-17 09:10:58 -04:00
Brad King bbfff5233d Remove redundant cmake::GetIsPropertyDefined method
We already have cmake::IsPropertyDefined for the same reason.
2013-09-17 09:10:31 -04:00
Rolf Eike Beer 8cff5e4474 mark_as_advanced: improve documentation syntax
Only one argument is required. Also avoid using the same variable name twice in
the input list and follow the convention used elsewhere for optional arguments.
2013-09-17 08:19:29 +02:00
Kitware Robot abfd574d05 CMake Nightly Date Stamp 2013-09-17 00:01:06 -04:00
Brad King 237aaafe80 Merge topic 'fix-genex-preprocessing-incomplete'
70089d0 genex: Fix preprocessing with incomplete content (#14410).
2013-09-16 08:55:21 -04:00
Kitware Robot c1122e1ecb CMake Nightly Date Stamp 2013-09-16 00:01:06 -04:00
Kitware Robot 3cc8a78403 CMake Nightly Date Stamp 2013-09-15 00:01:05 -04:00
Kitware Robot 396dfafa59 CMake Nightly Date Stamp 2013-09-14 00:01:07 -04:00
Stephen Kelly 70089d0769 genex: Fix preprocessing with incomplete content (#14410).
Similar incomplete generator expressions are already tested
in the GeneratorExpression unit test, but those are executed
with add_custom_target. The generator expressions in the include
directories are run through the preprocessor, whereas the ones
run through add_custom_target are not.
2013-09-13 18:21:37 +02:00
Brad King b434b0510a Merge topic 'print-CMP0022-content-conflict'
271bf10 Fix CMP0022 warning when no old-style property is set
2013-09-13 11:37:53 -04:00
Stephen Kelly 271bf10263 Fix CMP0022 warning when no old-style property is set
The string could be null at this point.
2013-09-13 11:34:08 -04:00
Kitware Robot 1fef29e4c6 CMake Nightly Date Stamp 2013-09-13 00:01:06 -04:00
Stephen Kelly 693199999a VS6: Add some delimiting between error message and content. 2013-09-12 17:04:00 +02:00
Stephen Kelly d1a5f1241d cmTarget: Fix typo in comment.
compatiblity -> compatibility
2013-09-12 16:43:05 +02:00
Brad King 4c4bafdeab Merge topic 'print-CMP0022-content-conflict'
81d2793 Add differing target property content to policy CMP0022 warning
2013-09-12 08:46:44 -04:00
Brad King 00e44b6f0d Merge topic 'vs-intel-version'
cd90a0e VS: Future-proof Intel project format selection
2013-09-12 08:46:30 -04:00
Kitware Robot 85e35a3aed CMake Nightly Date Stamp 2013-09-12 00:01:09 -04:00
Stephen Kelly 81d2793e92 Add differing target property content to policy CMP0022 warning
List the contents of the INTERFACE_LINK_LIBRARIES and the old-style
property.
2013-09-11 22:28:32 +02:00
Stephen Kelly 961c0bae89 Fix comments to match the code. 2013-09-11 15:05:05 +02:00
Stephen Kelly 7cca50cb2f Remove unused include. 2013-09-11 10:07:22 +02:00
Kitware Robot 7c7cdf7073 CMake Nightly Date Stamp 2013-09-11 00:01:05 -04:00
Clinton Stimpson 81ea3637b4 cmake-gui: save and restore the geometry and window state between sessions. 2013-09-10 14:35:11 -06:00
Brad King cd90a0eadd VS: Future-proof Intel project format selection
The version of Intel Fortran that actually uses 9.10 as a project format
is very old.  Default to the latest format version (11.0) and use the
older format only when known to be necessary.

Suggested-by: Dick Munroe <munroe@csworks.com>
2013-09-10 13:44:10 -04:00
Kitware Robot b2ce2f5e48 CMake Nightly Date Stamp 2013-09-10 00:01:10 -04:00
Stephen Kelly f01dc72c58 Use one authorative source of the LINK_LIBRARIES property.
We populate and maintain a vector of structs to keep track of
backtraces already, so no need to populate the Properties container
additionally.

For completeness, it is necessary to remove the condition for
populating the vector for only valid library names and generator
expressions. That condition is now determined when evaluating the
generator expressions.
2013-09-09 21:08:34 +02:00
Robert Maynard 323f0b5acc CMake 2.8.12-rc3 2013-09-09 13:42:48 -04:00
Robert Maynard 03c3fa68ea Merge branch 'release' 2013-09-09 13:41:05 -04:00
Brad King 1e11708a56 Merge topic 'no_track_configured_files'
38571f2 cmMakefile: Do not track CMake temporary files.
2013-09-09 11:01:56 -04:00
Robert Maynard 38571f2c94 cmMakefile: Do not track CMake temporary files.
Since commit ad502502 (cmMakefile: Track configured files so we can
regenerate them, 2013-06-18) cmMakefile::ConfigureFile records the
configured file as an output file generated by CMake.  The intention is
that for make and ninja we can re-run CMake when one of the files it
generates goes missing.  However, files configured temporarily in
CMakeTmp directories by Check* modules do not live past the CMake
invocation.

We have to also track input files to the configure command.  In theory
the input to a configure command could it self be a file that is going
to be deleted later (output from a custom command or configure_file).
2013-09-09 10:58:21 -04:00
Kitware Robot 92cc653979 CMake Nightly Date Stamp 2013-09-09 00:01:03 -04:00
Kitware Robot bbfa1b2bc5 CMake Nightly Date Stamp 2013-09-08 00:01:04 -04:00
Kitware Robot 7d2adde2af CMake Nightly Date Stamp 2013-09-07 00:01:11 -04:00
Kitware Robot 8ff2b5548c CMake Nightly Date Stamp 2013-09-06 00:01:05 -04:00
Kitware Robot e5f6bf587d CMake Nightly Date Stamp 2013-09-05 00:01:12 -04:00
Kitware Robot 0fcdef5e4d CMake Nightly Date Stamp 2013-09-04 00:01:09 -04:00
Kitware Robot dccc2b84a7 CMake Nightly Date Stamp 2013-09-03 00:01:05 -04:00
Kitware Robot 5ce44295c6 CMake Nightly Date Stamp 2013-09-02 00:01:10 -04:00
Kitware Robot b91655585e CMake Nightly Date Stamp 2013-09-01 00:01:15 -04:00
Kitware Robot ce6c7366f7 CMake Nightly Date Stamp 2013-08-31 00:01:11 -04:00
Robert Maynard ab9c7e36e5 CMake 2.8.12-rc2 2013-08-30 11:52:13 -04:00
Robert Maynard 90b51230d9 Merge branch 'release' 2013-08-30 09:27:35 -04:00
Brad King 452882ebeb Merge topic 'ctest-gtm-coverage-fileoffset-bug'
782eba3 CTest: Fix GTM coverage parsing line offset bug
2013-08-30 08:10:35 -04:00
Brad King b62042dbfb Merge topic 'normalize-system-includes-check'
5e15f39 Normalize system directories from the interface target property
2013-08-30 08:09:39 -04:00
Kitware Robot b6fe422a4c CMake Nightly Date Stamp 2013-08-30 00:01:08 -04:00
Stephen Kelly cfae430133 Genex: Rename cmGeneratorExpression::NeedsParsing to NeedsEvaluation 2013-08-29 17:53:31 +02:00
Stephen Kelly 6cf55644ef Generate graphviz files at generate time, not configure time.
The feature needs access to all link libraries. In the future that
will only be possible to calculate at generate-time.

Even when the files were generated at configure time, they were
generated after user code in CMakeLists files were generated. No
policy is needed to handle manipulation of the files from CMake
code, because that was never possible.
2013-08-29 17:18:02 +02:00
Brad King 549b95f115 Merge topic 'fix-docs-whitespace'
3580b9f Fix some whitespace errors in docs.
2013-08-29 10:43:42 -04:00
Zack Galbreath 782eba3a0c CTest: Fix GTM coverage parsing line offset bug
In cmParseGTMCoverage::ReadMCovFile, initialize the lineoffset variable.
Also set lastoffset only if the function is found (thanks to Bill
Hoffman).
2013-08-29 10:43:40 -04:00
Brad King ddff7ae0ce Merge topic 'no_track_configured_files'
0264eec cmMakefile: Do not track configured files known to be temporary
2013-08-29 10:39:10 -04:00
Stephen Kelly 5e15f39886 Normalize system directories from the interface target property
The input dir being tested is normalized, so ensure that the entries
in the vector are normalized too (eg no trailing slash).
2013-08-29 10:28:52 +02:00
Kitware Robot 4e7a4a0453 CMake Nightly Date Stamp 2013-08-29 00:01:07 -04:00
Robert Maynard 0264eec9d3 cmMakefile: Do not track configured files known to be temporary
Since commit ad502502 (cmMakefile: Track configured files so we can
regenerate them, 2013-06-18) cmMakefile::ConfigureFile records the
configured file as an output file generated by CMake.  The intention is
that for make and ninja we can re-run CMake when one of the files it
generates goes missing.  However, files configured temporarily in
CMakeTmp directories by Check* modules do not live past the CMake
invocation.

Teach cmMakefile::FinalPass to stop tracking files that don't
exist after we are finished generation.
2013-08-28 12:49:53 -04:00
Stephen Kelly 5916645064 Fix some indentation problems in cmPolicies. 2013-08-28 18:06:27 +02:00
Stephen Kelly fb1294c3a9 cmTarget: Add initializer for MAP_IMPORTED_CONFIG_<CONFIG> 2013-08-28 17:41:18 +02:00
Brad King b6f6802b3d Merge topic 'fix-MAP_IMPORTED_CONFIG-evaluation'
15d98a4 Genex: Fix evaluation of MAP_IMPORTED_CONFIG_<CONFIG>
2013-08-28 09:11:04 -04:00
Brad King e478f03469 VS: Fix CMAKE_SUPPRESS_REGENERATION bad ZERO_CHECK dependency (#14378)
When CMAKE_SUPPRESS_REGENERATION tells us not to create the ZERO_CHECK
target we should not add dependencies on it from other targets either.

Reviewed-by: Mateusz Loskot <mateusz@loskot.net>
2013-08-28 08:57:12 -04:00
Stephen Kelly dcc00ece4b Genex: Add the PLATFORM_ID expression. 2013-08-28 10:23:20 +02:00
Stephen Kelly 3580b9f338 Fix some whitespace errors in docs.
Remove trailing whitespace and add additional whitespace where
necessary.
2013-08-28 10:21:15 +02:00
Stephen Kelly d4937da71b Search for the Q_GADGET macro for running automoc too. 2013-08-28 10:18:11 +02:00
Kitware Robot 150bc7da3d CMake Nightly Date Stamp 2013-08-28 00:01:05 -04:00
Stephen Kelly d26594f390 Genex: Evaluate genexes for additional make clean files.
This is necessary because custom commands and targets may create
custom files whose names are determined by generator expressions.

For example, clang should be using $<TARGET_FILE> and $<TARGET_FILE_DIR>
instead of reverse engineering the output file name:

 http://thread.gmane.org/gmane.comp.compilers.clang.scm/80523

However, that can only be done when ADDITIONAL_MAKE_CLEAN_FILES
also accepts and evaluates generator expressions.

Similarly, KDE uses the LOCATION property where $<TARGET_FILE>
would also be better in KDE4_HANDLE_RPATH_FOR_EXECUTABLE but
also appends the result to ADDITIONAL_MAKE_CLEAN_FILES.

After this patch, both can be ported to generator expressions.
2013-08-28 00:49:29 +02:00
Stephen Kelly 15d98a42fd Genex: Fix evaluation of MAP_IMPORTED_CONFIG_<CONFIG>
Commit 10a069b5 (Genex: Fix $<CONFIG> with IMPORTED targets and
multiple locations., 2013-07-15) changed the logic here to include
handling of the MAP_IMPORTED_CONFIG_<CONFIG> target property, but
it was buggy in several ways.

Uppercase the configs in all cases, and compare the mapped configs
with the parameter to the CONFIG genex, instead of with the key of
the mapping.
2013-08-27 15:36:57 +02:00
Brad King b15ad0d1de Merge topic 'fix-install-destinations'
df62f64 Clean up install rules of CMake itself (#14371)
2013-08-27 09:13:57 -04:00
Kitware Robot 9b2940875e CMake Nightly Date Stamp 2013-08-27 00:01:06 -04:00
Brad King df62f64db7 Clean up install rules of CMake itself (#14371)
Ensure CMAKE_DATA_DIR, CMAKE_DOC_DIR, and CMAKE_MAN_DIR are always
relative paths in CMake code, and set defaults accordingly.  Use the
install() command instead of install_files() and install_targets().
This is more modern and also avoids stripping of the first character
from user-specified destinations.

While at it, fix the default destinations reported in the bootstrap
help.
2013-08-26 11:54:07 -04:00
Brad King c5baca7804 Merge topic 'find-IMPORTED-targets-for-try_compile'
cc8f796 try_compile: Extract IMPORTED targets from INTERFACE_LINK_LIBRARIES
fd4fb9e try_compile: Extract IMPORTED targets from LINK_DEPENDENT_LIBRARIES
2013-08-26 11:39:08 -04:00
Stephen Kelly cc8f79670e try_compile: Extract IMPORTED targets from INTERFACE_LINK_LIBRARIES 2013-08-26 11:37:00 -04:00
Stephen Kelly fd4fb9ef04 try_compile: Extract IMPORTED targets from LINK_DEPENDENT_LIBRARIES 2013-08-26 11:36:57 -04:00
Brad King 4d5d8df0cd Merge topic 'vs2013_toolset_14369'
3064f80 VS: Generate ToolsVersion matching each VS version
2013-08-26 10:28:52 -04:00
Brad King 757de2bb78 Merge topic 'doc-CPack-typo'
807a564 CPack: Fix a typo in documentation
2013-08-26 10:28:32 -04:00
Brad King 4923c6c724 Merge topic 'rpath-on-mac'
78cd884 OSX: Allow an empty INSTALL_NAME_DIR to override MACOSX_RPATH.
2013-08-26 10:28:10 -04:00
Brad King 32ea090a70 Merge topic 'fix-OLD-CMP0021'
eef6df5 Fix OLD behavior of CMP0021.
2013-08-26 10:27:29 -04:00
Robert Maynard 3064f80d25 VS: Generate ToolsVersion matching each VS version
The MSBuild version for each Visual Studio generator isn't 4.0.  With
Visual Studo 2013 the ToolsVersion moved from being tied to the .NET
framework and now has its own version number.
2013-08-26 10:21:16 -04:00
Kitware Robot 464456646f CMake Nightly Date Stamp 2013-08-26 00:01:04 -04:00
Kitware Robot beffeb1ffe CMake Nightly Date Stamp 2013-08-25 00:01:11 -04:00
Stephen Kelly eef6df5c7d Fix OLD behavior of CMP0021.
Exclude Ninja and Xcode from the CMP0021 test

They do not behave the same as the makefile generator with
relative paths.

Don't overwrite the header file for in-source builds.
2013-08-24 15:14:56 +02:00
Kitware Robot 898d920d54 CMake Nightly Date Stamp 2013-08-24 00:01:10 -04:00
Kitware Robot b864a5396a CMake Nightly Date Stamp 2013-08-23 00:01:05 -04:00
Stephen Kelly 33055c405e Generate modern-style cmake code.
The commits 9db31162 (Remove CMake-language block-end command
arguments, 2012-08-13) and 77543bde (Convert CMake-language
commands to lower case, 2012-08-13) changed most cmake code
to use lowercase commands and no parameters in termination
commands. However, those changes excluded cmake code generated
in c++ by cmake.

Make a similar style change to code generated by cmake.
2013-08-22 12:06:58 +02:00
Kitware Robot 374af6529a CMake Nightly Date Stamp 2013-08-22 00:01:05 -04:00
Clinton Stimpson 78cd884296 OSX: Allow an empty INSTALL_NAME_DIR to override MACOSX_RPATH.
With this, projects can enable MACOSX_RPATH by default, but still have
a way to install libraries with no install name dirs into locations
such as /usr/local/lib by setting INSTALL_NAME_DIR="".
2013-08-21 21:09:51 -06:00
Kitware Robot 7324eb896e CMake Nightly Date Stamp 2013-08-21 00:01:09 -04:00
Kitware Robot d7c9d60d9f CMake Nightly Date Stamp 2013-08-20 00:01:06 -04:00
Stephen Kelly 8b2a2db073 Fix resetting the compiler on the command line (#14366).
Convert the incoming value to a path in the same way that the
already-cached value was converted before comparison.

Do the actual comparison only one time, after both values are
normalized.
2013-08-19 14:35:14 +02:00
Kitware Robot 56cf74e734 CMake Nightly Date Stamp 2013-08-19 00:01:06 -04:00
Kitware Robot 79af005cf8 CMake Nightly Date Stamp 2013-08-18 00:01:06 -04:00
Kitware Robot 10ad7e458c CMake Nightly Date Stamp 2013-08-17 00:01:07 -04:00
Kitware Robot 31719643c5 CMake Nightly Date Stamp 2013-08-16 00:01:18 -04:00
Yury G. Kudryashov 807a564e7a CPack: Fix a typo in documentation 2013-08-15 13:11:57 -04:00
Brad King 330db97e64 CMake 2.8.12-rc1 2013-08-15 10:53:16 -04:00
Brad King 8da09f6ee1 Merge topic 'cmake-syntax'
9040ec9 Do not warn about left paren not separated by a space
2013-08-15 10:52:45 -04:00
Brad King 9040ec9117 Do not warn about left paren not separated by a space
Since commit 58e52416 (Warn about arguments not separated by whitespace,
2013-02-16) we warn about arguments not separated by spaces.  Loosen the
warning to not complain about left parens not separated by spaces from
the preceding token.  This is common in code like "if(NOT(X))".

Teach the RunCMake.Syntax test to cover cases of left parens not
separated by spaces and check that no warning appears.
2013-08-15 09:00:34 -04:00
Kitware Robot b4e5ba1717 CMake Nightly Date Stamp 2013-08-15 00:01:05 -04:00
Rolf Eike Beer 2a7fecc409 remove unused local typedef
Fixes this warning from g++ 4.8:

CMake/Source/cmDocumentation.cxx:835:23: warning: typedef 'sdoc_t' locally defined but not used [-Wunused-local-typedefs]
         SDOC_UNKNOWN} sdoc_t;
                       ^
2013-08-14 20:28:28 +02:00
Brad King 07c16eece5 Update version introducing CMP0021, CMP0022, and CMP0023
These policies will be first released in 2.8.12.
2013-08-14 09:44:00 -04:00
Brad King 3c61aec950 Merge topic 'fix-genex-segfault'
36eef30 Genex: Fix segfault when parsing ends with parameter expectation.
2013-08-14 08:48:14 -04:00
Kitware Robot 5353165a6c CMake Nightly Date Stamp 2013-08-14 00:01:14 -04:00
Stephen Kelly 36eef302c0 Genex: Fix segfault when parsing ends with parameter expectation.
The extendResult method expects a non-empty parameters vector, as
assured by the normal case. Avoid calling the method when the parser
finds an incomplete generator expression, but has already entered
the state of expecting to find parameters.
2013-08-13 13:58:39 +02:00
Kitware Robot b26f0e034a CMake Nightly Date Stamp 2013-08-13 00:01:05 -04:00
Kitware Robot 9ea7130630 CMake Nightly Date Stamp 2013-08-12 00:01:05 -04:00
Kitware Robot aeeda4852d CMake Nightly Date Stamp 2013-08-11 00:01:05 -04:00
Kitware Robot 4bc8b7abab CMake Nightly Date Stamp 2013-08-10 00:01:09 -04:00
Stephen Kelly b33c9844fa Revert "Add compiler target compile options."
This reverts commit 2d9ec1dadf.
2013-08-09 14:28:43 +02:00
Kitware Robot 702f630db8 CMake Nightly Date Stamp 2013-08-09 00:01:06 -04:00
Brad King 81aaad0c73 Merge topic 'cmake-syntax'
b93982f Merge branch 'dev/fix-variable-watch-crash' into cmake-syntax
c50f7ed cmListFileLexer: Modify flex output to avoid Borland warning
bf73264 Warn about unquoted arguments that look like long brackets
58e5241 Warn about arguments not separated by whitespace
e75b69f cmListFileCache: Convert CMake language parser to class
e945949 Add RunCMake.Syntax test cases for command invocation styles
0546484 cmListFileArgument: Generalize 'Quoted' bool to 'Delimeter' enum
28685ad cmListFileLexer: Split normal and legacy unquoted arguments
1eafa3e cmListFileLexer: Fix line number after backslash in string
f3155cd Add RunCMake.Syntax test to cover argument parsing
2013-08-08 13:55:32 -04:00
Brad King aaadc280c9 Merge topic 'dev/fix-variable-watch-crash'
6aa0c21 variable_watch: Add test for watching a variable multiple times
b86e37c variable_watch: Check newValue for NULL
f9bb20f variable_watch: Don't share memory for callbacks
05dad99 variable_watch: Fix a typo in the error message
00ce12a variable_watch: Prevent making extra entries in the watch map
34b397e variable_watch: Allow specifying the data to match in RemoveWatch
e43e207 variable_watch: Match client_data when finding duplicates
0d6acb1 variable_watch: Add a deleter for the client data
fc7c3b4 variable_watch: Store client data as pointers
2013-08-08 13:55:25 -04:00
Brad King d422ee362d Merge topic 'parallel-memcheck'
6f9aaad CTest: create one output file per memcheck (#14303)
2013-08-08 13:55:19 -04:00
Brad King 4408382f19 Merge topic 'wince800'
0416a0e VS11: Add support for Windows CE SDKs
8fcf0ab Add support for new Windows CE compiler
2013-08-08 13:55:07 -04:00
Brad King a4529584ab Merge topic 'update-kwsys'
09b147b Merge branch 'upstream-kwsys' into update-kwsys
ce6eac8 KWSys 2013-08-06 (deec6b8a)
2013-08-08 13:55:02 -04:00
Brad King f181f27cd1 Merge topic 'fix-lexer-include-order'
ae6a5ea Include cmMakefile.h before cm*Lexer.h to get stdint.h first
2013-08-08 13:54:58 -04:00
Brad King cedf4550be Merge topic 'cmake-gui-qt5-win'
8120e13 cmake-gui: Fix build rules for Qt5 on Windows
2013-08-08 13:54:54 -04:00
Brad King b93982fb64 Merge branch 'dev/fix-variable-watch-crash' into cmake-syntax
Resolve conflict in Source/cmVariableWatchCommand.cxx by integrating the
changes from both sides.
2013-08-08 13:35:15 -04:00
Ben Boeckel b86e37c84f variable_watch: Check newValue for NULL
On read access, newValue can be NULL since there is no new value, so use
the empty string instead.
2013-08-08 13:31:10 -04:00
Ben Boeckel f9bb20fe2b variable_watch: Don't share memory for callbacks
The command itself is owned by the cmMakefile class, but the
cmVariableWatch which holds a pointer to the cmVariableWatchCommand via
the client_data for the callback outlives the cmMakefile class in the Qt
GUI. This means that when the cmMakefile is destroyed, the variable
watch is still in effect, but with a stale pointer.

To fix this, each callback is now a separate entity completely and
doesn't rely on the command which spawned it at all.

An example CMakeLists.txt which demonstrates the issue (only displayed
in cmake-gui, so no tests can be written for it):

    set(var 0)
    variable_watch(var)
2013-08-08 13:31:10 -04:00
Ben Boeckel 05dad99f5a variable_watch: Fix a typo in the error message
There was no space between "callback" and the quoted command name.
2013-08-08 13:31:10 -04:00
Ben Boeckel 00ce12a334 variable_watch: Prevent making extra entries in the watch map
When removing a watch on a variable, using the operator [] on the
internal map will create an empty watch if the variable doesn't have any
existing watches. Rather than creating this empty structure in the map,
return if there isn't a watch on the variable already.
2013-08-08 13:31:09 -04:00
Ben Boeckel 34b397e8de variable_watch: Allow specifying the data to match in RemoveWatch
Now that watches are dependent on their client_data when adding, it also
makes sense to allow matching the data for removal.
2013-08-08 13:31:09 -04:00
Ben Boeckel e43e207c7b variable_watch: Match client_data when finding duplicates
If a callback has the same data as another call, we don't want to delete
the old callback. This is because if the client_data is the same, it
might get deleted causing the new client_data to be bogus. Now, AddWatch
will return true if it will use the watch, false otherwise. Callers
should check the return value to know whether client_data was adopted by
the watch or not.
2013-08-08 13:31:09 -04:00
Ben Boeckel 0d6acb1df8 variable_watch: Add a deleter for the client data
The client data is arbitrary and the callback may be called an
unspecified number of times, so the cmVariableWatch must be the one to
delete the client data in the end (if it is needed at all).
2013-08-08 13:31:09 -04:00
Ben Boeckel fc7c3b4dc8 variable_watch: Store client data as pointers
The STL containers create extra copies which makes keeping track of the
owner of the client data much messier.
2013-08-08 13:31:09 -04:00
Brad King c50f7ede20 cmListFileLexer: Modify flex output to avoid Borland warning
Remove the "yyscanner = NULL" assignment from the end of the
yylex_destroy function because Borland warns that the value is never
used.
2013-08-08 13:26:28 -04:00
Brad King bf73264694 Warn about unquoted arguments that look like long brackets
In the future CMake will introduce Lua-style long bracket syntax.
Warn about unquoted arguments that in the future will be treated
as opening long brackets.

Teach the RunCMake.Syntax test to cover such cases and ensure that the
warning appears.
2013-08-08 13:26:28 -04:00
Brad King 58e524165d Warn about arguments not separated by whitespace
Teach the lexer to return tokens for whitespace.  Teach the parser to
tolerate the space tokens where whitespace is allowed.  Also teach the
parser to diagnose and warn about cases of quoted arguments followed
immediately by another argument.  This was accidentally allowed
previously, so we only warn.

Update the RunCMake.Syntax test case StringNoSpace expected stderr to
include the warnings.
2013-08-08 13:26:27 -04:00
Brad King e75b69f55b cmListFileCache: Convert CMake language parser to class
Refactor the parser implementation into a class to make
it easier to extend.
2013-08-08 13:26:27 -04:00
Brad King 0546484e4b cmListFileArgument: Generalize 'Quoted' bool to 'Delimeter' enum
Replace the boolean value that indicates whether an argument is unquoted
or quoted with a generalized enumeration of possible argument types.
For now "Quoted" and "Unquoted" remain the only types.
2013-08-08 13:26:27 -04:00
Brad King 28685ade7a cmListFileLexer: Split normal and legacy unquoted arguments
Match legacy arguments separately.  Add macros to simplify and clarify
matching rules.
2013-08-08 13:26:26 -04:00
Brad King 1eafa3edaf cmListFileLexer: Fix line number after backslash in string
If a line inside a string ends in a backslash count the following
newline character as a line increment.  Add a test covering this case to
verify that subsequent line numbers are correct.
2013-08-08 13:26:26 -04:00
Kitware Robot 48539259ef CMake Nightly Date Stamp 2013-08-08 00:01:07 -04:00
Rolf Eike Beer 6f9aaad150 CTest: create one output file per memcheck (#14303)
The output file used for memory checker runs must be unique for every test run
in parallel, so simply make them unique for every test run. Simply use the test
index to avoid collisions.
2013-08-07 22:25:48 +02:00
Patrick Gansterer 0416a0e6d8 VS11: Add support for Windows CE SDKs
Allow additional generator platforms for the installed WinCE SDKs.
2013-08-07 10:28:30 -04:00
Brad King ae6a5ea5a2 Include cmMakefile.h before cm*Lexer.h to get stdint.h first
Some generated cm*Lexer.h headers define preprocessor macros normally
provided by <stdint.h>.  The latter is included indrectly by cmMakefile.h
since commit 2268c41a (Optimize custom command full-path dependency
lookup, 2013-08-06).  Adjust the order to avoid redefinition warnings.
2013-08-07 10:19:40 -04:00
Brad King 8120e13f40 cmake-gui: Fix build rules for Qt5 on Windows
Set policy CMP0020 to NEW to get WinMain from Qt.  Fix the documentation
custom command PATH for cmake-gui to find the Qt5 DLLs.
2013-08-07 09:59:33 -04:00
Brad King 7c9f0c664f Merge topic 'optimize-custom-command-dependencies'
2268c41 Optimize custom command full-path dependency lookup
eccb39d VS 6,7: Refactor local generators to avoid GetSourceFileWithOutput
2013-08-07 08:21:31 -04:00
Brad King 09b147b3a7 Merge branch 'upstream-kwsys' into update-kwsys 2013-08-07 08:18:32 -04:00
Kitware Robot 726fa61b59 CMake Nightly Date Stamp 2013-08-07 00:01:08 -04:00
Brad King a3b86cf711 Merge topic 'wince-entrypoint'
34969cf Fix setting of the entry point symbol for Windows CE (#14088)
5e0252c Improve const-correctness in cmVisualStudioGeneratorOptions
2013-08-06 16:55:22 -04:00
Brad King 1ed726a46c Merge topic 'vs-masm'
28e770c VS10: Add support for assembler code (#11536)
2013-08-06 16:55:10 -04:00
Brad King dba225db33 Merge topic 'vs-cleanup'
c90151b VS: Unify how the name of the generator is specified
3873d29 Fix detection of WinCE SDKs with 64bit verion of CMake
40a4302 VS12: Remove duplicated overload of UseFolderProperty()
b02f09d VS: Replace ArchitectureId with PlatformName
4b15dc8 VS: Set CMAKE_VS_PLATFORM_NAME for VS7 and VS71 too
60e568c VS10: Do not set the TargetMachine when detecting the compiler
dfbfe6f VS6: Hardcode id_machine_6 for compiler detection
2013-08-06 16:54:54 -04:00
Nicolas Despres 2268c41a05 Optimize custom command full-path dependency lookup
In the common case of custom command dependencies specified via full
path optimize the implementation of GetSourceFileWithOutput using a
(hash) map.  This is significantly faster than the existing linear
search.  In the non-full-path case fall back to the existing linear
suffix search.
2013-08-06 16:17:13 -04:00
Brad King eccb39d7f4 VS 6,7: Refactor local generators to avoid GetSourceFileWithOutput
Use the cmSourceFile returned by AddCustomCommandToOutput instead of
throwing out the return value and looking it up with
GetSourceFileWithOutput.
2013-08-06 10:20:03 -04:00
Brad King 87e0e6e497 Merge topic 'ALIAS-targets'
370bf55 Add the ALIAS target concept for libraries and executables.
2013-08-06 09:07:21 -04:00
Kitware Robot 0174133dfd CMake Nightly Date Stamp 2013-08-06 00:01:05 -04:00
Patrick Gansterer 34969cf15e Fix setting of the entry point symbol for Windows CE (#14088)
Set the EntryPointSymbol only when it has not been set before
and use the correct symbol depending on the usage of Unicode.
2013-08-05 21:24:00 +02:00
Patrick Gansterer 5e0252ce68 Improve const-correctness in cmVisualStudioGeneratorOptions
Add const qualifier to IsDebug(), UsingSBCS() and UsingUnicode().
2013-08-05 21:23:50 +02:00
Patrick Gansterer 28e770cf6e VS10: Add support for assembler code (#11536)
Use the masm BuildCustomizations, which are part of the Visual
Studio installation to allow compilation of asm files.
2013-08-05 16:34:10 +02:00
Patrick Gansterer c90151bd82 VS: Unify how the name of the generator is specified
Use the value of the provided argument instead of using a fixed
character buffer. This aligns VS10+VS11+VS12 with VS8+VS9.
2013-08-05 13:38:32 +02:00
Patrick Gansterer 3873d29d9e Fix detection of WinCE SDKs with 64bit verion of CMake
Use cmSystemTools::KeyWOW64_32 instead of KeyWOW64_Default to
make sure that the correct part of the registry is read.
2013-08-05 13:38:30 +02:00
Patrick Gansterer 40a4302414 VS12: Remove duplicated overload of UseFolderProperty()
cmGlobalVisualStudio11Generator generator already defines the same
function body, which makes the additional overload useless.
2013-08-05 13:38:28 +02:00
Patrick Gansterer b02f09d434 VS: Replace ArchitectureId with PlatformName
Since we do not need the information about the target architecture
we can use the PlatformName only to specify the this information.
This also removes setting of the MSVC_*_ARCHITECTURE_ID variable
which is not required, because this variable gets set by the
compiler detection code in CMAKE_DETERMINE_COMPILER_ID_CHECK().
2013-08-05 13:38:26 +02:00
Patrick Gansterer 4b15dc855d VS: Set CMAKE_VS_PLATFORM_NAME for VS7 and VS71 too
Move the code which sets CMAKE_VS_PLATFORM_NAME from
cmGlobalVisualStudio8Generator to cmGlobalVisualStudio7Generator.
2013-08-05 13:38:23 +02:00
Kitware Robot c359264948 CMake Nightly Date Stamp 2013-08-05 00:01:05 -04:00
Kitware Robot 7d680ca101 CMake Nightly Date Stamp 2013-08-04 00:01:05 -04:00
Kitware Robot c034b6e925 CMake Nightly Date Stamp 2013-08-03 00:01:09 -04:00
Stephen Kelly 370bf55415 Add the ALIAS target concept for libraries and executables.
* The ALIAS name must match a validity regex.
* Executables and libraries may be aliased.
* An ALIAS acts immutable. It can not be used as the lhs
  of target_link_libraries or other commands.
* An ALIAS can be used with add_custom_command, add_custom_target,
  and add_test in the same way regular targets can.
* The target of an ALIAS can be retrieved with the ALIASED_TARGET
  target property.
* An ALIAS does not appear in the generated buildsystem. It
  is kept separate from cmMakefile::Targets for that reason.
* A target may have multiple aliases.
* An ALIAS target may not itself have an alias.
* An IMPORTED target may not have an alias.
* An ALIAS may not be exported or imported.
2013-08-02 15:21:00 +02:00
Brad King 1e0539cd2c Merge topic 'vs10-include-dir-ampersand'
e7bcdf8 VS10: Escape include paths in XML project files (#14331)
2013-08-02 08:18:38 -04:00
Kitware Robot 70fccc91dd CMake Nightly Date Stamp 2013-08-02 00:01:12 -04:00
Brad King e7bcdf856e VS10: Escape include paths in XML project files (#14331)
Fix generation of the AdditionalIncludeDirectories element content to
escape for XML syntax.  We already escape content of other elements,
this one was simply missing by accident.
2013-08-01 15:00:28 -04:00
Brad King b341bf2178 Merge topic 'INCLUDES-DESTINATION-no-config'
80e652f Export: Process generator expressions from INCLUDES DESTINATION.
4355815 cmTarget: Add NAME property
2013-08-01 08:54:15 -04:00
Brad King 0920587b1d Merge topic 'minor-cleanups'
7429941 Docs: Fix typo in CMAKE_DEBUG_TARGET_PROPERTIES
2013-08-01 08:53:45 -04:00
Brad King 75af0cbfe7 Merge topic 'vs-subsystem-order'
b64e8f2 VS10: Honor user-specified /SUBSYSTEM: flag (#14326)
2013-08-01 08:53:21 -04:00
Brad King a26e7d0782 Merge topic 'target-command-allow-no-items'
c0b8682 Allow target commands to be invoked with no items (#14325).
2013-08-01 08:52:35 -04:00
Kitware Robot f0f7ee0adf CMake Nightly Date Stamp 2013-08-01 00:01:09 -04:00
Stephen Kelly 80e652f5cc Export: Process generator expressions from INCLUDES DESTINATION.
Configuration sensitive expressions are not permitted.
2013-08-01 00:37:25 +02:00
Stephen Kelly 43558156d4 cmTarget: Add NAME property
In generator expression contexts, this can be used to determine the
name of the head target in the evaluation.
2013-08-01 00:36:11 +02:00
Stephen Kelly 7429941254 Docs: Fix typo in CMAKE_DEBUG_TARGET_PROPERTIES
Introduced in commit f10e6480 (Docs: Document existing target
property debugging options., 2013-07-26)
2013-07-31 17:13:46 +02:00
Brad King b64e8f22a4 VS10: Honor user-specified /SUBSYSTEM: flag (#14326)
Use the WIN32_EXECUTABLE target property only to set the SubSystem build
attribute default.  When user-specified flags are later parsed they may
then override it.
2013-07-31 10:17:17 -04:00
Stephen Kelly c0b8682200 Allow target commands to be invoked with no items (#14325).
Code such as

 target_include_directories(foo PRIVATE ${items})

should not work or break based on whether items is defined or not.
2013-07-31 16:06:34 +02:00
Brad King e3b6ab92db Merge topic 'static_library_flags'
33e6e0b VS6: Add handling of CMAKE_*_LINKER_FLAGS_<CONFIG> variables
152dfda Add additonal tests for the linker flags
20ed496 Add documentation for the missing CMAKE_*_LINKER_FLAGS_* variables
54f7019 Add CMAKE_STATIC_LINKER_FLAGS to CMakeCommonLanguageInclude
2a43c30 Add support for CMAKE_STATIC_LINKER_FLAGS
14bbf83 Unify the way the flags of a static library are read
2013-07-31 08:49:01 -04:00
Brad King 58c5dc37d3 Merge topic '13582_configured_file_regeneration'
8fbf39a cmMakefile: Do not track configured files known to be temporary
2013-07-31 08:48:57 -04:00
Brad King b728ec3c31 Merge topic 'install-interface-includes'
72d13ff install: Remove error condition using INCLUDES DESTINATION without EXPORT.
2013-07-31 08:48:36 -04:00
Brad King 6e2da4a4d3 Merge topic 'passthru'
2b473d2 Add option to use stdout/stderr of original terminal in cmake --build
2013-07-31 08:48:19 -04:00
Patrick Gansterer 33e6e0b9c2 VS6: Add handling of CMAKE_*_LINKER_FLAGS_<CONFIG> variables
Read the content of the config specific linker flags in the
Visual Studio 6 generator too.
2013-07-31 08:41:08 -04:00
Patrick Gansterer 20ed496b6d Add documentation for the missing CMAKE_*_LINKER_FLAGS_* variables
Add CMAKE_MODULE_LINKER_FLAGS_*, CMAKE_SHARED_LINKER_FLAGS_* and
CMAKE_STATIC_LINKER_FLAGS_* to cmDocumentVariables.cxx with a
similar documentation as CMAKE_EXE_LINKER_FLAGS_*.
2013-07-31 08:41:07 -04:00
Patrick Gansterer 2a43c306fe Add support for CMAKE_STATIC_LINKER_FLAGS
Add the content of this variable to the target specific linker flags
as we do with the other CMAKE_*_LINKER_FLAGS variables already.
2013-07-31 08:41:07 -04:00
Patrick Gansterer 14bbf8340a Unify the way the flags of a static library are read
Introduce cmLocalGenerator::GetStaticLibraryFlags() to have a central
function for getting the linker flags for a given target.
2013-07-31 08:41:07 -04:00
Kitware Robot 8e475470be CMake Nightly Date Stamp 2013-07-31 00:01:05 -04:00
Brad King 8fbf39a471 cmMakefile: Do not track configured files known to be temporary
Since commit ad502502 (cmMakefile: Track configured files so we can
regenerate them, 2013-06-18) cmMakefile::ConfigureFile records the
configured file as an output file generated by CMake.  The intention is
that for make and ninja we can re-run CMake when one of the files it
generates goes missing.  However, files configured temporarily in
CMakeTmp directories by Check* modules do not live past the CMake
invocation.

Teach cmMakefile::ConfigureFile to skip tracking files with "CMakeTmp"
in their path, just like cmCoreTryCompile::TryCompileCode does to
avoid adding dependencies on temporary source files.  In the future
we will need a more general filter to avoid recording as CMake
outputs any files that do not exist at the end of generation.
2013-07-30 14:43:59 -04:00
Kitware Robot 9181a4e3b6 CMake Nightly Date Stamp 2013-07-30 00:01:10 -04:00
Brad King c18117a129 Merge topic 'fix-export-includes-crash'
f868e47 Fix crash on export of target with empty INTERFACE_INCLUDE_DIRECTORIES.
2013-07-29 09:59:29 -04:00
Brad King 63728df6e5 Merge topic 'memcheck_pre_post_args'
c0756b6 Revert "CTest: fix pre and post test commands with spaces" (#13887)
2013-07-29 09:55:27 -04:00
Brad King 3c683d788d Merge topic 'rpath-on-mac'
84698ab OS X: If necessary, use xcrun to help find otool used to query install names.
2013-07-29 09:55:15 -04:00
Brad King 64bb8f4d19 Merge topic 'DocumentGraphvisOptions'
692ecf4 graphvizoptions: add copyright notice
ee32673 Add documentation for the --graphviz support
2013-07-29 09:55:08 -04:00
Brad King 50c5eb508c Merge topic 'ninja_bad_cmcldeps_paths'
9275554 Ninja: Update BuildDepends test to verify cmcldeps depfiles.
6fa9d0a Ninja: Make cmcldeps depfile output more consistent with 'ninja -t msvc'
2013-07-29 09:54:48 -04:00
Brad King 3dace78c2c Merge topic 'minor-cleanups'
b8dc7fa Genex: Disallow LINKER_LANGUAGE only when used on a static library.
c8a10ba cmTarget: Fix iface libraries and languages for static libraries.
f94bdb3 cmTarget: Remove duplicates when printing traces of tll signatures
ff3d5fa Export: Fix typo of LINK_INTERFACE_LIBRARIES.
79a7a81 Docs: Document variables for default visibility values.
6f6391b Docs: Generalize and de-duplicate VISIBILITY_PREFIX docs.
d8cb47f Docs: Trim trailing whitespace in generated doc.
f10e648 Docs: Document existing target property debugging options.
4f4d69f Qt4Macros: Simplify some variable population.
a413a40 Qt4Macros: Remove undefined varible use.
b60a29e Qt4Macros: Remove unneeded generate CONDITION.
e454cba Docs: Document file(GENERATE) CONDITION as optional.
2013-07-29 09:54:34 -04:00
Stephen Kelly f868e47236 Fix crash on export of target with empty INTERFACE_INCLUDE_DIRECTORIES.
The new feature of install(TARGETS ... INCLUDES DESTINATION) introduced
in commit 650e61f8 (Add a convenient way to add the includes install
dir to the INTERFACE., 2013-01-05) introduced this crash. If the
new feature is used with a target which has no
INTERFACE_INCLUDE_DIRECTORIES, a segfault occurred.
2013-07-29 15:50:24 +02:00
Stephen Kelly 72d13ff482 install: Remove error condition using INCLUDES DESTINATION without EXPORT.
Commit 650e61f8 (Add a convenient way to add the includes install
dir to the INTERFACE., 2013-01-05) introduced an error case for
using the install(TARGETS) command with specified INCLUDES DESTINATION,
but no specified EXPORT set.

It is convenient to use a variable to set the various destinations
for different outputs (as KDE does), and some targets such as
executables are installed but not exported. This was triggering
the error case, but as it is a common case, remove the error.
2013-07-29 15:16:15 +02:00
Patrick Gansterer 2b473d2eaa Add option to use stdout/stderr of original terminal in cmake --build
Pass the original file handles to the native tool when using the
--use-stderr option in the build command. This enables the
usage of advanced terminal features like colored output.
2013-07-29 08:52:54 +02:00
Kitware Robot fc1708ac99 CMake Nightly Date Stamp 2013-07-29 00:01:03 -04:00
Kitware Robot 8d3b65346f CMake Nightly Date Stamp 2013-07-28 00:01:04 -04:00
Rolf Eike Beer c0756b6dd6 Revert "CTest: fix pre and post test commands with spaces" (#13887)
This reverts commit 6187876dea.

It was actually possible before to have paths with spaces in them, the spaces
just need to be quoted. This way spaces will work as argument separators.
2013-07-27 22:05:47 +02:00
Clinton Stimpson 84698abb51 OS X: If necessary, use xcrun to help find otool used to query install names.
This fixes querying for @rpath install names when using Xcode without
the command line tools installed.
2013-07-26 22:38:57 -06:00
Kitware Robot 46558d290b CMake Nightly Date Stamp 2013-07-27 00:01:11 -04:00
Alex Neundorf ee32673c7d Add documentation for the --graphviz support
This patch adds Modules/CMakeGraphVizOptions.cmake, which is used
only for generating documentation for the --graphviz support.

Alex
2013-07-26 22:43:42 +02:00
Stephen Kelly b8dc7fad23 Genex: Disallow LINKER_LANGUAGE only when used on a static library.
For shared libraries and executables, the linker_language is
indepenedent of the linked libraries.
2013-07-26 16:58:25 +02:00
Reid Kleckner 6fa9d0ab40 Ninja: Make cmcldeps depfile output more consistent with 'ninja -t msvc'
Ninja relies on the generator to produce paths that match up with the
paths used in the build.ninja file, which are spelled with backslashes.
Therefore, cmcldeps should canonicalize depfile paths to use backslashes
and relativize paths to the build directory.
2013-07-26 10:12:03 -04:00
Stephen Kelly c8a10ba9ad cmTarget: Fix iface libraries and languages for static libraries. 2013-07-26 15:15:42 +02:00
Brad King 87402c995e Merge topic 'tid-system-argument'
9b9a596 cmTarget: Fix property name typo in docs.
2013-07-26 09:01:22 -04:00
Brad King dda6e93666 Merge topic 'install-interface-relative'
d777b8e Genex: Allow relative paths in INSTALL_INTERFACE.
2013-07-26 09:01:19 -04:00
Brad King c82b1cbe83 Merge topic 'install-interface-includes'
650e61f Add a convenient way to add the includes install dir to the INTERFACE.
2013-07-26 09:01:06 -04:00
Brad King a883bc0a3b Merge topic 'sha2-avoid-type-pun'
6a365d0 sha2: Avoid type-punned pointer dereference (#14314)
2013-07-26 09:00:45 -04:00
Stephen Kelly f94bdb3deb cmTarget: Remove duplicates when printing traces of tll signatures 2013-07-26 14:05:25 +02:00
Stephen Kelly ff3d5fae5d Export: Fix typo of LINK_INTERFACE_LIBRARIES.
Refer correctly to the old property, not the new one.
2013-07-26 13:10:06 +02:00
Stephen Kelly 79a7a81327 Docs: Document variables for default visibility values. 2013-07-26 09:37:12 +02:00
Stephen Kelly 6f6391b771 Docs: Generalize and de-duplicate VISIBILITY_PREFIX docs. 2013-07-26 09:37:12 +02:00
Stephen Kelly d8cb47f23c Docs: Trim trailing whitespace in generated doc. 2013-07-26 09:37:12 +02:00
Stephen Kelly f10e64804e Docs: Document existing target property debugging options. 2013-07-26 09:37:12 +02:00
Kitware Robot 4c2803358d CMake Nightly Date Stamp 2013-07-26 00:01:07 -04:00
Stephen Kelly e454cba292 Docs: Document file(GENERATE) CONDITION as optional. 2013-07-26 00:21:50 +02:00
Brad King 6a365d0901 sha2: Avoid type-punned pointer dereference (#14314)
GCC warns:

 dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

on constructs like

 *(sha_word64*)&var =

so use memcpy to perform such assignments instead.
2013-07-25 13:10:13 -04:00
Stephen Kelly 9b9a596004 cmTarget: Fix property name typo in docs. 2013-07-25 15:06:02 +02:00
Ben Boeckel 5837f19690 export: Error when exporting a target without a language
First, it prevents a NULL dereference and second it reiterates that
targets without languages are not supported by CMake.

Add a RunCMake.ExportWithoutLanguage test exporting a library without a
languages.
2013-07-25 08:44:57 -04:00
Brad King 2f8dace125 Merge topic 'tll-new-signatures'
b655865 target_link_libraries: Add PUBLIC/PRIVATE/INTERFACE keyword signature
2013-07-25 08:37:16 -04:00
Brad King 6b92e93b6d Merge topic 'doc-CMAKE_lang_FLAGS'
41bb95f Document CMAKE_<LANG>_FLAGS variable (#14305)
2013-07-25 08:36:55 -04:00
Stephen Kelly d777b8e716 Genex: Allow relative paths in INSTALL_INTERFACE.
These paths can be prepended with the ${_IMPORT_PREFIX} generated
in the export file.

Such relative paths were previously an error.
2013-07-25 14:31:22 +02:00
Kitware Robot 6b184d1607 CMake Nightly Date Stamp 2013-07-25 00:01:05 -04:00
Stephen Kelly b655865bbf target_link_libraries: Add PUBLIC/PRIVATE/INTERFACE keyword signature
Add a new signature to help populate INTERFACE_LINK_LIBRARIES and
LINK_LIBRARIES cleanly in a single call.  Add policy CMP0023 to control
whether the keyword signatures can be mixed with uses of the plain
signatures on the same target.
2013-07-24 11:52:44 -04:00
Brad King 828ddb6813 Merge topic 'framework-interface-includes'
f5ca872 Use linked frameworks as a source of include directories.
2013-07-24 11:50:49 -04:00
Stephen Kelly f5ca872e8b Use linked frameworks as a source of include directories. 2013-07-24 11:49:06 -04:00
Stephen Kelly 650e61f833 Add a convenient way to add the includes install dir to the INTERFACE.
Export the INCLUDES DESTINATION without appending to the
INTERFACE_INCLUDE_DIRECTORIES of the target itself. That way, a target
can be exported multiple times with different INCLUDES DESTINATION
without unintended cross-pollution of export sets.
2013-07-24 17:32:58 +02:00
Brad King e31c4bd9a6 Merge topic 'dev/property-append-with-empty-string'
31bd83e set_property: Do not remove a property when APPENDing nothing
2013-07-24 11:02:44 -04:00
Brad King e6f93dc560 Merge topic 'windows_ninja_duplicate_paths'
a11da72 Ninja: Properly convert all paths to unix style before we do set intersection.
2013-07-24 11:02:33 -04:00
Brad King a52f00e07c Merge topic 'minor-cleanups'
8f5b402 Remove TODO to uniq COMPILE_OPTIONS
5fb58b8 Don't add trailing whitespace to error message.
2013-07-24 11:02:24 -04:00
Brad King 571d050415 Merge topic 'fix-mapped-config-genex'
10a069b Genex: Fix $<CONFIG> with IMPORTED targets and multiple locations.
2013-07-24 11:02:19 -04:00
Brad King 6077847edc Merge topic 'remove-LINK_LANGUAGE-genex'
4f6bd70 Remove the LINK_LANGUAGE generator expression.
2013-07-24 11:02:14 -04:00
Ben Boeckel 31bd83e9fc set_property: Do not remove a property when APPENDing nothing 2013-07-24 10:50:15 -04:00
Stephen Kelly 10a069b504 Genex: Fix $<CONFIG> with IMPORTED targets and multiple locations.
The old code checked only that there was a LOCATION for the
specified config, but did not check whether the config actually
mapped.

Task-number: 14292
2013-07-24 10:43:02 -04:00
Stephen Kelly 4f6bd7022b Remove the LINK_LANGUAGE generator expression.
It accepted an optional argument to test for equality, but no way
to get the linker language of a particular target.

TARGET_PROPERTY provides this flexibility and STREQUAL provides
the necessary API for equality test.

Extend the CompileDefinitions test to cover accessing the
property of another target.
2013-07-24 10:40:00 -04:00
Sebastian Leske 41bb95fc67 Document CMAKE_<LANG>_FLAGS variable (#14305)
We already document the variables CMAKE_<LANG>_FLAGS_{DEBUG, MINSIZEREL,
RELEASE, RELWITHDEBINFO}. However, CMAKE_<LANG>_FLAGS is not documented,
even though it's available (and useful).
2013-07-24 10:30:34 -04:00
Kitware Robot 52daa0ea34 CMake Nightly Date Stamp 2013-07-24 00:01:04 -04:00
Kitware Robot ffe79b582f CMake Nightly Date Stamp 2013-07-23 00:01:09 -04:00
Robert Maynard a11da72e7b Ninja: Properly convert all paths to unix style before we do set intersection.
On windows we had a subset of the paths as unix style and a subset as windows
so when doing the set intersection it resulted in the same file being
found twice.
2013-07-22 10:42:37 -04:00
Brad King cb57ce249e Merge topic 'AddCommentsToExportsFile'
4b1919f ExportTargets: add one more comment to the generated file.
2013-07-22 09:48:51 -04:00
Brad King 8521a909ba Merge topic 'rpath-on-mac'
603bc59 OS X: Fix regression handling frameworks for Ninja
e645ff0 OS X: Enable rpath support on Mac OS X when find_library() is used.
2013-07-22 09:48:44 -04:00
Brad King 29859c09af Merge topic 'cpack-wix'
bf23891 CPackWIX: Add support for custom WiX templates
155bb01 CMakeCPack: Provide an upgrade guid for WiX
bfa2e29 CPackWIX: Add option to specify the language(s) of the installer
6e51ea9 CPackWIX: Handle multiple shortcuts in the start menu
6d77e1a CPackWIX: Fix MSI package layout regression from parent
8c0e325 CPackWIX: Handle CPACK_PACKAGE_EXECUTABLES (#13967)
2013-07-22 09:48:32 -04:00
Clinton Stimpson 603bc5998f OS X: Fix regression handling frameworks for Ninja
Fix a regression created by commit 373faae5 (Refactor how bundles and
frameworks are supported, 2013-05-05).

Since the ninja file isn't aware of how framework symlinks work, we
suppress symlink creation and let cmOSXBundleGenerator handle it.  Also,
use the real name of framework library in build rules as was done
before, instead of the symlink.
2013-07-22 09:40:11 -04:00
Kitware Robot 7dcf63e8a5 CMake Nightly Date Stamp 2013-07-22 00:01:03 -04:00
Kitware Robot 56e6538400 CMake Nightly Date Stamp 2013-07-21 00:01:03 -04:00
Kitware Robot 5f4daff8f5 CMake Nightly Date Stamp 2013-07-20 00:01:04 -04:00
Alex Neundorf 4b1919f73e ExportTargets: add one more comment to the generated file.
This patch adds a comment above the block which protects
the exported targets file against multiple inclusion, to make
the file easier to understand for readers.

Alex
2013-07-19 22:57:33 +02:00
Adam J. Weigold bf23891942 CPackWIX: Add support for custom WiX templates
WiX provides a lot of functionality for installers that cannot be
supported (easily) in the default WIX.template.in file.

For most users, the default template should be fine.  However if users
want to produce merge modules, include custom actions, etc, this new
option allows for a hook into how the wxs is produced.
2013-07-19 14:50:43 -04:00
Richard Ulrich bfa2e299ae CPackWIX: Add option to specify the language(s) of the installer
Add option "CPACK_WIX_CULTURES".
2013-07-19 14:50:43 -04:00
Richard Ulrich 6e51ea9870 CPackWIX: Handle multiple shortcuts in the start menu 2013-07-19 14:50:42 -04:00
Ian Monroe 6d77e1ab3f CPackWIX: Fix MSI package layout regression from parent
The parent commit added a regression where if the install directory had:

  parent
    child A
    child B

the produced MSI would install:

  parent
    child A
       child B
2013-07-19 10:49:20 -04:00
Fredrik Axelsson 8c0e32550c CPackWIX: Handle CPACK_PACKAGE_EXECUTABLES (#13967)
Add start menu items including an uninstall shortcut.  Add variable
CPACK_WIX_PROGRAM_MENU_FOLDER to configure folder name.
2013-07-19 10:49:00 -04:00
Kitware Robot e3c9be07b2 CMake Nightly Date Stamp 2013-07-19 00:01:10 -04:00
Brad King b28360c780 Merge topic 'custom-command-assignment'
17c841c add_custom_command: Manage backtrace memory correctly (#14299)
2013-07-18 10:12:08 -04:00
Brad King 085ed41f65 Merge topic 'doc-add_test-names'
d017058 add_test: Document test name restrictions (#14298)
2013-07-18 10:11:55 -04:00
Stephen Kelly 8f5b402aa2 Remove TODO to uniq COMPILE_OPTIONS
Compile options should not be passed through a uniq filter because
repeated use of an option may have siginificance.
2013-07-18 11:49:11 +02:00
Stephen Kelly 5fb58b8686 Don't add trailing whitespace to error message. 2013-07-18 11:46:50 +02:00
Kitware Robot beffb88da9 CMake Nightly Date Stamp 2013-07-18 00:01:08 -04:00
Brad King 17c841c42d add_custom_command: Manage backtrace memory correctly (#14299)
Add an assignment operator to cmCustomCommand to copy the Backtrace
member pointee and avoid multiple-free on destruction.

Reported-by: Vitezslav Cizek <vcizek@suse.cz>
2013-07-17 11:18:06 -04:00
Brad King d0170584c5 add_test: Document test name restrictions (#14298) 2013-07-17 08:11:37 -04:00
Kitware Robot 1c7dd4da31 CMake Nightly Date Stamp 2013-07-17 00:01:05 -04:00
Brad King ff6de6d325 Merge topic 'drop-old-vs-dependency'
4bb6e24 VS,Xcode: Drop incorrect legacy dependency trace (#14291)
2013-07-16 13:59:35 -04:00
Brad King ddfd3b85df Merge topic 'cppcheck-fixes'
a20c819 cmake: Fix resource leak reported by cppcheck
c8adab9 cmcurl: Fix resource leak reported by cppcheck
499531c libarchive: Fix free() order to avoid accessing freed memory
3b849a7 ccmake: Add missing initializers reported by cppcheck
2013-07-16 13:59:30 -04:00
Brad King 3573a94d72 Merge topic 'vs-no-indirect-output'
45d2966 VS: Avoid leaking child process output back to IDE (#14266)
2013-07-16 13:59:17 -04:00
Brad King 41a2fb5ba0 Merge topic 'tid-system-argument'
9cf3547 Add the INTERFACE_SYSTEM_INCLUDE_DIRECTORIES target property.
1925cff Add a SYSTEM parameter to target_include_directories (#14180)
286f227 Extend the cmTargetPropCommandBase interface property handling.
83498d4 Store system include directories in the cmTarget.
f1fcbe3 Add Target API to determine if an include is a system include.
2679a34 Remove unused variable.
2013-07-16 13:59:07 -04:00
Brad King 45d2966dcc VS: Avoid leaking child process output back to IDE (#14266)
The VS IDE sets the environment variable VS_UNICODE_OUTPUT when
executing build rules in order to tell MS tools to report output through
a back door instead of through stdout/stderr.  Unset this variable so
that CMake can capture or properly redirect all output from processes it
runs even when running inside a VS IDE build environment.

This generalizes the special cases fixed by commit 80d045b0 (When
GetPrerequisites.cmake runs dumpbin while running inside the VS IDE...,
2008-05-01) and commit 44aff73d (ExternalProject: Avoid bleed-through
output when logging, 2011-01-06), so drop special handling of
VS_UNICODE_OUTPUT in those instances.
2013-07-16 13:48:10 -04:00
Stephen Kelly 9cf3547e1c Add the INTERFACE_SYSTEM_INCLUDE_DIRECTORIES target property.
Unlike other target properties, this does not have a corresponding
non-INTERFACE variant.

This allows propagation of system attribute on include directories
from link dependents.
2013-07-16 13:44:57 -04:00
Clinton Stimpson e645ff0b10 OS X: Enable rpath support on Mac OS X when find_library() is used. 2013-07-15 22:39:08 -06:00
Kitware Robot 029e836a21 CMake Nightly Date Stamp 2013-07-16 00:01:05 -04:00
Brad King 4bb6e24809 VS,Xcode: Drop incorrect legacy dependency trace (#14291)
Drop the "vsProjectFile" argument from cmTarget::TraceDependencies.  It
appears to be the modern equivalent to a hunk added in commit ba68f771
(...added new custom command support, 2003-06-03):

 +  name = libName;
 +  name += ".dsp.cmake";
 +  srcFilesToProcess.push(name);

but was broken by refactoring at some point.  The current behavior tries
to trace dependencies on a source file named the same as a target, which
makes no sense.  Furthermore, in code of the form

 add_executable(foo foo.c)
 add_custom_command(OUTPUT "${somewhere}/foo" ... DEPENDS foo)

the "vsProjectFile" value "foo" matches source "${somewhere}/foo.rule"
generated to hold the custom command and causes the command to be added
to the "foo" target incorrectly.

Simply drop the incorrect source file trace and supporting logic.
2013-07-15 13:17:29 -04:00
Brad King a20c819f63 cmake: Fix resource leak reported by cppcheck
Return early in cmake::ReportUndefinedPropertyAccesses if there is no
global generator instead of opening a file and leaking the descriptor.

Reported-by: Ömer Fadıl USTA <omerusta@gmail.com>
2013-07-15 10:20:00 -04:00
Ömer Fadıl USTA 3b849a7ae9 ccmake: Add missing initializers reported by cppcheck
The return statement uses d1, d2, d3, and d4 variables but the code
which initialize them inside a if statement and not always this if
statement is corrent.  On the other hand these variables are using for
return statement and needed to be initialized.  A trivial fix to pervent
some compilers will give build error.

Reviewed-by: Igor Murzov <e-mail@date.by>
2013-07-15 10:20:00 -04:00
Brad King b94e726a83 Merge topic 'doc-deprecation-variables'
c64326b Document some variables for deprecation control.
2013-07-15 09:43:06 -04:00
Brad King d5d54b4629 Merge topic 'compile-defs-debugging'
d7dd010 Add target property debugging for COMPILE_DEFINITIONS
1841215 Refactor cmTarget::GetCompileDefinitions to use an out-vector, not a string.
afc9243 Add an overload of cmIDEOptions::AddDefines taking a vector of strings.
d95651e Overload cmLocalGenerator::AppendDefines to add a list.
2013-07-15 09:34:00 -04:00