summaryrefslogtreecommitdiff
path: root/src/task_so.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/task_so.cc')
-rw-r--r--src/task_so.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/task_so.cc b/src/task_so.cc
index eecd7aa..92aeefe 100644
--- a/src/task_so.cc
+++ b/src/task_so.cc
@@ -116,7 +116,18 @@ int TaskSO::runInner()
auto tool = compiler();
const auto& cfg = ctor::get_configuration();
- return execute(settings, tool, args, cfg.env);
+ auto ldflags = cfg.getenv("LDFLAGS");
+ if(!ldflags.empty())
+ {
+ append(args, ld_option(toolchain, ctor::ld_opt::custom, ldflags));
+ }
+ auto res = execute(settings, tool, args, cfg.env);
+ if(res != 0)
+ {
+ std::filesystem::remove(targetFile());
+ }
+
+ return res;
}
int TaskSO::clean()
@@ -184,7 +195,6 @@ std::string TaskSO::flagsString() const
flagsStr += str;
}
}
- flagsStr += "\n";
for(const auto& dep : config.depends)
{