diff options
Diffstat (limited to 'src/task.h')
-rw-r--r-- | src/task.h | 38 |
1 files changed, 18 insertions, 20 deletions
@@ -6,11 +6,10 @@ #include <vector> #include <string> #include <atomic> -#include <set> #include <memory> #include <filesystem> -#include "libctor.h" +#include "ctor.h" enum class State { @@ -21,20 +20,19 @@ enum class State Error, }; -struct Settings; - class Task { public: - Task(const BuildConfiguration& config, const Settings& settings, - const std::string& sourceDir); + Task(const ctor::build_configuration& config, const ctor::settings& settings, + std::string sourceDir); + virtual ~Task() = default; - int registerDepTasks(const std::set<std::shared_ptr<Task>>& tasks); - virtual int registerDepTasksInner(const std::set<std::shared_ptr<Task>>& tasks) { return 0; } + int registerDepTasks(const std::vector<std::shared_ptr<Task>>& tasks); + virtual int registerDepTasksInner([[maybe_unused]]const std::vector<std::shared_ptr<Task>>& tasks) { return 0; } bool operator==(const std::string& dep); - virtual std::string name() const; + std::string name() const; bool dirty(); bool ready(); int run(); @@ -58,14 +56,14 @@ public: //! Returns a reference to the originating build config. //! Note: the build config of a derived task will be that of its parent //! (target) task. - const BuildConfiguration& buildConfig() const; + const ctor::build_configuration& buildConfig() const; - TargetType targetType() const; - Language sourceLanguage() const; - OutputSystem outputSystem() const; + ctor::target_type targetType() const; + ctor::language sourceLanguage() const; + ctor::output_system outputSystem() const; std::string compiler() const; - std::set<std::shared_ptr<Task>> getDependsTasks(); + std::vector<std::shared_ptr<Task>> getDependsTasks(); virtual std::string source() const { return {}; } @@ -75,11 +73,11 @@ protected: virtual bool dirtyInner() { return false; } std::vector<std::string> dependsStr; - std::set<std::shared_ptr<Task>> dependsTasks; - const BuildConfiguration& config; - TargetType target_type{TargetType::Auto}; - Language source_language{Language::Auto}; - OutputSystem output_system{OutputSystem::Host}; - const Settings& settings; + std::vector<std::shared_ptr<Task>> dependsTasks; + const ctor::build_configuration& config; + ctor::target_type target_type{ctor::target_type::automatic}; + ctor::language source_language{ctor::language::automatic}; + ctor::output_system output_system{ctor::output_system::host}; + const ctor::settings& settings; std::string sourceDir; }; |