13841 Commits

Author SHA1 Message Date
Stephen Kelly
b0c8f73eb6 Add the TARGET_NAME generator expression.
It will be used as a preprocessing marker.
2013-01-05 01:05:09 +01:00
Stephen Kelly
77475fe61d Allow generator expressions to require literals. 2013-01-05 01:05:09 +01:00
Stephen Kelly
b2f1700bc7 GenEx: Add expressions to specify build- or install-only values
This is for specifying INCLUDE_DIRECTORIES relevant to the build-location
or the install location for example:

 set_property(TARGET foo PROPERTY
   INTERFACE_INCLUDE_DIRECTORIES
   "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_SOURCE_DIR}>"
   "$<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/include>"
 )

A 'bar' target can then use:

 set_property(TARGET bar PROPERTY
   INCLUDE_DIRECTORIES
   "$<TARGET_PROPERTY:foo,INTERFACE_INCLUDE_DIRECTORIES>"
 )

and it will work whether foo is in the same project, or an imported target
from an installation location, or an imported target from a build location
generated by the export() command.

Because the generator expressions are only evaluated at build-time, these
new expressions are equivalent to the ZeroNode and OneNode.

The GeneratorExpression test is split into parts. Some shells can't run
the custom command as it is getting too long.
2013-01-05 01:05:08 +01:00
Brad King
51988a4f91 add_library: Document object library portability suggestion
Xcode and VS <= 7.1 will not build targets that have no source files
besides $<TARGET_OBJECTS:...>.  Suggest in the documentation that
projects always add at least one real source file.
2013-01-04 09:38:22 -05:00
Kitware Robot
95b74cafed CMake Nightly Date Stamp 2013-01-04 00:01:13 -05:00
Stephen Kelly
e767ffcda5 Don't crash when a target is expected but is not available. 2013-01-03 20:56:32 +01:00
Brad King
1a25113959 Merge topic 'fix-13789-wix-ui-enhancements'
3793dca CPack: WIX Product Icon, UI Banner, UI Dialog support (#13789)
2013-01-03 13:53:24 -05:00
Brad King
9f8975a1a9 Merge topic 'include-dirs-debugging'
0941d62 Add a way to print the origins of used include directories.
18a3195 Keep track of INCLUDE_DIRECTORIES as a vector of structs.
76ea420 Use cmsys::auto_ptr to manage cmCompiledGeneratorExpressions
2013-01-03 13:53:21 -05:00
Brad King
e2969c503b Merge topic 'fix-12904-avoid-overflow'
e378ba5 Add CTestLimitDashJ test (#12904)
3247806 CTest: Prevent creation of unbounded number of tests in ctest (#12904)
2013-01-03 13:53:18 -05:00
Brad King
de53c4c695 Merge topic 'iface-depends'
3096202 Make targets depend on the link interface of their dependees.
2013-01-03 13:53:15 -05:00
Brad King
690d6baece Merge topic 'genex-cleanup'
7d736af Replace some 'if' with 'else if'
2013-01-03 13:53:11 -05:00
Brad King
60cf243fc1 Merge topic 'update-kwsys'
81c0be4 Merge branch 'upstream-kwsys' into update-kwsys
567e7d9 KWSys 2012-12-21 (8ce09af5)
2c24ca9 Remove references to KWSys Process Win9x support
e33fa5b Merge branch 'upstream-kwsys' into update-kwsys
a0f91f1 KWSys 2012-12-19 (933eb822)
2013-01-03 13:53:08 -05:00
Brad King
3475f51f57 Merge topic 'fix-undef-warnings'
310455c Fix some warnings from -Wundef
2013-01-03 13:53:05 -05:00
Stephen Kelly
0941d6232a Add a way to print the origins of used include directories. 2013-01-03 13:45:40 -05:00
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