From 80db51ae3f7d5fbfb52eee4505f615ea4edba62d Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sun, 29 May 2022 16:08:31 +0200 Subject: Use derived dependency task targets instead of 'raw' depends strings for linkage. --- src/task_ld.cc | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) (limited to 'src/task_ld.cc') diff --git a/src/task_ld.cc b/src/task_ld.cc index 918fdee..600de8e 100644 --- a/src/task_ld.cc +++ b/src/task_ld.cc @@ -100,31 +100,17 @@ bool TaskLD::dirtyInner() int TaskLD::runInner() { - std::string objectlist; - for(const auto& objectFile : objectFiles) - { - if(!objectlist.empty()) - { - objectlist += " "; - } - objectlist += objectFile.string(); - } - std::vector args; - for(const auto& objectFile : objectFiles) - { - args.push_back(objectFile.string()); - } - - for(const auto& depFile : depFiles) + for(const auto& dep : getDependsTasks()) { + std::filesystem::path depFile = dep->target(); if(depFile.extension() == ".so") { args.push_back(std::string("-L") + settings.builddir); auto lib = depFile.stem().string().substr(3); // strip 'lib' prefix args.push_back(std::string("-l") + lib); } - else if(depFile.extension() == ".a") + else if(depFile.extension() == ".a" || depFile.extension() == ".o") { args.push_back(depFile.string()); } -- cgit v1.2.3