summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.h
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2013-02-12 10:29:09 (GMT)
committerStephen Kelly <steveire@gmail.com>2013-02-13 14:12:30 (GMT)
commita1c4905f723f9d99bd481580f9fe24fdaf81b174 (patch)
tree7e99ae5614cf070ae73a3607f8d1ce51e0c5ac79 /Source/cmTarget.h
parent5c9f5e313ff893a28f975749ad9a6b19481e8e62 (diff)
downloadCMake-a1c4905f723f9d99bd481580f9fe24fdaf81b174.zip
CMake-a1c4905f723f9d99bd481580f9fe24fdaf81b174.tar.gz
CMake-a1c4905f723f9d99bd481580f9fe24fdaf81b174.tar.bz2
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.
Diffstat (limited to 'Source/cmTarget.h')
-rw-r--r--Source/cmTarget.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 028a55e..e659baf 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -495,6 +495,7 @@ public:
std::vector<std::string> GetIncludeDirectories(const char *config);
void InsertInclude(const cmValueWithOrigin &entry,
bool before = false);
+ void AppendTllInclude(const cmValueWithOrigin &entry);
void AppendBuildInterfaceIncludes();