diff options
author | Brad King <brad.king@kitware.com> | 2008-08-20 15:45:16 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-08-20 15:45:16 (GMT) |
commit | fff812db95cea0844833e1cde2942ee52bffe911 (patch) | |
tree | fe64788489c02832604f6119a24ba2ff04428b67 /Source | |
parent | 07665de0386e3ee572e95f999d6b516391331e26 (diff) | |
download | CMake-fff812db95cea0844833e1cde2942ee52bffe911.zip CMake-fff812db95cea0844833e1cde2942ee52bffe911.tar.gz CMake-fff812db95cea0844833e1cde2942ee52bffe911.tar.bz2 |
ENH: Add if(TARGET) command
It is useful to be able to test if a target has been created. Often
targets are created only inside conditions. Rather than storing the
result of the condition manually for testing by other parts of the
project, it is much easier for the other parts to just test for the
target's existence. This will also be useful when find-modules start
reporting results with IMPORTED targets and projects want to test if a
certain target is available.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmIfCommand.cxx | 7 | ||||
-rw-r--r-- | Source/cmIfCommand.h | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/Source/cmIfCommand.cxx b/Source/cmIfCommand.cxx index 2806dd4..e82a8fb 100644 --- a/Source/cmIfCommand.cxx +++ b/Source/cmIfCommand.cxx @@ -408,6 +408,13 @@ namespace makefile->GetPolicies()->GetPolicyID((argP1)->c_str(), pid), reducible, arg, newArgs, argP1, argP2); } + // does a target exist + if (*arg == "TARGET" && argP1 != newArgs.end()) + { + HandlePredicate( + makefile->FindTargetToUse((argP1)->c_str())? true:false, + reducible, arg, newArgs, argP1, argP2); + } // is a variable defined if (*arg == "DEFINED" && argP1 != newArgs.end()) { diff --git a/Source/cmIfCommand.h b/Source/cmIfCommand.h index cc83919..6c23aa0 100644 --- a/Source/cmIfCommand.h +++ b/Source/cmIfCommand.h @@ -142,6 +142,8 @@ public: " if(POLICY policy-id)\n" "True if the given name is an existing policy " "(of the form CMP<NNNN>).\n" + " if(TARGET target-name)\n" + "True if the given name is an existing target, built or imported.\n" " if(EXISTS file-name)\n" " if(EXISTS directory-name)\n" "True if the named file or directory exists. " |