summaryrefslogtreecommitdiff
path: root/src/task_fn.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/task_fn.cc')
-rw-r--r--src/task_fn.cc27
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)
{