From c9f1af3913eb9aa8fdc7d374bf38bac59a6bbf59 Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Wed, 6 Jun 2007 08:49:18 -0400 Subject: [PATCH] ENH: add IF(IS_ABSOLUTE path), so no regex matching is required in the cmake scripts Alex --- Source/cmIfCommand.cxx | 16 ++++++++++++++++ Source/cmIfCommand.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/Source/cmIfCommand.cxx b/Source/cmIfCommand.cxx index 8faab58a9..cdcf79d1c 100644 --- a/Source/cmIfCommand.cxx +++ b/Source/cmIfCommand.cxx @@ -287,6 +287,22 @@ bool cmIfCommand::IsTrue(const std::vector &args, IncrementArguments(newArgs,argP1,argP2); reducible = 1; } + // is the given path an absolute path ? + if (*arg == "IS_ABSOLUTE" && argP1 != newArgs.end()) + { + if(cmSystemTools::FileIsFullPath((argP1)->c_str())) + { + *arg = "1"; + } + else + { + *arg = "0"; + } + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } // does a command exist if (*arg == "COMMAND" && argP1 != newArgs.end()) { diff --git a/Source/cmIfCommand.h b/Source/cmIfCommand.h index 1a892276d..6b855a29c 100644 --- a/Source/cmIfCommand.h +++ b/Source/cmIfCommand.h @@ -143,6 +143,8 @@ public: " IF(IS_DIRECTORY directory-name)\n" "True if the given name is a directory. " "Behavior is well-defined only for full paths.\n" + " IF(IS_ABSOLUTE path)\n" + "True if the given path is an absolute path.\n " " IF(variable MATCHES regex)\n" " IF(string MATCHES regex)\n" "True if the given string or variable's value matches the given "