diff --git a/implementations/Crafter.Build-Clang.cpp b/implementations/Crafter.Build-Clang.cpp index 775096e..8ac6c40 100644 --- a/implementations/Crafter.Build-Clang.cpp +++ b/implementations/Crafter.Build-Clang.cpp @@ -255,7 +255,7 @@ BuildResult Crafter::Build(Configuration& config, std::unordered_map consumerMtime; + }; + for (const std::unique_ptr& iface : config.interfaces) { + if (objNewer(buildDir / (iface->path.filename().string() + ".o"))) { + buildResult.repack = true; + break; + } + bool partHit = false; + for (const std::unique_ptr& part : iface->partitions) { + if (objNewer(buildDir / (part->path.filename().string() + ".o"))) { + partHit = true; + break; + } + } + if (partHit) { buildResult.repack = true; break; } + } + if (!buildResult.repack) { + for (const Implementation& impl : config.implementations) { + if (objNewer(buildDir / (impl.path.filename().string() + "_impl.o"))) { + buildResult.repack = true; + break; + } + } + } + } } }