summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmAddCustomCommandCommand.cxx12
-rw-r--r--Source/cmAddCustomCommandCommand.h3
2 files changed, 14 insertions, 1 deletions
diff --git a/Source/cmAddCustomCommandCommand.cxx b/Source/cmAddCustomCommandCommand.cxx
index 3161ef1..5912a79 100644
--- a/Source/cmAddCustomCommandCommand.cxx
+++ b/Source/cmAddCustomCommandCommand.cxx
@@ -152,7 +152,17 @@ bool cmAddCustomCommandCommand
case doing_outputs:
if (!cmSystemTools::FileIsFullPath(copy.c_str()))
{
- filename = this->Makefile->GetStartDirectory();
+ // This is an output to be generated, so it should be
+ // under the build tree. CMake 2.4 placed this under the
+ // source tree. However the only case that this change
+ // will break is when someone writes
+ //
+ // add_custom_command(OUTPUT out.txt ...)
+ //
+ // and later references "${CMAKE_CURRENT_SOURCE_DIR}/out.txt".
+ // This is fairly obscure so we can wait for someone to
+ // complain.
+ filename = this->Makefile->GetCurrentOutputDirectory();
filename += "/";
}
filename += copy;
diff --git a/Source/cmAddCustomCommandCommand.h b/Source/cmAddCustomCommandCommand.h
index 1468894..7829b61 100644
--- a/Source/cmAddCustomCommandCommand.h
+++ b/Source/cmAddCustomCommandCommand.h
@@ -78,6 +78,9 @@ public:
"This defines a new command that can be executed during the build "
"process. The outputs named should be listed as source files in the "
"target for which they are to be generated. "
+ "If an output name is a relative path it will be interpreted "
+ "relative to the build tree directory corresponding to the current "
+ "source directory. "
"Note that MAIN_DEPENDENCY is completely optional and is "
"used as a suggestion to visual studio about where to hang the "
"custom command. In makefile terms this creates a new target in the "