summaryrefslogtreecommitdiff
path: root/src/task_ld.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/task_ld.cc')
-rw-r--r--src/task_ld.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/task_ld.cc b/src/task_ld.cc
index 20e823d..ba1eb1b 100644
--- a/src/task_ld.cc
+++ b/src/task_ld.cc
@@ -95,14 +95,15 @@ int TaskLD::runInner()
auto lib = depFile.stem().string().substr(3); // strip 'lib' prefix
append(args, getOption(tool_chain, opt::link, lib));
}
- else if(depFile.extension() == ".a" || depFile.extension() == ".o")
+ else if(depFile.extension() == ".lib" || depFile.extension() == ".obj")
{
args.push_back(depFile.string());
}
}
append(args, config.flags.ldflags);
- append(args, getOption(tool_chain, opt::output, targetFile().string()));
+// append(args, getOption(tool_chain, opt::output, targetFile().string()));
+ args.push_back("/out:"+targetFile().string());
{ // Write flags to file.
std::ofstream flagsStream(flagsFile);
@@ -114,8 +115,9 @@ int TaskLD::runInner()
std::cout << "LD => " << targetFile().string() << "\n";
}
- auto tool = compiler();
- return execute(tool, args, settings.verbose > 0);
+ auto tool = linker();
+ const auto& cfg = configuration();
+ return execute(tool, args, cfg.env, settings.verbose > 0);
}
int TaskLD::clean()
@@ -177,7 +179,7 @@ std::string TaskLD::flagsString() const
}
flagsStr += flag;
}
- flagsStr += "\n";
+ //flagsStr += "\n"; break on win32
for(const auto& dep : config.depends)
{