summaryrefslogtreecommitdiff
path: root/src/task_cc.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2025-12-25 18:24:30 +0100
committerBent Bisballe Nyeng <deva@aasimon.org>2025-12-25 18:24:30 +0100
commit0697033ec271aa76ecb9aff89487b7a07f6b4a8c (patch)
treeb07b10beaa32f604551d8d912314dfe536b73097 /src/task_cc.cc
parent3091c5b12717a44a67962b9e245b2de8069a7cf5 (diff)
Decorate sources as 'generated' to make sure they inject a dependency to their generators, and look for the sources in the build folder instead of the source folder.generated_sources
Diffstat (limited to 'src/task_cc.cc')
-rw-r--r--src/task_cc.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/task_cc.cc b/src/task_cc.cc
index 9628455..f81023f 100644
--- a/src/task_cc.cc
+++ b/src/task_cc.cc
@@ -23,6 +23,10 @@ TaskCC::TaskCC(const ctor::build_configuration& config_, const ctor::settings& s
, sourceDir(sourceDir_)
, _source(source)
{
+ if(source.source_type == ctor::source_type::generated)
+ {
+ sourceFile = std::filesystem::path(settings.builddir) / sourceFile;
+ }
sourceFile /= source.file;
std::filesystem::path base = sourceFile.parent_path();
@@ -252,6 +256,10 @@ int TaskCC::clean()
std::vector<std::string> TaskCC::depends() const
{
+ if(_source.source_type == ctor::source_type::generated)
+ {
+ return {sourceFile.string()};
+ }
return {};
}