[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2610-g1ca0b5a
Brad King
brad.king at kitware.com
Fri Mar 22 11:00:20 EDT 2013
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 1ca0b5a0307774214b9082d168f74b2a8c876e3c (commit)
via 0b7ad3f091decb9fe8f2cd7001de7ecc05913342 (commit)
from b3cb0fd09db2416f050cf6170559a41cbf9e094d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1ca0b5a0307774214b9082d168f74b2a8c876e3c
commit 1ca0b5a0307774214b9082d168f74b2a8c876e3c
Merge: b3cb0fd 0b7ad3f
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Mar 22 11:00:02 2013 -0400
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Mar 22 11:00:02 2013 -0400
Merge topic 'compile-object-TARGET-placeholder' into next
0b7ad3f Replace <TARGET> in CMAKE_<LANG>_COMPILE_OBJECT rule variables
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0b7ad3f091decb9fe8f2cd7001de7ecc05913342
commit 0b7ad3f091decb9fe8f2cd7001de7ecc05913342
Author: Brad King <brad.king at kitware.com>
AuthorDate: Thu Mar 21 14:31:57 2013 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Fri Mar 22 07:52:54 2013 -0400
Replace <TARGET> in CMAKE_<LANG>_COMPILE_OBJECT rule variables
In some languages the compiler may need to know the path of the final
target file for which an object is being compiled. Honor the <TARGET>
placeholder for compilation rules to support such cases.
Note that this cannot work with OBJECT library targets because the final
target path is not known during compilation (there can even be more than
one final target).
Suggested-by: Vittorio Giovara <vittorio.giovara at gmail.com>
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index d9aa7fe..922adc6 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -640,18 +640,25 @@ cmMakefileTargetGenerator
(commands, buildEcho.c_str(), cmLocalUnixMakefileGenerator3::EchoBuild);
}
+ std::string targetOutPathReal;
std::string targetOutPathPDB;
{
+ std::string targetFullPathReal;
std::string targetFullPathPDB;
if(this->Target->GetType() == cmTarget::EXECUTABLE ||
this->Target->GetType() == cmTarget::STATIC_LIBRARY ||
this->Target->GetType() == cmTarget::SHARED_LIBRARY ||
this->Target->GetType() == cmTarget::MODULE_LIBRARY)
{
+ targetFullPathReal =
+ this->Target->GetFullPath(this->ConfigName, false, true);
targetFullPathPDB = this->Target->GetPDBDirectory(this->ConfigName);
targetFullPathPDB += "/";
targetFullPathPDB += this->Target->GetPDBName(this->ConfigName);
}
+ targetOutPathReal = this->Convert(targetFullPathReal.c_str(),
+ cmLocalGenerator::START_OUTPUT,
+ cmLocalGenerator::SHELL);
targetOutPathPDB =
this->Convert(targetFullPathPDB.c_str(),cmLocalGenerator::NONE,
cmLocalGenerator::SHELL);
@@ -660,6 +667,7 @@ cmMakefileTargetGenerator
vars.RuleLauncher = "RULE_LAUNCH_COMPILE";
vars.CMTarget = this->Target;
vars.Language = lang;
+ vars.Target = targetOutPathReal.c_str();
vars.TargetPDB = targetOutPathPDB.c_str();
vars.Source = sourceFile.c_str();
std::string shellObj =
-----------------------------------------------------------------------
Summary of changes:
Source/cmMakefileTargetGenerator.cxx | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list