diff options
author | Brad King <brad.king@kitware.com> | 2008-01-30 16:22:10 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-01-30 16:22:10 (GMT) |
commit | e9503a174ecff5301ab2252cbf06d2d29889ceb4 (patch) | |
tree | ae6faecf093c887be2afb1239db7b6f7dc41b184 | |
parent | d5db5a275a1f6839d70ca0c76dfedb2e63705b58 (diff) | |
download | CMake-e9503a174ecff5301ab2252cbf06d2d29889ceb4.zip CMake-e9503a174ecff5301ab2252cbf06d2d29889ceb4.tar.gz CMake-e9503a174ecff5301ab2252cbf06d2d29889ceb4.tar.bz2 |
ENH: Make add_custom_command interpret relative OUTPUT locations with respect to the build tre instead of the source tree. This can greatly simplify user code since generating a file will not need to reference CMAKE_CURRENT_BINARY_DIR. The new behavior is what users expect 99% of the time.
-rw-r--r-- | Source/cmAddCustomCommandCommand.cxx | 12 | ||||
-rw-r--r-- | Source/cmAddCustomCommandCommand.h | 3 |
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 " |