summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2012-04-03 15:59:48 -0400
committerCMake Topic Stage <kwrobot@kitware.com>2012-04-03 15:59:48 -0400
commit046f0f869e2a33f6252012fab5cbb3a6d9b4548c (patch)
tree91dd2b431430d8377467cc42c9d54bbdc5b8cc24
parentc89264e275e6e9a11614f017da096d87410beb15 (diff)
parent3fd0dde23ea692419fe2399cc6e0c4ee089c2ae3 (diff)
downloadcmake-046f0f869e2a33f6252012fab5cbb3a6d9b4548c.tar.gz
Merge topic 'ninja-generated-def'
3fd0dde Merge branch 'test-generated-def' into ninja-generated-def d2c764a Ninja: Fix module .def file path conversion
-rw-r--r--Source/cmNinjaTargetGenerator.cxx13
-rw-r--r--Source/cmNinjaTargetGenerator.h3
2 files changed, 12 insertions, 4 deletions
diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index c76d175c01..c6469f2c9c 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -236,9 +236,9 @@ cmNinjaDeps cmNinjaTargetGenerator::ComputeLinkDeps() const
std::transform(deps.begin(), deps.end(), result.begin(), MapToNinjaPath());
// Add a dependency on the link definitions file, if any.
- if(!this->GeneratorTarget->ModuleDefinitionFile.empty())
+ if(!this->ModuleDefinitionFile.empty())
{
- result.push_back(this->GeneratorTarget->ModuleDefinitionFile);
+ result.push_back(this->ModuleDefinitionFile);
}
return result;
@@ -409,6 +409,11 @@ cmNinjaTargetGenerator
{
this->WriteObjectBuildStatement(*si);
}
+ if(!this->GeneratorTarget->ModuleDefinitionFile.empty())
+ {
+ this->ModuleDefinitionFile = this->ConvertToNinjaPath(
+ this->GeneratorTarget->ModuleDefinitionFile.c_str());
+ }
{
// Add object library contents as external objects.
@@ -509,7 +514,7 @@ void
cmNinjaTargetGenerator
::AddModuleDefinitionFlag(std::string& flags)
{
- if(this->GeneratorTarget->ModuleDefinitionFile.empty())
+ if(this->ModuleDefinitionFile.empty())
{
return;
}
@@ -526,6 +531,6 @@ cmNinjaTargetGenerator
// vs6's "cl -link" pass it to the linker.
std::string flag = defFileFlag;
flag += (this->LocalGenerator->ConvertToLinkReference(
- this->GeneratorTarget->ModuleDefinitionFile.c_str()));
+ this->ModuleDefinitionFile.c_str()));
this->LocalGenerator->AppendFlags(flags, flag.c_str());
}
diff --git a/Source/cmNinjaTargetGenerator.h b/Source/cmNinjaTargetGenerator.h
index f639116b9f..b64ce1e1ec 100644
--- a/Source/cmNinjaTargetGenerator.h
+++ b/Source/cmNinjaTargetGenerator.h
@@ -118,6 +118,9 @@ private:
cmLocalNinjaGenerator* LocalGenerator;
/// List of object files for this target.
cmNinjaDeps Objects;
+
+ // The windows module definition source file (.def), if any.
+ std::string ModuleDefinitionFile;
};
#endif // ! cmNinjaTargetGenerator_h