CMake
CMakeはインプレースおよびアウトオブプレースでのビルドの双方に対応しており、同じソースツリーから複数のビルド結果を生成でき、またクロスコンパイルにも対応している。この、ソースツリーの外側にビルド結果を生成する仕組みはCMakeの重要な特徴で、ビルドツリーが削除されてもソースファイルには影響しない。
CMakeは必要な実行ファイルやその他のファイル、ライブラリの場所を探し出すことができる。その結果はキャッシュに保存され、またそれはビルドの前に調整することができる。調整には、プロジェクトに付属するグラフィカルエディタを使うことができる。
複雑なディレクトリ階層や、いくつものライブラリに依存したアプリケーションにもCMakeは対応している。例えば、依存しているツールキットやライブラリがそれぞれに複数のディレクトリを持つような場合でも処理が可能である。加えて、最終的なアプリケーションのコンパイルに必要なコードを生成する実行ファイルを事前に生成しておくことが求められるような複雑なビルドにも対応できる。CMakeはオープンソースであり、拡張も容易なため、必要に応じて特定のプロジェクト向けに改変することもできる。
CMakeはUNIX、Windows、macOS、OS/2といった様々なプラットフォームやMicrosoft Visual C++、Cygwin、MinGW、XcodeといったIDEに対応したmakefileを生成することが可能である。