Ninja: windows msvc: create for each target a .pdb file
This commit is contained in:
parent
a1a30340a2
commit
54bd175eea
|
@ -136,6 +136,7 @@ cmNinjaNormalTargetGenerator
|
|||
vars.Target = "$out";
|
||||
vars.TargetSOName = "$SONAME";
|
||||
vars.TargetInstallNameDir = "$INSTALLNAME_DIR";
|
||||
vars.TargetPDB = "$TARGET_PDB";
|
||||
|
||||
// Setup the target version.
|
||||
std::string targetVersionMajor;
|
||||
|
@ -361,6 +362,8 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
|
|||
targetOutputImplib.c_str(), cmLocalGenerator::SHELL);
|
||||
}
|
||||
|
||||
vars["TARGET_PDB"] = this->GetTargetPDB();
|
||||
|
||||
std::vector<cmCustomCommand> *cmdLists[3] = {
|
||||
&this->GetTarget()->GetPreBuildCommands(),
|
||||
&this->GetTarget()->GetPreLinkCommands(),
|
||||
|
|
|
@ -270,6 +270,23 @@ std::string cmNinjaTargetGenerator::GetTargetName() const
|
|||
return this->Target->GetName();
|
||||
}
|
||||
|
||||
std::string cmNinjaTargetGenerator::GetTargetPDB() const
|
||||
{
|
||||
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)
|
||||
{
|
||||
targetFullPathPDB = this->Target->GetDirectory(this->GetConfigName());
|
||||
targetFullPathPDB += "/";
|
||||
targetFullPathPDB += this->Target->GetPDBName(this->GetConfigName());
|
||||
}
|
||||
|
||||
return ConvertToNinjaPath(targetFullPathPDB.c_str());
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
cmNinjaTargetGenerator
|
||||
::WriteLanguageRules(const std::string& language)
|
||||
|
@ -293,6 +310,7 @@ cmNinjaTargetGenerator
|
|||
vars.Object = "$out";
|
||||
std::string flags = "$FLAGS";
|
||||
vars.Defines = "$DEFINES";
|
||||
vars.TargetPDB = "$TARGET_PDB";
|
||||
|
||||
std::string depfile;
|
||||
std::string depfileFlagsName = "CMAKE_DEPFILE_FLAGS_" + language;
|
||||
|
@ -426,6 +444,7 @@ cmNinjaTargetGenerator
|
|||
cmNinjaVars vars;
|
||||
vars["FLAGS"] = this->ComputeFlagsForObject(source, language);
|
||||
vars["DEFINES"] = this->ComputeDefines(source, language);
|
||||
vars["TARGET_PDB"] = this->GetTargetPDB();
|
||||
|
||||
cmGlobalNinjaGenerator::WriteBuild(this->GetBuildFileStream(),
|
||||
comment,
|
||||
|
|
|
@ -38,6 +38,7 @@ public:
|
|||
|
||||
virtual void Generate() = 0;
|
||||
|
||||
std::string GetTargetPDB() const;
|
||||
std::string GetTargetName() const;
|
||||
|
||||
protected:
|
||||
|
|
Loading…
Reference in New Issue