10.2.3で CMake with Ninjaを使う

Posted by on in Blogs

この記事は、DAVID MILLINGTONによるNew in 10.2.3: Using CMake with Ninjaの抄訳です。

CMakeを使ったビルドのサポートは10.2.3の大きな新機能の1つです。まだ試されてない場合はイントロダクション WindowsでのCMakeビルドiOS/Androidでのビルドをお読みください。

本投稿の利用方法カバーはCMakeジェネレータとNinjaでの高速パラレルビルドえす。

CMake ジェネレータ

CMakeはコンパイラとプラットフォームに依存しないプロジェクトシステムですが、その名前にもかかわらず、実際にはメーキングやビルドはしません。そのかわりに、システム上にあるツールを利用し、CMakeLists.txtファイルを構築に必要なビルドデータに変換します。そのコンバージョンジェネレータです:特定のビルドシステム用のファイル/データを生成。これらを一度生成すると、そのツールを使用してビルドします。 プロジェクトを変更した場合、例えば、新しいファイルを追加したり、設定を変更するなどして、CMake自体を再実行する必要があります。

ジェネレータは「-G」コマンドラインスイッチを指定します。

必要ならばオールドファッションなmakefilesを使う事ができます。makeを使用する場合は、-G "BorlandMakeFiles"を使用してください。 他のジェネレータも使用できます。 特にCMakeでサポートしているのはNinjaです。

Ninja

Ninjaは非常に小さくて高速なビルドシステムです。これは、従来のDelphi/C++Builderアプリのように、単一のEXEとして提供されます。 並列ビルドも可能です。 C++Builderはすでに並列コンパイルをサポートしていますが、Ninjaは非常に優れた実装です。

-Gを指定したコマンドライン

cmake -DCMAKE_TOOLCHAIN_FILE=bccaarm.cmake -G Ninja

ここでは、Android用のビルド(bccaarm toolchainファイルを使用しています)。CMakeはその作業を行い、Ninjaジェネレータを使用して、Ninjaが作成するいくつかのファイルをビルドします:

そして、CMakeが完成したら、ninjaを起動するだけでプロジェクトをビルドできます:

ninja

Simple as that! Ninjaが引き継ぎ、ビルドして並行して実行します。 タスクマネージャを開くと、コンパイラの複数のコピーが表示されます。

コマンドラインでパラレル出力がシリアル化され、7つのステップが完了するたびに、ステータスが表示されます。

 

Overview

Ninjaの使用は非常にシンプルです。実際、すべての例で使用しています。マニュアルにはインストール手順が含まれています。

これは、一般的なCMakeをローカルマシン上で並列ビルドするための素晴らしい追加機能である、高速で軽量なビルドシステムです。

 



About
Gold User, No rank,
Delphi / C++Builder blogger

Comments

Check out more tips and tricks in this development video: