Browse Source

BUG: Do not convert SOURCE argument from relative to full path. It breaks the old-style SOURCE==TARGET trick and the SOURCE argument is only present for old-style commands anyway. This addresses bug#2120.

Brad King 20 years ago
parent
commit
bb043289d0
1 changed files with 6 additions and 1 deletions
  1. 6 1
      Source/cmAddCustomCommandCommand.cxx

+ 6 - 1
Source/cmAddCustomCommandCommand.cxx

@@ -120,7 +120,6 @@ bool cmAddCustomCommandCommand::InitialPass(std::vector<std::string> const& args
       std::string filename;
       switch (doing)
         {
-        case doing_source:
         case doing_output:
         case doing_outputs:
           if (!cmSystemTools::FileIsFullPath(copy.c_str()))
@@ -130,6 +129,12 @@ bool cmAddCustomCommandCommand::InitialPass(std::vector<std::string> const& args
             }
           filename += copy;
           break;
+        case doing_source:
+          // We do not want to convert the argument to SOURCE because
+          // that option is only available for backward compatibility.
+          // Old-style use of this command may use the SOURCE==TARGET
+          // trick which we must preserve.  If we convert the source
+          // to a full path then it will no longer equal the target.
         default:
           break;
         }