[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2042-g7372fb3

Stephen Kelly steveire at gmail.com
Fri Feb 8 15:21:55 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  7372fb397a2a212d5e375f22b5a405dcffcc6024 (commit)
       via  dacc3614119ed0392919524481b328abb8733aac (commit)
      from  4cb80962785a0d7fb1701738b527b0f0c3c55a63 (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=7372fb397a2a212d5e375f22b5a405dcffcc6024
commit 7372fb397a2a212d5e375f22b5a405dcffcc6024
Merge: 4cb8096 dacc361
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Feb 8 15:21:46 2013 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Feb 8 15:21:46 2013 -0500

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


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dacc3614119ed0392919524481b328abb8733aac
commit dacc3614119ed0392919524481b328abb8733aac
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 20:32:08 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)

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

Summary of changes:
 Source/cmGeneratorExpressionEvaluator.cxx          |    8 ++++++++
 .../BadLinked-UtilityTarget-result.txt}            |    0
 .../BadLinked-UtilityTarget-stderr.txt             |    8 ++++++++
 .../BadLinked-UtilityTarget.cmake                  |    7 +++++++
 .../RunCMakeTest.cmake                             |    1 +
 5 files changed, 24 insertions(+), 0 deletions(-)
 copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => TargetPropertyGeneratorExpressions/BadLinked-UtilityTarget-result.txt} (100%)
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadLinked-UtilityTarget-stderr.txt
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadLinked-UtilityTarget.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list