17:39:29 # Life またビルドシステムを書き直した。 手元のプロジェクトで使ってたNodejsで書いたビルドシステムがあったんだけどそれをC++で書き直してみた。Nodejsである必要ないよなぁとおもって。C++のプロジェクトだったらC++でビルドシステム書くべきな気がしたので。 BUILDみたいな形式になると面白いかなとかいろいろ考えたんだけど結局は素直にC++のコードっぽい書き方にした。 コードとしては情報を提供したwら必要なNinjaのルールを生成するというもの。 もうちょっとKey/Valueなかんじにしたいかなと思ったらc++20が必要になりそうだったのでInitializer_listで我慢。
int main() { NinjaBuilderConfig config; NinjaBuilder n(config); n.CompileLinkRunTest("gitlstree_test", {"basename", "cached_file", "concurrency_limit", "directory_container", "get_current_dir", "git_cat_file", "gitlstree", "gitlstree_test", "scoped_timer", "stats_holder", "strutil"}, {"out/fetch_test_repo.sh.result"}); }