summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/task.cc9
-rw-r--r--src/task.h2
-rw-r--r--src/task_cc.cc5
-rw-r--r--src/task_cc.h1
4 files changed, 6 insertions, 11 deletions
diff --git a/src/task.cc b/src/task.cc
index cd03fce..ef7731b 100644
--- a/src/task.cc
+++ b/src/task.cc
@@ -48,10 +48,11 @@ bool Task::operator==(const std::string& depStr)
std::filesystem::path generated_output = sourceDir;
generated_output /= target();
return
- name() == depStr ||
- target() == depStr ||
- generated_output == depStr ||
- targetFile().string() == depStr
+ (!derived() && name() == depStr) || // compare to name
+ (!derived() && config.target == depStr) || // compare to stated target (ex. foo.a)
+ target() == depStr || // compare to derived (derived to foo.lib on msvc)
+ generated_output == depStr || // not sure what this is for?!
+ targetFile().string() == depStr // compare to target output file
;
}
diff --git a/src/task.h b/src/task.h
index e930a54..32d0de3 100644
--- a/src/task.h
+++ b/src/task.h
@@ -32,7 +32,7 @@ public:
bool operator==(const std::string& dep);
- virtual std::string name() const;
+ std::string name() const;
bool dirty();
bool ready();
int run();
diff --git a/src/task_cc.cc b/src/task_cc.cc
index 9de2657..f4a754f 100644
--- a/src/task_cc.cc
+++ b/src/task_cc.cc
@@ -90,11 +90,6 @@ int TaskCC::registerDepTasksInner(const std::vector<std::shared_ptr<Task>>& task
return 0;
}
-std::string TaskCC::name() const
-{
- return {};
-}
-
bool TaskCC::dirtyInner()
{
if(!std::filesystem::exists(sourceFile))
diff --git a/src/task_cc.h b/src/task_cc.h
index 6c4683a..2299fcd 100644
--- a/src/task_cc.h
+++ b/src/task_cc.h
@@ -21,7 +21,6 @@ public:
int registerDepTasksInner(const std::vector<std::shared_ptr<Task>>& tasks) override;
- std::string name() const override;
bool dirtyInner() override;
int runInner() override;