cmGeneratorTarget: Use a method to access the definition file.
This commit is contained in:
parent
5771f81d91
commit
d3682d8647
|
@ -430,6 +430,12 @@ void cmGeneratorTarget::LookupObjectLibraries()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
std::string cmGeneratorTarget::GetModuleDefinitionFile() const
|
||||||
|
{
|
||||||
|
return this->ModuleDefinitionFile;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void
|
void
|
||||||
cmGeneratorTarget::UseObjectLibraries(std::vector<std::string>& objs) const
|
cmGeneratorTarget::UseObjectLibraries(std::vector<std::string>& objs) const
|
||||||
|
|
|
@ -52,7 +52,7 @@ public:
|
||||||
cmLocalGenerator* LocalGenerator;
|
cmLocalGenerator* LocalGenerator;
|
||||||
cmGlobalGenerator const* GlobalGenerator;
|
cmGlobalGenerator const* GlobalGenerator;
|
||||||
|
|
||||||
std::string ModuleDefinitionFile;
|
std::string GetModuleDefinitionFile() const;
|
||||||
|
|
||||||
/** Full path with trailing slash to the top-level directory
|
/** Full path with trailing slash to the top-level directory
|
||||||
holding object files for this target. Includes the build
|
holding object files for this target. Includes the build
|
||||||
|
@ -118,6 +118,7 @@ private:
|
||||||
struct SourceEntry { std::vector<cmSourceFile*> Depends; };
|
struct SourceEntry { std::vector<cmSourceFile*> Depends; };
|
||||||
typedef std::map<cmSourceFile*, SourceEntry> SourceEntriesType;
|
typedef std::map<cmSourceFile*, SourceEntry> SourceEntriesType;
|
||||||
SourceEntriesType SourceEntries;
|
SourceEntriesType SourceEntries;
|
||||||
|
std::string ModuleDefinitionFile;
|
||||||
|
|
||||||
std::vector<cmSourceFile*> CustomCommands;
|
std::vector<cmSourceFile*> CustomCommands;
|
||||||
std::vector<cmSourceFile*> ExtraSources;
|
std::vector<cmSourceFile*> ExtraSources;
|
||||||
|
|
|
@ -1650,9 +1650,10 @@ void cmMakefileTargetGenerator
|
||||||
this->AppendTargetDepends(depends);
|
this->AppendTargetDepends(depends);
|
||||||
|
|
||||||
// Add a dependency on the link definitions file, if any.
|
// Add a dependency on the link definitions file, if any.
|
||||||
if(!this->GeneratorTarget->ModuleDefinitionFile.empty())
|
std::string def = this->GeneratorTarget->GetModuleDefinitionFile();
|
||||||
|
if(!def.empty())
|
||||||
{
|
{
|
||||||
depends.push_back(this->GeneratorTarget->ModuleDefinitionFile);
|
depends.push_back(def);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add user-specified dependencies.
|
// Add user-specified dependencies.
|
||||||
|
@ -2019,7 +2020,8 @@ void cmMakefileTargetGenerator::AddFortranFlags(std::string& flags)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void cmMakefileTargetGenerator::AddModuleDefinitionFlag(std::string& flags)
|
void cmMakefileTargetGenerator::AddModuleDefinitionFlag(std::string& flags)
|
||||||
{
|
{
|
||||||
if(this->GeneratorTarget->ModuleDefinitionFile.empty())
|
std::string def = this->GeneratorTarget->GetModuleDefinitionFile();
|
||||||
|
if(def.empty())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -2035,8 +2037,7 @@ void cmMakefileTargetGenerator::AddModuleDefinitionFlag(std::string& flags)
|
||||||
// Append the flag and value. Use ConvertToLinkReference to help
|
// Append the flag and value. Use ConvertToLinkReference to help
|
||||||
// vs6's "cl -link" pass it to the linker.
|
// vs6's "cl -link" pass it to the linker.
|
||||||
std::string flag = defFileFlag;
|
std::string flag = defFileFlag;
|
||||||
flag += (this->LocalGenerator->ConvertToLinkReference(
|
flag += (this->LocalGenerator->ConvertToLinkReference(def.c_str()));
|
||||||
this->GeneratorTarget->ModuleDefinitionFile.c_str()));
|
|
||||||
this->LocalGenerator->AppendFlags(flags, flag.c_str());
|
this->LocalGenerator->AppendFlags(flags, flag.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -498,10 +498,10 @@ cmNinjaTargetGenerator
|
||||||
{
|
{
|
||||||
this->WriteObjectBuildStatement(*si);
|
this->WriteObjectBuildStatement(*si);
|
||||||
}
|
}
|
||||||
if(!this->GeneratorTarget->ModuleDefinitionFile.empty())
|
std::string def = this->GeneratorTarget->GetModuleDefinitionFile();
|
||||||
|
if(!def.empty())
|
||||||
{
|
{
|
||||||
this->ModuleDefinitionFile = this->ConvertToNinjaPath(
|
this->ModuleDefinitionFile = this->ConvertToNinjaPath(def.c_str());
|
||||||
this->GeneratorTarget->ModuleDefinitionFile.c_str());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -1666,10 +1666,10 @@ cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
|
||||||
linkOptions.AddFlag("ImportLibrary", imLib.c_str());
|
linkOptions.AddFlag("ImportLibrary", imLib.c_str());
|
||||||
linkOptions.AddFlag("ProgramDataBaseFile", pdb.c_str());
|
linkOptions.AddFlag("ProgramDataBaseFile", pdb.c_str());
|
||||||
linkOptions.Parse(flags.c_str());
|
linkOptions.Parse(flags.c_str());
|
||||||
if(!this->GeneratorTarget->ModuleDefinitionFile.empty())
|
std::string def = this->GeneratorTarget->GetModuleDefinitionFile();
|
||||||
|
if(!def.empty())
|
||||||
{
|
{
|
||||||
linkOptions.AddFlag("ModuleDefinitionFile",
|
linkOptions.AddFlag("ModuleDefinitionFile", def.c_str());
|
||||||
this->GeneratorTarget->ModuleDefinitionFile.c_str());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this->LinkOptions[config] = pOptions.release();
|
this->LinkOptions[config] = pOptions.release();
|
||||||
|
|
Loading…
Reference in New Issue