From ba04d2889a4e017c6043bac9951f722e60b63bc5 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Tue, 14 Sep 2021 07:46:43 +0200 Subject: Add suport for building and running unittests with the 'check' target. --- src/build.cc | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) (limited to 'src/build.cc') diff --git a/src/build.cc b/src/build.cc index 445979e..4cec3b9 100644 --- a/src/build.cc +++ b/src/build.cc @@ -7,8 +7,6 @@ #include #include -#include "tasks.h" - using namespace std::chrono_literals; int build(const Settings& settings, @@ -171,3 +169,39 @@ int build(const Settings& settings, return 0; } + +int build(const Settings& settings, + const std::string& name, + const std::vector& targets, + const std::list>& all_tasks) +{ + bool task_found{false}; + std::list> ts; + + for(const auto& target : targets) + { + for(auto task : all_tasks) + { + if(task->name() == target.config.target || + task->target() == target.config.target) + { + std::cout << target.config.target << "\n"; + task_found = true; + + auto depSet = getDepTasks(task); + for(const auto& task : depSet) + { + ts.push_back(task); + } + } + } + } + + if(!task_found) + { + std::cerr << "*** No rule to make target '" << name << "'. Stop.\n"; + return 1; + } + + return build(settings, name, ts, all_tasks); +} -- cgit v1.2.3