diff options
Diffstat (limited to 'src/task_cc.cc')
-rw-r--r-- | src/task_cc.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/task_cc.cc b/src/task_cc.cc index 5c4adfb..4eb07ae 100644 --- a/src/task_cc.cc +++ b/src/task_cc.cc @@ -6,6 +6,7 @@ #include <iostream> #include <fstream> #include <cassert> +#include <algorithm> #include "ctor.h" #include "execute.h" @@ -30,6 +31,7 @@ TaskCC::TaskCC(const ctor::build_configuration& config, const ctor::settings& se base += sourceFile.stem(); target_type = ctor::target_type::object; + output_system = config.system; source_language = source.language; if(source_language == ctor::language::automatic) { @@ -71,13 +73,16 @@ TaskCC::TaskCC(const ctor::build_configuration& config, const ctor::settings& se std::filesystem::create_directories(targetFile().parent_path()); } -int TaskCC::registerDepTasksInner(const std::set<std::shared_ptr<Task>>& tasks) +int TaskCC::registerDepTasksInner(const std::vector<std::shared_ptr<Task>>& tasks) { for(const auto& task : tasks) { if(*task == _source.file) { - dependsTasks.insert(task); + if(std::find(dependsTasks.begin(), dependsTasks.end(), task) == dependsTasks.end()) + { + dependsTasks.push_back(task); + } } } |