13708 Commits

Author SHA1 Message Date
Rolf Eike Beer
7a1b961de8 Haiku no longer defines __BEOS__ 2013-01-07 21:20:11 +01:00
Brad King
c2cde7f104 Merge topic 'osx-implicit-link-dirs'
cc676c3 OS X: Detect implicit linker framework search paths
2dd67c7 OS X: Detect implicit link directories on modern toolchains
ba58d0c OS X: Link with all framework search paths, not just the last
2013-01-07 14:23:04 -05:00
Brad King
db925e3532 Merge topic 'interface-includes-defines'
894f52f Handle INTERFACE properties transitively for includes and defines.
f5b1980 Populate the ExportedTargets member early in GenerateMainFile
c67b812 Make cycles in target properties ignored, not an error.
d0f950f Use mapped config properties to evaluate $<CONFIG>
26def17 Make all relevant targets available in the genex context.
0c657dc Add API to populate INTERFACE properties in exported targets.
e04f737 Add API to extract target names from a genex string.
b0c8f73 Add the TARGET_NAME generator expression.
77475fe Allow generator expressions to require literals.
b2f1700 GenEx: Add expressions to specify build- or install-only values
2013-01-07 14:20:13 -05:00
Brad King
b5ab3f0707 Merge topic 'ninja-codeblocks-gui'
76c4430 Ninja: fix building from Codeblocks GUI
2013-01-07 14:20:04 -05:00
Brad King
bb68d60571 Merge topic 'doc-Xcode-obj-lib-workaround'
51988a4 add_library: Document object library portability suggestion
2013-01-07 14:19:57 -05:00
Brad King
34f959e5b1 Merge topic 'fix-genex-with-no-target'
e767ffc Don't crash when a target is expected but is not available.
2013-01-07 14:19:47 -05:00
Kitware Robot
c7550d5ef1 CMake Nightly Date Stamp 2013-01-07 00:01:16 -05:00
Kitware Robot
427ef82498 CMake Nightly Date Stamp 2013-01-06 00:01:29 -05:00
Peter Kümmel
76c4430971 Ninja: fix building from Codeblocks GUI
Many thx to Chuck Frayman

BUG: 13652
2013-01-05 08:29:58 +01:00
Kitware Robot
0c1f291a27 CMake Nightly Date Stamp 2013-01-05 00:01:14 -05:00
Stephen Kelly
894f52f32d Handle INTERFACE properties transitively for includes and defines.
Contextually, the behavior is as if the properties content from another
target is included in the string and then the result is evaluated.
2013-01-05 01:18:37 +01:00
Stephen Kelly
f5b1980fb2 Populate the ExportedTargets member early in GenerateMainFile
The member variable is checked to determine whether to call
HandleMissingTarget(). As that could be called during the loop in
the comming commits, ensure that it contains all targets being
exported.
2013-01-05 01:18:37 +01:00
Stephen Kelly
c67b8124f7 Make cycles in target properties ignored, not an error.
Constructs such as these are an error as they are direct self-references:

 set_property(TARGET foo APPEND PROPERTY
   INCLUDE_DIRECTORIES $<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>)
 set_property(TARGET foo APPEND PROPERTY
   INCLUDE_DIRECTORIES $<TARGET_PROPERTY:INCLUDE_DIRECTORIES>)

However, this is an indirect self-reference in a cycle, and not an error:

 set_property(TARGET foo APPEND PROPERTY
   INCLUDE_DIRECTORIES $<TARGET_PROPERTY:bar,INCLUDE_DIRECTORIES>)
 set_property(TARGET bar APPEND PROPERTY
   INCLUDE_DIRECTORIES $<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>)
2013-01-05 01:18:36 +01:00
Stephen Kelly
d0f950fdba Use mapped config properties to evaluate $<CONFIG> 2013-01-05 01:18:36 +01:00
Stephen Kelly
26def1771d Make all relevant targets available in the genex context.
The current node being evaluated transitively in the generator
expression must be available to resolve mapped configs.
2013-01-05 01:18:36 +01:00
Stephen Kelly
0c657dc637 Add API to populate INTERFACE properties in exported targets.
The INTERFACE properties need to be preprocessed for context (build
location or install location) and to extract target names etc.
2013-01-05 01:18:36 +01:00
Stephen Kelly
e04f737c7a Add API to extract target names from a genex string.
The TARGET_NAME expression, which requires a literal, provides
target names. $<TARGET_PROPERTY:tgt,prop> also provides target
names in the cases where tgt is a literal, so that TARGET_NAME is
not needed then in addition.
2013-01-05 01:18:36 +01:00
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