[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2046-g1e8d99a

Stephen Kelly steveire at gmail.com
Fri Feb 8 15:44:32 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  1e8d99a0988c8781283b1adfe092727ff2832e0d (commit)
       via  9712362b4580fb92394ecf8ff57be186571f4319 (commit)
      from  4eed3d0cbf64a408a4c4449c0f6819321a5c952a (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=1e8d99a0988c8781283b1adfe092727ff2832e0d
commit 1e8d99a0988c8781283b1adfe092727ff2832e0d
Merge: 4eed3d0 9712362
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Feb 8 15:44:30 2013 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Feb 8 15:44:30 2013 -0500

    Merge topic 'minor-fixes' into next
    
    9712362 Don't allow utility or global targets in the LINKED expression.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9712362b4580fb92394ecf8ff57be186571f4319
commit 9712362b4580fb92394ecf8ff57be186571f4319
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Feb 8 20:20:53 2013 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Feb 8 21:44:11 2013 +0100

    Don't allow utility or global targets in the LINKED expression.
    
    The LINKED expression is exclusively for handling INTERFACE content
    and it does not make sense for utility targets to have INTERFACE
    content.

diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index d2dbf11..98e0ada 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -702,6 +702,14 @@ private:
       {
       return std::string();
       }
+    if(target->GetType() >= cmTarget::UTILITY &&
+      target->GetType() != cmTarget::UNKNOWN_LIBRARY)
+      {
+      ::reportError(context, content->GetOriginalExpression(),
+                  "Target \"" + item
+                  + "\" is not an executable or library.");
+      return std::string();
+      }
     std::string propertyName = "INTERFACE_" + prop;
     const char *propContent = target->GetProperty(propertyName.c_str());
     if (!propContent)
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadLinked-UtilityTarget-result.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadLinked-UtilityTarget-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadLinked-UtilityTarget-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadLinked-UtilityTarget-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadLinked-UtilityTarget-stderr.txt
new file mode 100644
index 0000000..fb06554
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadLinked-UtilityTarget-stderr.txt
@@ -0,0 +1,8 @@
+CMake Error at BadLinked-UtilityTarget.cmake:7 \(set_property\):
+  Error evaluating generator expression:
+
+    \$<LINKED:check>
+
+  Target "check" is not an executable or library.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:8 \(include\)
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadLinked-UtilityTarget.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadLinked-UtilityTarget.cmake
new file mode 100644
index 0000000..d114c8f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadLinked-UtilityTarget.cmake
@@ -0,0 +1,7 @@
+
+add_custom_target(check ALL
+  COMMAND ${CMAKE_COMMAND} -E echo check
+)
+
+add_library(foo STATIC empty.cpp)
+set_property(TARGET foo PROPERTY INCLUDE_DIRECTORIES $<LINKED:check>)
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/RunCMakeTest.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/RunCMakeTest.cmake
index ea48f61..84039c4 100644
--- a/Tests/RunCMake/TargetPropertyGeneratorExpressions/RunCMakeTest.cmake
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/RunCMakeTest.cmake
@@ -16,3 +16,4 @@ run_cmake(BadInvalidName6)
 run_cmake(BadInvalidName7)
 run_cmake(BadInvalidName8)
 run_cmake(BadLinked)
+run_cmake(BadLinked-UtilityTarget)
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/empty.cpp b/Tests/RunCMake/TargetPropertyGeneratorExpressions/empty.cpp
new file mode 100644
index 0000000..8b1a393
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/empty.cpp
@@ -0,0 +1 @@
+// empty

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list