История изменений
Исправление dimgel, (текущая версия) :
А что понимается под хелперами? Это вспомогательные крестофункции […] через голый Make-like
v.rule()
?
Да, всё так. rCompile(), rLink*() – в самом <cake/aux.h>, а svlen1 и zs1 – это отдельные проекты, трансформаторы кода на clang libtooling.
US<R> rrCompile(Oven& v, DirMaker& dm, const rrCompile_Params& pp) {
US<R> objs;
if (!pp.cpps.empty()) {
objs.reserve(pp.cpps.size());
for (auto& cpp : pp.cpps) {
auto srcPfx = pp.srcPfx .ends_with('/') ? pp.srcPfx : pp.srcPfx + '/';
auto targetPfx = pp.targetPfx.ends_with('/') ? pp.targetPfx : pp.targetPfx + '/';
auto o = util::fs::changePrefixAndExt(srcPfx, targetPfx, cpp, "o");
auto d = util::fs::changeExt(o, "d");
objs += v.rule(o, parseDFile(v, {.cpp = cpp, .d = d, .o = o}) + pp.morePrereqs, {
// ATTENTION: `o` is passed by value.
{[&v, &dm, o] {
if (v.verbose(Verbosity_Default)) {
v.getLog().compile("%s", o.c_str());
}
dm.mkdirRecursive(util::fs::getParentDir(o));
}},
pp.cc + V<S>{"-o", o, cpp}
});
}
}
return objs;
}
Исходная версия dimgel, :
А что понимается под хелперами? Это вспомогательные крестофункции […] через голый Make-like
v.rule()
?
Да, всё так. rCompile(), rLink*() – в самом <cake/aux.h>, а svlen1 и zs1 – это отдельные проекты, трансформаторы кода на clang libtooling.