|
|
@@ -526,14 +526,17 @@ void cmMakefileTargetGenerator::WriteObjectBuildFile(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- targetOutPathReal =
|
|
|
- this->Convert(targetFullPathReal, cmOutputConverter::START_OUTPUT,
|
|
|
- cmOutputConverter::SHELL);
|
|
|
+ targetOutPathReal = this->LocalGenerator->ConvertToOutputFormat(
|
|
|
+ this->LocalGenerator->ConvertToRelativePath(
|
|
|
+ this->LocalGenerator->GetCurrentBinaryDirectory(), targetFullPathReal),
|
|
|
+ cmOutputConverter::SHELL);
|
|
|
targetOutPathPDB = this->LocalGenerator->ConvertToOutputFormat(
|
|
|
targetFullPathPDB, cmOutputConverter::SHELL);
|
|
|
- targetOutPathCompilePDB =
|
|
|
- this->Convert(targetFullPathCompilePDB, cmOutputConverter::START_OUTPUT,
|
|
|
- cmOutputConverter::SHELL);
|
|
|
+ targetOutPathCompilePDB = this->LocalGenerator->ConvertToOutputFormat(
|
|
|
+ this->LocalGenerator->ConvertToRelativePath(
|
|
|
+ this->LocalGenerator->GetCurrentBinaryDirectory(),
|
|
|
+ targetFullPathCompilePDB),
|
|
|
+ cmOutputConverter::SHELL);
|
|
|
|
|
|
if (this->LocalGenerator->IsMinGWMake() &&
|
|
|
cmHasLiteralSuffix(targetOutPathCompilePDB, "\\")) {
|
|
|
@@ -555,12 +558,16 @@ void cmMakefileTargetGenerator::WriteObjectBuildFile(
|
|
|
this->LocalGenerator->ConvertToOutputFormat(obj, cmOutputConverter::SHELL);
|
|
|
vars.Object = shellObj.c_str();
|
|
|
std::string objectDir = this->GeneratorTarget->GetSupportDirectory();
|
|
|
- objectDir = this->Convert(objectDir, cmOutputConverter::START_OUTPUT,
|
|
|
- cmOutputConverter::SHELL);
|
|
|
+ objectDir = this->LocalGenerator->ConvertToOutputFormat(
|
|
|
+ this->LocalGenerator->ConvertToRelativePath(
|
|
|
+ this->LocalGenerator->GetCurrentBinaryDirectory(), objectDir),
|
|
|
+ cmOutputConverter::SHELL);
|
|
|
vars.ObjectDir = objectDir.c_str();
|
|
|
std::string objectFileDir = cmSystemTools::GetFilenamePath(obj);
|
|
|
- objectFileDir = this->Convert(objectFileDir, cmOutputConverter::START_OUTPUT,
|
|
|
- cmOutputConverter::SHELL);
|
|
|
+ objectFileDir = this->LocalGenerator->ConvertToOutputFormat(
|
|
|
+ this->LocalGenerator->ConvertToRelativePath(
|
|
|
+ this->LocalGenerator->GetCurrentBinaryDirectory(), objectFileDir),
|
|
|
+ cmOutputConverter::SHELL);
|
|
|
vars.ObjectFileDir = objectFileDir.c_str();
|
|
|
vars.Flags = flags.c_str();
|
|
|
|
|
|
@@ -1231,8 +1238,10 @@ public:
|
|
|
void Feed(std::string const& obj)
|
|
|
{
|
|
|
// Construct the name of the next object.
|
|
|
- this->NextObject = this->LocalGenerator->Convert(
|
|
|
- obj, cmOutputConverter::START_OUTPUT, cmOutputConverter::RESPONSE);
|
|
|
+ this->NextObject = this->LocalGenerator->ConvertToOutputFormat(
|
|
|
+ this->LocalGenerator->ConvertToRelativePath(
|
|
|
+ this->LocalGenerator->GetCurrentBinaryDirectory(), obj),
|
|
|
+ cmOutputConverter::RESPONSE);
|
|
|
|
|
|
// Roll over to next string if the limit will be exceeded.
|
|
|
if (this->LengthLimit != std::string::npos &&
|
|
|
@@ -1474,8 +1483,10 @@ void cmMakefileTargetGenerator::CreateLinkScript(
|
|
|
|
|
|
// Create the makefile command to invoke the link script.
|
|
|
std::string link_command = "$(CMAKE_COMMAND) -E cmake_link_script ";
|
|
|
- link_command += this->Convert(
|
|
|
- linkScriptName, cmOutputConverter::START_OUTPUT, cmOutputConverter::SHELL);
|
|
|
+ link_command += this->LocalGenerator->ConvertToOutputFormat(
|
|
|
+ this->LocalGenerator->ConvertToRelativePath(
|
|
|
+ this->LocalGenerator->GetCurrentBinaryDirectory(), linkScriptName),
|
|
|
+ cmOutputConverter::SHELL);
|
|
|
link_command += " --verbose=$(VERBOSE)";
|
|
|
makefile_commands.push_back(link_command);
|
|
|
makefile_depends.push_back(linkScriptName);
|
|
|
@@ -1506,9 +1517,9 @@ bool cmMakefileTargetGenerator::CheckUseResponseFileForObjects(
|
|
|
if (size_t const limit = calculateCommandLineLengthLimit()) {
|
|
|
// Compute the total length of our list of object files with room
|
|
|
// for argument separation and quoting. This does not convert paths
|
|
|
- // relative to START_OUTPUT like the final list will be, so the actual
|
|
|
- // list will likely be much shorter than this. However, in the worst
|
|
|
- // case all objects will remain as absolute paths.
|
|
|
+ // relative to CMAKE_CURRENT_BINARY_DIR like the final list will be, so the
|
|
|
+ // actual list will likely be much shorter than this. However, in the
|
|
|
+ // worst case all objects will remain as absolute paths.
|
|
|
size_t length = 0;
|
|
|
for (std::vector<std::string>::const_iterator i = this->Objects.begin();
|
|
|
i != this->Objects.end(); ++i) {
|
|
|
@@ -1709,13 +1720,17 @@ void cmMakefileTargetGenerator::GenDefFile(
|
|
|
cmd = this->LocalGenerator->ConvertToOutputFormat(
|
|
|
cmd, cmOutputConverter::SHELL);
|
|
|
cmd += " -E __create_def ";
|
|
|
- cmd += this->Convert(name_of_def_file, cmOutputConverter::START_OUTPUT,
|
|
|
- cmOutputConverter::SHELL);
|
|
|
+ cmd += this->LocalGenerator->ConvertToOutputFormat(
|
|
|
+ this->LocalGenerator->ConvertToRelativePath(
|
|
|
+ this->LocalGenerator->GetCurrentBinaryDirectory(), name_of_def_file),
|
|
|
+ cmOutputConverter::SHELL);
|
|
|
cmd += " ";
|
|
|
std::string objlist_file = name_of_def_file;
|
|
|
objlist_file += ".objs";
|
|
|
- cmd += this->Convert(objlist_file, cmOutputConverter::START_OUTPUT,
|
|
|
- cmOutputConverter::SHELL);
|
|
|
+ cmd += this->LocalGenerator->ConvertToOutputFormat(
|
|
|
+ this->LocalGenerator->ConvertToRelativePath(
|
|
|
+ this->LocalGenerator->GetCurrentBinaryDirectory(), objlist_file),
|
|
|
+ cmOutputConverter::SHELL);
|
|
|
real_link_commands.insert(real_link_commands.begin(), cmd);
|
|
|
// create a list of obj files for the -E __create_def to read
|
|
|
cmGeneratedFileStream fout(objlist_file.c_str());
|
|
|
@@ -1733,9 +1748,10 @@ void cmMakefileTargetGenerator::GenDefFile(
|
|
|
// now add the def file link flag
|
|
|
linkFlags += " ";
|
|
|
linkFlags += this->Makefile->GetSafeDefinition("CMAKE_LINK_DEF_FILE_FLAG");
|
|
|
- linkFlags +=
|
|
|
- this->Convert(name_of_def_file, cmOutputConverter::START_OUTPUT,
|
|
|
- cmOutputConverter::SHELL);
|
|
|
+ linkFlags += this->LocalGenerator->ConvertToOutputFormat(
|
|
|
+ this->LocalGenerator->ConvertToRelativePath(
|
|
|
+ this->LocalGenerator->GetCurrentBinaryDirectory(), name_of_def_file),
|
|
|
+ cmOutputConverter::SHELL);
|
|
|
linkFlags += " ";
|
|
|
}
|
|
|
}
|