diff options
-rw-r--r-- | src/task_ld.cc | 2 | ||||
-rw-r--r-- | src/task_so.cc | 11 |
2 files changed, 3 insertions, 10 deletions
diff --git a/src/task_ld.cc b/src/task_ld.cc index 3e05fb1..df50001 100644 --- a/src/task_ld.cc +++ b/src/task_ld.cc @@ -87,7 +87,7 @@ int TaskLD::runInner() auto depFile = dep->targetFile(); if(depFile.extension() == ".so") { - args.push_back(std::string("-L") + settings.builddir); + args.push_back(std::string("-L") + targetFile().parent_path().string()); auto lib = depFile.stem().string().substr(3); // strip 'lib' prefix args.push_back(std::string("-l") + lib); } diff --git a/src/task_so.cc b/src/task_so.cc index 1af14b5..2bd27c4 100644 --- a/src/task_so.cc +++ b/src/task_so.cc @@ -33,9 +33,7 @@ TaskSO::TaskSO(const BuildConfiguration& config, for(const auto& dep : config.depends) { - std::filesystem::path depFile = settings.builddir; - depFile /= dep; - depFiles.push_back(depFile); + depFiles.push_back(dep); } flagsFile = std::filesystem::path(settings.builddir) / cleanUp(sourceDir) / targetFile().stem(); @@ -90,12 +88,7 @@ int TaskSO::runInner() for(const auto& task : getDependsTasks()) { - args.push_back(task->target()); - } - - for(const auto& depFile : depFiles) - { - args.push_back(depFile.string()); + args.push_back(task->targetFile().string()); } for(const auto& flag : config.flags.ldflags) |