[Cmake-commits] CMake branch, next, updated. v3.1.0-2302-gb6aa739
Matt McCormick
matt.mccormick at kitware.com
Wed Jan 21 22:45:22 EST 2015
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 b6aa7393f5501c658afc1c83001fcecec7a86e7a (commit)
via 52685ecbafd9f5a59eb88830dbb6121602ea7dc7 (commit)
from 45049eca97e8931721f4a371e136a012c0473e8d (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=b6aa7393f5501c658afc1c83001fcecec7a86e7a
commit b6aa7393f5501c658afc1c83001fcecec7a86e7a
Merge: 45049ec 52685ec
Author: Matt McCormick <matt.mccormick at kitware.com>
AuthorDate: Wed Jan 21 22:45:21 2015 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Jan 21 22:45:21 2015 -0500
Merge topic 'if-test' into next
52685ecb CMake: if command understands if(TEST TestName)
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=52685ecbafd9f5a59eb88830dbb6121602ea7dc7
commit 52685ecbafd9f5a59eb88830dbb6121602ea7dc7
Author: Matt McCormick <matt.mccormick at kitware.com>
AuthorDate: Mon Dec 29 20:47:48 2014 -0500
Commit: Matt McCormick <matt.mccormick at kitware.com>
CommitDate: Mon Dec 29 21:08:46 2014 -0500
CMake: if command understands if(TEST TestName)
if(TEST TestNameThatExists) will return true if a test with the name
TestNameThatExists has been added with add_test.
The syntax is similar to if(TARGET TargetName).
diff --git a/Help/command/if.rst b/Help/command/if.rst
index 79e5d21..2caf8d3 100644
--- a/Help/command/if.rst
+++ b/Help/command/if.rst
@@ -70,6 +70,10 @@ Possible expressions are:
created by the :command:`add_executable`, :command:`add_library`, or
:command:`add_custom_target` commands.
+``if(TEST test)``
+ True if the given name is an existing test name created by the
+ :command:`add_test` command.
+
``if(EXISTS path-to-file-or-directory)``
True if the named file or directory exists. Behavior is well-defined
only for full paths.
diff --git a/Source/cmConditionEvaluator.cxx b/Source/cmConditionEvaluator.cxx
index aba26de..29a71c7 100644
--- a/Source/cmConditionEvaluator.cxx
+++ b/Source/cmConditionEvaluator.cxx
@@ -507,6 +507,14 @@ bool cmConditionEvaluator::HandleLevel1(cmArgumentList &newArgs,
this->Makefile.FindTargetToUse(argP1->GetValue())?true:false,
reducible, arg, newArgs, argP1, argP2);
}
+ // does a test exist
+ if (this->IsKeyword("TEST", *arg) && argP1 != newArgs.end())
+ {
+ const cmTest* haveTest = this->Makefile.GetTest(argP1->c_str());
+ this->HandlePredicate(
+ haveTest?true:false,
+ reducible, arg, newArgs, argP1, argP2);
+ }
// is a variable defined
if (this->IsKeyword("DEFINED", *arg) && argP1 != newArgs.end())
{
diff --git a/Tests/Complex/Executable/CMakeLists.txt b/Tests/Complex/Executable/CMakeLists.txt
index bf23d4a..102da6b 100644
--- a/Tests/Complex/Executable/CMakeLists.txt
+++ b/Tests/Complex/Executable/CMakeLists.txt
@@ -21,7 +21,20 @@ if(TARGET NotATarget)
message(FATAL_ERROR "if(TARGET NotATarget) returned true!")
endif()
- # Use LINK_LIBRARIES instead of TARGET_LINK_LIBRARIES to
+# Test if(TEST...
+add_test(NAME TestThatExists COMMAND ${CMAKE_COMMAND} -E echo "A CMake Test")
+if(TEST TestThatExists)
+ message(STATUS "if(TestThatExists) is true")
+else()
+ message(FATAL_ERROR "if(TestThatExists is false")
+endif()
+if(TEST TestThatDoesNotExist)
+ message(FATAL_ERROR "if(TestThatDoesNotExist is true")
+else()
+ message(STATUS "if(TestThatDoesNotExist) is false")
+endif()
+
+# Use LINK_LIBRARIES instead of TARGET_LINK_LIBRARIES to
set(COMPLEX_LIBS CMakeTestLibrary;CMakeTestLibraryShared;CMakeTestCLibraryShared)
link_libraries(${COMPLEX_LIBS})
-----------------------------------------------------------------------
Summary of changes:
Help/command/if.rst | 4 ++++
Source/cmConditionEvaluator.cxx | 8 ++++++++
Tests/Complex/Executable/CMakeLists.txt | 15 ++++++++++++++-
3 files changed, 26 insertions(+), 1 deletion(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list