[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2235-g05f3537
Stephen Kelly
steveire at gmail.com
Wed Feb 20 07:31:18 EST 2013
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 05f3537f1b4ae9c1f2008c6e9d412990f2b48ae0 (commit)
via 6ad2b22a5508af5f4aa8c82d3677cf19a7f59027 (commit)
from d34ceba47d9bf6b39ea9c8ed2dfabd9f2b5cb8c9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=05f3537f1b4ae9c1f2008c6e9d412990f2b48ae0
commit 05f3537f1b4ae9c1f2008c6e9d412990f2b48ae0
Merge: d34ceba 6ad2b22
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Feb 20 07:31:12 2013 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Feb 20 07:31:12 2013 -0500
Merge topic 'interface-property-external-read' into next
6ad2b22 Fix the GeneratorExpression test reading INCLUDE_DIRECTORIES.
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6ad2b22a5508af5f4aa8c82d3677cf19a7f59027
commit 6ad2b22a5508af5f4aa8c82d3677cf19a7f59027
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Feb 20 13:26:12 2013 +0100
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Feb 20 13:26:12 2013 +0100
Fix the GeneratorExpression test reading INCLUDE_DIRECTORIES.
The test was incorrectly expecting only the direct includes, instead
of expecting the includes to be evaluated transitively via the link
interface.
diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index b6a2c63..c294425 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -476,8 +476,22 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
std::string linkedTargetsContent;
+ std::string interfacePropertyName;
+
if (propertyName == "INTERFACE_INCLUDE_DIRECTORIES"
- || propertyName == "INTERFACE_COMPILE_DEFINITIONS")
+ || propertyName == "INCLUDE_DIRECTORIES")
+ {
+ interfacePropertyName = "INTERFACE_INCLUDE_DIRECTORIES";
+ }
+ else if (propertyName == "INTERFACE_COMPILE_DEFINITIONS"
+ || propertyName == "COMPILE_DEFINITIONS"
+ || strncmp(propertyName.c_str(), "COMPILE_DEFINITIONS_", 20) == 0)
+ {
+ interfacePropertyName = "INTERFACE_COMPILE_DEFINITIONS";
+ }
+
+ if (interfacePropertyName == "INTERFACE_INCLUDE_DIRECTORIES"
+ || interfacePropertyName == "INTERFACE_COMPILE_DEFINITIONS")
{
const cmTarget::LinkInterface *iface = target->GetLinkInterface(
context->Config,
@@ -495,7 +509,8 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
if (context->Makefile->FindTargetToUse(it->c_str()))
{
depString +=
- sep + "$<TARGET_PROPERTY:" + *it + "," + propertyName + ">";
+ sep + "$<TARGET_PROPERTY:" + *it + ","
+ + interfacePropertyName + ">";
sep = ";";
}
}
@@ -550,7 +565,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
sizeof(*targetPropertyTransitiveWhitelist));
++i)
{
- if (targetPropertyTransitiveWhitelist[i] == propertyName)
+ if (targetPropertyTransitiveWhitelist[i] == interfacePropertyName)
{
cmGeneratorExpression ge(context->Backtrace);
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(prop);
diff --git a/Tests/GeneratorExpression/CMakeLists.txt b/Tests/GeneratorExpression/CMakeLists.txt
index 75bf21a..8a64dc2 100644
--- a/Tests/GeneratorExpression/CMakeLists.txt
+++ b/Tests/GeneratorExpression/CMakeLists.txt
@@ -80,6 +80,9 @@ target_link_libraries(empty1 LINK_PUBLIC empty2)
target_link_libraries(empty2 LINK_PUBLIC empty3 empty4)
target_link_libraries(empty3 LINK_PUBLIC empty2 empty4)
+add_library(empty5 empty.cpp)
+target_include_directories(empty5 PRIVATE /empty5/private)
+
add_custom_target(check-part2 ALL
COMMAND ${CMAKE_COMMAND}
-Dtest_incomplete_1=$<
@@ -114,6 +117,7 @@ add_custom_target(check-part2 ALL
-Dtest_target_includes5=$<TARGET_PROPERTY:empty2,INCLUDE_DIRECTORIES>
-Dtest_target_includes6=$<TARGET_PROPERTY:empty3,INCLUDE_DIRECTORIES>
-Dtest_target_includes7=$<TARGET_PROPERTY:empty1,INTERFACE_INCLUDE_DIRECTORIES>
+ -Dtest_target_includes8=$<TARGET_PROPERTY:empty5,INCLUDE_DIRECTORIES>
-P ${CMAKE_CURRENT_SOURCE_DIR}/check-part2.cmake
COMMAND ${CMAKE_COMMAND} -E echo "check done (part 2 of 2)"
VERBATIM
diff --git a/Tests/GeneratorExpression/check-part2.cmake b/Tests/GeneratorExpression/check-part2.cmake
index 2a5c9a1..177bace 100644
--- a/Tests/GeneratorExpression/check-part2.cmake
+++ b/Tests/GeneratorExpression/check-part2.cmake
@@ -29,7 +29,8 @@ check(test_target_name_2 "tgt:ok")
check(test_target_includes1 "/empty1/public;/empty2/public;/empty3/public;/empty4/public")
check(test_target_includes2 "/empty2/public;/empty3/public;/empty4/public")
check(test_target_includes3 "/empty3/public;/empty2/public;/empty4/public")
-check(test_target_includes4 "/empty1/public;/empty1/private")
-check(test_target_includes5 "/empty2/public")
-check(test_target_includes6 "/empty3/public;/empty3/private")
+check(test_target_includes4 "/empty1/public;/empty1/private;/empty2/public;/empty3/public;/empty4/public")
+check(test_target_includes5 "/empty2/public;/empty3/public;/empty2/public;/empty4/public")
+check(test_target_includes6 "/empty3/public;/empty3/private;/empty2/public;/empty3/public;/empty4/public")
check(test_target_includes7 "/empty1/public;/empty2/public;/empty3/public;/empty4/public")
+check(test_target_includes8 "/empty5/private")
-----------------------------------------------------------------------
Summary of changes:
Source/cmGeneratorExpressionEvaluator.cxx | 21 ++++++++++++++++++---
Tests/GeneratorExpression/CMakeLists.txt | 4 ++++
Tests/GeneratorExpression/check-part2.cmake | 7 ++++---
3 files changed, 26 insertions(+), 6 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list