diff options
Diffstat (limited to 'src/task.cc')
-rw-r--r-- | src/task.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/task.cc b/src/task.cc index a9c0fee..ef7731b 100644 --- a/src/task.cc +++ b/src/task.cc @@ -3,7 +3,6 @@ // See accompanying file LICENSE for details. #include "task.h" -#include <unistd.h> #include <iostream> #include <algorithm> #include <utility> @@ -46,11 +45,14 @@ int Task::registerDepTasks(const std::vector<std::shared_ptr<Task>>& tasks) bool Task::operator==(const std::string& depStr) { + std::filesystem::path generated_output = sourceDir; + generated_output /= target(); return - name() == depStr || - target() == depStr || - sourceDir + "/" + target() == 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 ; } |