summaryrefslogtreecommitdiff
path: root/src/task.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2024-12-07 17:14:45 +0100
committerBent Bisballe Nyeng <deva@aasimon.org>2024-12-21 16:21:49 +0100
commitd2e7188e33a58cab05ef6292795303ad4b92a5f7 (patch)
treea6789fb724833d4d800626bf9b4707fa4ae1e9d8 /src/task.cc
parente166206702c8dbd3162452cf26f368e856ac0138 (diff)
WIPmsvc
Diffstat (limited to 'src/task.cc')
-rw-r--r--src/task.cc12
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
;
}