[Cmake-commits] CMake branch, next, updated. v2.8.12-4740-gdcd2506

Brad King brad.king at kitware.com
Fri Nov 1 10:25:46 EDT 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  dcd250692708ce8a42dfe12fd05e222a96aa3a45 (commit)
       via  d9605897788d800e892de0d201a305046510d089 (commit)
      from  2c713fe7fc13791833cc919a7f4cc6066b8295cd (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=dcd250692708ce8a42dfe12fd05e222a96aa3a45
commit dcd250692708ce8a42dfe12fd05e222a96aa3a45
Merge: 2c713fe d960589
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Nov 1 10:25:30 2013 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Nov 1 10:25:30 2013 -0400

    Merge topic 'object-library-no-TARGET_FILE' into next
    
    d960589 Genex: Reject $<TARGET_FILE:...> for object libraries (#14532)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d9605897788d800e892de0d201a305046510d089
commit d9605897788d800e892de0d201a305046510d089
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Nov 1 10:14:47 2013 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri Nov 1 10:17:01 2013 -0400

    Genex: Reject $<TARGET_FILE:...> for object libraries (#14532)
    
    Teach the cmGeneratorExpressionEvaluator filesystem artifact logic
    to reject OBJECT_LIBRARY targets since they have no main artifact.
    Without the explicit rejection evaluation falls through to an
    internal CMake error message in cmTarget::GetOutputInfo.
    
    Extend the RunCMake.GeneratorExpression test to cover these cases.

diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index abe4e70..8b31354 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -1277,7 +1277,7 @@ struct TargetFilesystemArtifact : public cmGeneratorExpressionNode
                     "No target \"" + name + "\"");
       return std::string();
       }
-    if(target->GetType() >= cmTarget::UTILITY &&
+    if(target->GetType() >= cmTarget::OBJECT_LIBRARY &&
       target->GetType() != cmTarget::UNKNOWN_LIBRARY)
       {
       ::reportError(context, content->GetOriginalExpression(),
diff --git a/Tests/RunCMake/GeneratorExpression/BadTargetTypeObject-result.txt b/Tests/RunCMake/GeneratorExpression/BadTargetTypeObject-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadTargetTypeObject-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/GeneratorExpression/BadTargetTypeObject-stderr.txt b/Tests/RunCMake/GeneratorExpression/BadTargetTypeObject-stderr.txt
new file mode 100644
index 0000000..533d38c
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadTargetTypeObject-stderr.txt
@@ -0,0 +1,26 @@
+CMake Error at BadTargetTypeObject.cmake:3 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<TARGET_FILE:objlib>
+
+  Target "objlib" is not an executable or library.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
++
+CMake Error at BadTargetTypeObject.cmake:3 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<TARGET_SONAME_FILE:objlib>
+
+  Target "objlib" is not an executable or library.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
++
+CMake Error at BadTargetTypeObject.cmake:3 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<TARGET_LINKER_FILE:objlib>
+
+  Target "objlib" is not an executable or library.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
diff --git a/Tests/RunCMake/GeneratorExpression/BadTargetTypeObject.cmake b/Tests/RunCMake/GeneratorExpression/BadTargetTypeObject.cmake
new file mode 100644
index 0000000..c47ee2b
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadTargetTypeObject.cmake
@@ -0,0 +1,7 @@
+enable_language(C)
+add_library(objlib OBJECT empty.c)
+add_custom_target(check ALL COMMAND echo
+  $<TARGET_FILE:objlib>
+  $<TARGET_SONAME_FILE:objlib>
+  $<TARGET_LINKER_FILE:objlib>
+  )
diff --git a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
index 62bf29b..54d5064 100644
--- a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
+++ b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
@@ -7,4 +7,5 @@ run_cmake(BadNOT)
 run_cmake(BadStrEqual)
 run_cmake(BadZero)
 run_cmake(BadTargetName)
+run_cmake(BadTargetTypeObject)
 run_cmake(BadInstallPrefix)
diff --git a/Tests/RunCMake/GeneratorExpression/empty.c b/Tests/RunCMake/GeneratorExpression/empty.c
new file mode 100644
index 0000000..e69de29

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

Summary of changes:
 Source/cmGeneratorExpressionEvaluator.cxx          |    2 +-
 .../BadTargetTypeObject-result.txt}                |    0
 .../BadTargetTypeObject-stderr.txt                 |   26 ++++++++++++++++++++
 .../GeneratorExpression/BadTargetTypeObject.cmake  |    7 +++++
 .../GeneratorExpression/RunCMakeTest.cmake         |    1 +
 .../RunCMake/GeneratorExpression/empty.c           |    0
 6 files changed, 35 insertions(+), 1 deletions(-)
 copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => GeneratorExpression/BadTargetTypeObject-result.txt} (100%)
 create mode 100644 Tests/RunCMake/GeneratorExpression/BadTargetTypeObject-stderr.txt
 create mode 100644 Tests/RunCMake/GeneratorExpression/BadTargetTypeObject.cmake
 copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/GeneratorExpression/empty.c (100%)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list