ninjaビルドシステムは条件分岐できない

Google Chromeで採用されているビルドシステムですが、ファイルの追加、ライブラリ追加、define追加とかはmakefileのときと同じか、簡単に設定できます。

欠点としては、makefileでは出来ていた条件分岐「ifeq」「else」「endif」ですが、ninjaでは使用できません。代わりになるものも探してみたのですが存在しないようでした。 改善されたらいいのですが、高速性のための仕様と思うので今後追加されることもないでしょうね。

じゃ、代替として、どうやったらできるんだ?と考えると、別のビルドシステム(cmakeとか)でninjaを生成するという話になるので、もともとのコードがninjaを使っていないならあえてninjaを選ぶ必要は無いのかなともいます。

とはいえ、もともとのコードがninjaを使ってそれに条件分岐をいれたいのであれば、、、、、、

私ならninjaでのコードやファイルの切り替えはあきらめて、プログラム実装で環境変数をみるとか、ファイルを覗く、他の機器やプログラムと通信して自分の設定を調べて、処理を切り替えるようにしたほうが良いのではないかと思います。

そのまんまやーんと、怒られそうですが、もっといい方法があればコメントください。

コメント

タイトルとURLをコピーしました