summaryrefslogtreecommitdiffstats
path: root/Source/cmNinjaNormalTargetGenerator.cxx
diff options
context:
space:
mode:
authorPeter Kümmel <syntheticpp@gmx.net>2012-07-17 09:21:03 (GMT)
committerPeter Kümmel <syntheticpp@gmx.net>2012-07-17 09:21:03 (GMT)
commit75bbffbe1b66070df8ac68f1d8b556e7cb0d087c (patch)
tree7efa6470862951b2ae07672a4b5b38ada1f00ad9 /Source/cmNinjaNormalTargetGenerator.cxx
parente5a27a44a7a400e62a5f64450ae2c4d3d2b91e5c (diff)
downloadCMake-75bbffbe1b66070df8ac68f1d8b556e7cb0d087c.zip
CMake-75bbffbe1b66070df8ac68f1d8b556e7cb0d087c.tar.gz
CMake-75bbffbe1b66070df8ac68f1d8b556e7cb0d087c.tar.bz2
Ninja: make TARGET_PDB a real .gdb file name
Diffstat (limited to 'Source/cmNinjaNormalTargetGenerator.cxx')
-rw-r--r--Source/cmNinjaNormalTargetGenerator.cxx16
1 files changed, 11 insertions, 5 deletions
diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx
index 265b28a..6d13a9a 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -174,7 +174,14 @@ cmNinjaNormalTargetGenerator
}
vars.ObjectDir = "$OBJECT_DIR";
+
+ // TODO:
+ // Makefile generator expands <TARGET> to the plain target name
+ // with suffix. $out expands to a relative path. This difference
+ // could make trouble when switching to Ninja generator. Maybe
+ // using TARGET_NAME and RuleVariables::TargetName is a fix.
vars.Target = "$out";
+
vars.SONameFlag = "$SONAME_FLAG";
vars.TargetSOName = "$SONAME";
vars.TargetInstallNameDir = "$INSTALLNAME_DIR";
@@ -423,7 +430,6 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
EnsureParentDirectoryExists(path);
}
- // TODO move to GetTargetPDB
cmMakefile* mf = this->GetMakefile();
if (mf->GetDefinition("MSVC_C_ARCHITECTURE_ID") ||
mf->GetDefinition("MSVC_CXX_ARCHITECTURE_ID"))
@@ -438,10 +444,10 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
{
// It is common to place debug symbols at a specific place,
// so we need a plain target name in the rule available.
- // TODO: Makefile generator could use <TARGET> because it expands
- // to the plain target name, here it expands to a relative path.
- // This difference could make trouble when switching to Ninja generator.
- vars["TARGET_PDB"] = std::string(this->GetTarget()->GetName());
+ std::string base;
+ std::string suffix;
+ this->GetTarget()->GetFullNameComponents(std::string(), base, suffix);
+ vars["TARGET_PDB"] = base + suffix + ".gdb";
}
if (mf->IsOn("CMAKE_COMPILER_IS_MINGW"))