Stephen Kelly a1c4905f72 Use the link information as a source of compile definitions and includes.
After evaluating the INTERFACE_INCLUDE_DIRECTORIES, of a target in a
generator expression, also read the INTERFACE_INCLUDE_DIRECTORIES of
its link interface dependencies.

That means that code such as this will result in the 'user' target
using /bar/include and /foo/include:

 add_library(foo ...)
 target_include_directories(foo INTERFACE /foo/include)
 add_library(bar ...)
 target_include_directories(bar INTERFACE /bar/include)
 target_link_libraries(bar LINK_PUBLIC foo)

 add_executable(user ...)
 target_include_directories(user PRIVATE
    $<TARGET_PROPERTY:bar,INTERFACE_INCLUDE_DIRECTORIES>)

Also process the interface include directories from direct link
dependencies for in-build targets.

The situation is similar for the INTERFACE_COMPILE_DEFINITIONS. The
include directories related code is currently more complex because
we also need to store a backtrace at configure-time for the purpose
of debugging includes. The compile definitions related code will use
the same pattern in the future.

This is not a change in behavior, as existing code has the same effect,
but that existing code will be removed in follow-up commits.
2013-02-13 15:12:30 +01:00
..
2013-02-11 00:01:27 -05:00
2011-09-15 16:20:33 +02:00
2013-01-07 21:20:11 +01:00
2011-10-23 22:18:08 +02:00
2010-09-10 14:42:09 -04:00
2012-09-28 17:00:52 -04:00
2012-09-28 17:00:52 -04:00
2011-10-23 22:18:08 +02:00
2012-02-02 23:40:21 +00:00
2012-07-18 12:17:39 +02:00
2012-02-21 15:33:31 -05:00
2013-02-08 13:38:56 -05:00