diff options
Diffstat (limited to 'src/task_fn.cc')
| -rw-r--r-- | src/task_fn.cc | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/src/task_fn.cc b/src/task_fn.cc index b712e70..4f27cc7 100644 --- a/src/task_fn.cc +++ b/src/task_fn.cc @@ -24,7 +24,7 @@ TaskFn::TaskFn(ctor::target_type resolved_target_type, sourceDir.parent_path()); source_language = source.language; - if(std::holds_alternative<ctor::GeneratorOneToOne>(config.function)) + if(config.function_one_to_one) { if(source.source_type == ctor::source_type::generated) { @@ -41,7 +41,7 @@ TaskFn::TaskFn(ctor::target_type resolved_target_type, } _targetFile = base / source.output; } - else if(std::holds_alternative<ctor::GeneratorManyToOne>(config.function)) + else if(config.function_many_to_one) { for(const auto& src : config.sources) { @@ -74,7 +74,7 @@ bool TaskFn::dirtyInner() return true; } - if(std::holds_alternative<ctor::GeneratorManyToOne>(config.function)) + if(config.function_many_to_one) { if(!std::filesystem::exists(sourceListFile)) { @@ -94,7 +94,7 @@ bool TaskFn::dirtyInner() std::filesystem::file_time_type last_changed{}; bool missing{false}; - if(std::holds_alternative<ctor::GeneratorOneToOne>(config.function)) + if(config.function_one_to_one) { if(!std::filesystem::exists(sourceFile)) { @@ -102,7 +102,7 @@ bool TaskFn::dirtyInner() } last_changed = std::filesystem::last_write_time(sourceFile); } - else if(std::holds_alternative<ctor::GeneratorManyToOne>(config.function)) + else if(config.function_many_to_one) { bool first{true}; for(const auto& source : sources) @@ -144,7 +144,7 @@ bool TaskFn::dirtyInner() int TaskFn::runInner() { - if(std::holds_alternative<ctor::GeneratorManyToOne>(config.function)) + if(config.function_many_to_one) { // Write sourceList to file. std::ofstream sourceListStream(sourceListFile.string()); @@ -160,20 +160,17 @@ int TaskFn::runInner() } int res{}; - if(std::holds_alternative<std::monostate>(config.function)) + if(config.function_one_to_one) { - } - else if(std::holds_alternative<ctor::GeneratorOneToOne>(config.function)) - { - auto func = std::get<ctor::GeneratorOneToOne>(config.function); + auto func = config.function_one_to_one; res = func(sourceFile.string(), targetFile().string(), config, settings); } - else if(std::holds_alternative<ctor::GeneratorManyToOne>(config.function)) + else if(config.function_many_to_one) { - auto func = std::get<ctor::GeneratorManyToOne>(config.function); + auto func = config.function_many_to_one; res = func(sources, targetFile().string(), config, @@ -196,7 +193,7 @@ int TaskFn::clean() std::filesystem::remove(targetFile()); } - if(std::holds_alternative<ctor::GeneratorManyToOne>(config.function)) + if(config.function_many_to_one) { if(std::filesystem::exists(sourceListFile)) { @@ -211,7 +208,7 @@ int TaskFn::clean() std::vector<std::string> TaskFn::depends() const { std::vector<std::string> deps; - if(std::holds_alternative<ctor::GeneratorManyToOne>(config.function)) + if(config.function_many_to_one) { for(const auto& src : config.sources) { |
