13777 Commits

Author SHA1 Message Date
Stephen Kelly
18a3195ad5 Keep track of INCLUDE_DIRECTORIES as a vector of structs.
The struct can keep track of where the include came from, which gives
us proper backtraces.
2013-01-03 13:45:40 -05:00
Stephen Kelly
3096202932 Make targets depend on the link interface of their dependees. 2013-01-03 13:31:50 -05:00
Kitware Robot
510c9cfe03 CMake Nightly Date Stamp 2013-01-03 00:01:17 -05:00
Kitware Robot
953043e679 CMake Nightly Date Stamp 2013-01-02 00:01:16 -05:00
Kitware Robot
74be149bb3 CMake Nightly Date Stamp 2013-01-01 00:01:05 -05:00
Kitware Robot
34a8c82378 CMake Nightly Date Stamp 2012-12-31 00:01:17 -05:00
Kitware Robot
2716d8976f CMake Nightly Date Stamp 2012-12-30 00:01:07 -05:00
Kitware Robot
6bd93ea240 CMake Nightly Date Stamp 2012-12-29 00:01:11 -05:00
Eric LaFranchi
3793dca08a CPack: WIX Product Icon, UI Banner, UI Dialog support (#13789) 2012-12-28 15:32:15 -05:00
Kitware Robot
fb2db0e470 CMake Nightly Date Stamp 2012-12-28 00:01:02 -05:00
Kitware Robot
539c222de0 CMake Nightly Date Stamp 2012-12-27 00:01:14 -05:00
Kitware Robot
94933a5ec9 CMake Nightly Date Stamp 2012-12-26 00:01:05 -05:00
Kitware Robot
a73294b908 CMake Nightly Date Stamp 2012-12-25 00:01:07 -05:00
Kitware Robot
4d580517a9 CMake Nightly Date Stamp 2012-12-24 00:01:20 -05:00
Stephen Kelly
7d736af60e Replace some 'if' with 'else if'
For consistency with the rest of the method.
2012-12-23 16:37:01 +01:00
Kitware Robot
00deb127be CMake Nightly Date Stamp 2012-12-23 00:01:21 -05:00
Brad King
81c0be4f00 Merge branch 'upstream-kwsys' into update-kwsys 2012-12-22 09:52:05 -05:00
Stephen Kelly
310455cc18 Fix some warnings from -Wundef
Other warnings come from kwsys, so the flag can't be enabled.
2012-12-22 12:47:54 +01:00
Kitware Robot
c95a13ecb9 CMake Nightly Date Stamp 2012-12-22 00:01:12 -05:00
Kitware Robot
0d3b89ed76 CMake Nightly Date Stamp 2012-12-21 00:01:16 -05:00
Stephen Kelly
76ea420fb9 Use cmsys::auto_ptr to manage cmCompiledGeneratorExpressions
The compiled generator expressions need to outlive the creating
type. For the same reason, store the input string in a std::string.
2012-12-20 12:17:37 +01:00
Kitware Robot
e1d211abba CMake Nightly Date Stamp 2012-12-20 00:01:02 -05:00
Brad King
e33fa5b678 Merge branch 'upstream-kwsys' into update-kwsys 2012-12-19 08:09:36 -05:00
Kitware Robot
5ac16ea6e4 CMake Nightly Date Stamp 2012-12-19 00:01:09 -05:00
David Cole
12e10272b2 Merge topic 'doc-implicit-link-dirs'
017d90c Documentation: Clarify handling of implicit link directories
2012-12-18 13:55:48 -05:00
Casey Goodlett
324780697c CTest: Prevent creation of unbounded number of tests in ctest (#12904)
Note it is still possible for CTest to start more than the number of
processes specified by PARALLEL_LEVEL, but this prevents the number of
tests to start from being unbounded because of overflow.
2012-12-18 13:30:34 -05:00
Kitware Robot
8931dd6e74 CMake Nightly Date Stamp 2012-12-18 00:01:03 -05:00
Kitware Robot
a3f63661e6 CMake Nightly Date Stamp 2012-12-17 00:01:05 -05:00
Kitware Robot
d8dcd63910 CMake Nightly Date Stamp 2012-12-16 00:01:04 -05:00
Kitware Robot
a076b256c4 CMake Nightly Date Stamp 2012-12-15 00:01:04 -05:00
Kitware Robot
34ecf7088b CMake Nightly Date Stamp 2012-12-14 00:01:02 -05:00
Kitware Robot
f6a9a64f16 CMake Nightly Date Stamp 2012-12-13 00:01:03 -05:00
Kitware Robot
daf17b13d5 CMake Nightly Date Stamp 2012-12-12 00:01:06 -05:00
Brad King
cc676c3a08 OS X: Detect implicit linker framework search paths
Previously we hard-coded a list of implicit framework directories but
did not account for CMAKE_OSX_SYSROOT or for changes to the list across
OS X versions.  Instead we should automatically detect the framework
directories for the active toolchain.

The parent commit added the "-Wl,-v" option to ask "ld" to print its
implicit directories.  It displays a block such as:

 Framework search paths:
	/...

Parse this block to extract the list of framework directories.

Detection may fail on toolchains that do not list their framework
directories, such as older OS X linkers.  Always treat the paths

 <sdk>/Library/Frameworks
 <sdk>/System/Library/Frameworks
 <sdk>/Network/Library/Frameworks # Older OS X only
 /System/Library/Frameworks

as implicit.  Note that /System/Library/Frameworks should always be
considered implicit so that frameworks CMake finds there will not
override the SDK copies.
2012-12-11 15:15:52 -05:00
Brad King
ba58d0c06f OS X: Link with all framework search paths, not just the last
Refactoring in commit 8d674e78 (Ninja: move -LIBPATH behind -link
option, 2012-09-26) accidentally added code that overwrites the
framework search path flags on each iteration instead of appending.
Change '=' to '+=' to fix it.  This affects Makefile and Ninja
generators.
2012-12-11 15:15:51 -05:00
Brad King
017d90c500 Documentation: Clarify handling of implicit link directories
Extend documentation for CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES to
explain how it is used by CMake and how it can be influenced by
environment variables.

Inspired-by: Alex Neundorf <neundorf@kde.org>
2012-12-11 14:00:23 -05:00
David Cole
d0369a9888 Merge topic 'fix-13657-more-gcov47-output'
61ace1d CTest: Coverage handler: expect certain output lines from gcov 4.7 (#13657)
2012-12-11 13:44:33 -05:00
David Cole
bc9dcadf19 Merge topic 'xcode-framework-paths'
f0d9385 Makefile: Use modern link information for framework search paths
2bc22bd Xcode: Add frameworks search paths from link dependeny closure (#13397)
2012-12-11 13:44:25 -05:00
David Cole
7b20f893c2 Merge topic 'TheRealAutomocIncludeDirFix'
acc2240 Automoc: get include dirs without stripping implicit include dirs off
2012-12-11 13:44:17 -05:00
David Cole
28c6d32688 Merge topic 'skip-variable-re-expansion'
711b63f Add policy CMP0019 to skip include/link variable re-expansion
2012-12-11 13:44:08 -05:00
David Cole
b575eadcda Merge topic 'add-timestamp-subcommands'
12d87c0 CMake: Fix dashboard build errors and warnings
e28ce24 CMake: Fix dashboard test failure
354ecc1 CMake: Fix dashboard warnings
d842d90 CMake: Stylistic changes and documentation tweaks
711e2b3 CMake: Add TIMESTAMP subcommand to string and file commands
2012-12-11 13:43:50 -05:00
Kitware Robot
ab2b1f44f8 CMake Nightly Date Stamp 2012-12-11 00:01:14 -05:00
David Cole
61ace1df26 CTest: Coverage handler: expect certain output lines from gcov 4.7 (#13657)
And do not report them as errors.
2012-12-10 17:03:57 -05:00
Kitware Robot
7ecaa4047b CMake Nightly Date Stamp 2012-12-10 00:01:04 -05:00
Kitware Robot
140ed91dd2 CMake Nightly Date Stamp 2012-12-09 00:01:06 -05:00
Kitware Robot
0cbe7dd1e3 CMake Nightly Date Stamp 2012-12-08 00:01:06 -05:00
Brad King
f0d938549e Makefile: Use modern link information for framework search paths
Use cmComputeLinkInformation::GetFrameworkPaths to get the list of
framework paths needed by the linker.  Drop the now unused framework
information from the old-style cmTarget link dependency analysis.
2012-12-07 15:29:21 -05:00
Alex Neundorf
acc224005e Automoc: get include dirs without stripping implicit include dirs off
This should finally fix #13667 and #13762.
Instead of adding special handling to guess whether implicit include dirs
may have been removed, simply make it possible to query the include dirs
without removing the implicit ones.

Alex
2012-12-07 21:24:28 +01:00
Brad King
2bc22bdaac Xcode: Add frameworks search paths from link dependeny closure (#13397)
The Xcode generator produces FRAMEWORK_SEARCH_PATHS from:

(1) Include directories of the form /path/to/Foo.framework become
    -F/path/to so '#include <Foo/H>' can find H in the framework.

(2) Linked frameworks of the form /path/to/Foo.framework become
    -F/path/to -framework Foo so the linker can find the framework.

Originally commit 82bb6fae (add framework support to FIND_FILE,
2005-12-27) added these and used the (then current) old-style link
dependency analysis results to get the frameworks.  Later a second
setting was added by commit 2ed6191f (add initial xcode framework stuff,
2007-05-08) to transform -F/path/to linker options produced by the old
link line generation into entries appended to FRAMEWORK_SEARCH_PATHS.
Then commit 96fd5909 (Implement linking with paths to library files,
2008-01-22) updated the second setting to directly use the results of
full modern link dependency analysis, but forgot to remove the use of
old-style link results from the original setting location.

The two settings worked together for a while, with the second one
appending to the first.  Then commit f33a27ab (Generate native Xcode 3.0
and 3.1 projects, 2009-06-29) changed the internal representation format
produced by the first setting but did not update the second setting to
append to the new representation.  As a result, if the first setting
added any paths (usually via the old-style link analysis) then the
second setting containing the modern link analysis results would not be
applied at all.

Fix this by removing use of the old-style link analysis results.
Replace it using the modern link dependencies and remove the second
setting altogether.  Now all values for FRAMEWORK_SEARCH_PATHS are
collected in one place so no special append logic is needed.
2012-12-07 15:14:19 -05:00
Brad King
711b63f7e0 Add policy CMP0019 to skip include/link variable re-expansion
Historically CMake has always expanded ${} variable references in the
values given to include_directories(), link_directories(), and
link_libraries().  This has been unnecessary since general ${}
evaluation syntax was added to the language a LONG time ago, but has
remained for compatibility with VERY early CMake versions.

For a long time the re-expansion was a lightweight operation because it
was only processed once at the directory level and the fast-path of
cmMakefile::ExpandVariablesInString was usually taken because values did
not have any '$' in them.  Then commit d899eb71 (Call
ExpandVariablesInString for each target's INCLUDE_DIRECTORIES,
2012-02-22) made the operation a bit heavier because the expansion is
now needed on a per-target basis.  In the future we will support
generator expressions in INCLUDE_DIRECTORIES with $<> syntax, so the
fast-path in cmMakefile::ExpandVariablesInString will no longer be taken
and re-expansion will be very expensive.

Add policy CMP0019 to skip the re-expansion altogether in NEW behavior.
In OLD behavior perform the expansion but improve the fast-path
heuristic to match ${} but not $<>.  If the policy is not set then warn
if expansion actually does anything.  We expect this to be encountered
very rarely in practice.
2012-12-07 09:51:19 -05:00