CMake
| 開発元 | Andy Cedilnik, Bill Hoffman, Brad King, Ken Martin, Alexander Neundorf |
|---|---|
| 最新版 | 2.8.2(2010年6月28日) |
| 対応OS | クロスプラットフォーム |
| 種別 | Software development tools |
| ライセンス | BSDライセンス |
| 公式サイト | http://www.cmake.org/ |
CMakeはソフトウェアのビルドを自動化するためのクロスプラットフォームなシステムである。 UnixにおけるMakeに相当するものであり、ビルドプロセスは設定ファイルCMakeLists.txtによって完全に制御される。 最終的なソフトウェアを直接にはビルドしない点がMakeとは異なっており、 代わりに、よく使われている標準的なビルドファイル(UnixにおけるmakefileやWindows Visual C++におけるプロジェクト/ワークスペースなど)を生成する。 このため、開発者は自分の使いやすい開発環境(IDEなど)から利用できる。 ネイティブなビルド環境を利用する点がSConsなどのような類似システムと最も異なっている。 CMakeはさまざまな条件下でのソースコードのコンパイル、ライブラリやラッパーの生成、実行ファイルのビルドに対応できる。CMake は場所内ビルドと場所外ビルドをサポートするので、単一のビルドツリーに対して複数のビルドをサポートする[1]。CMake は静的および動的ライブラリのビルドもサポートする。
"CMake" という名前は "cross platform make"(クロスプラットフォームな make)の略である。 名前に "make" を使っているのにもかかわらず、CMake は make とは別で、Unix 開発で一般的な make システムよりもより高度なアプリケーションスイートである。
目次 |
[編集] 歴史
CMakeが作られたのは、可視化人体画像データプロジェクト(Visible Human Project)の一部として合衆国連邦医学図書館(United States National Library of Medicine)の資金提供を受けたInsight Segmentation and Registration Toolkit (ITK)のための適切なクロスプラットフォーム構築環境の必要性に応えるためだった。CMake は pcmaker と呼ばれる初期のシステムに影響を受けていた。pcmaker はオープンソースの 3D グラフィックスおよび視覚化システムVisualization Toolkit (VTK)を支援するために Ken Martin その他の開発者が作った。CMake を作るために、Kitware 社の Bill Hoffman はいくつかの鍵となるアイディアを pcmaker から持ち込み、GNU 構築システム(Autotools) のある機能に適合させようと考えて、彼自身のさらに多くのアイディアを付け加えた。最初の CMake の実装は、2000年中ごろだったが、2001年の初めに開発は加速していた。CMake に組み込まれた多数の改良は、CMake に参画した他の開発者たちによるものである。たとえば、VXL ソフトウェア・コミュニティは多数の精選された機能に寄与して CMake を彼らの構築環境に適合させた。Brad King は CABLE と GCC-XML のサポートのためにいくつかの機能、自動化ラッピングツールのセットを追加した。また GE 社の研究開発部門は、そのテスティング基盤(DART)のサポートを求めた。このほかの機能は VTK の構築環境の CMake への移行を支援し、ParaView (ロスアラモス国立研究所 の先端コンピューティング研究所(Advanced Computing Lab)を支援する並行視覚化システム)をサポートするために追加された。
[編集] 主な特徴
- 設定ファイルは CMake スクリプトであり、スクリプトはソフトウェアのビルドに特化したプログラミング言語を使う。
- C、C++、Fortran や Java に対する自動依存分析の組込み。
- CMake スクリプト言語を通した SWIG、Qt や FLTK のサポート。
- .dsp, .dsw, .sln 及び .vcproj ファイルの生成を含む、Microsoft Visual Studio .NET及び過去のバージョンのVisual Studioのサポート。
- 従来のタイムスタンプを使ったファイルの内容の変更の検知。
- 並列ビルドのサポート。
- クロスコンパイル
- CMake が graphviz のダイアグラムを出力するのを利用した、すべての依存関係の全体図。
- クロスプラットフォームなビルドのサポートと、Linux、他の POSIX システム(AIX、*BSD システム、HP-UX、IRIX/SGI、MinGW/MSYS や Solaris を含む)、Mac OS X や Windows 95/98/NT/2000/XP での動作確認。
- DART、CTest や CPack というソフトウェアのテストとリリースのためのツール群との統合。
[編集] Cmakeを利用しているアプリケーション
- Boost C++ Library
- Bullet Physics Engine
- Chicken
- DevIL - オープンな画像ライブラリ
- Drishti
- Insight Segmentation and Registration Toolkit
- KDE (バージョン4から)
- Kicad
- MySQL
- OpenSceneGraph
- ParaView
- PvPGN
- Quantum GIS
- Scribus
- The Visualization Toolkit
- lurc
- ParadisEO
- Box2D
[編集] 脚注
- ^ ここで場所内ビルド (in-place build) とは、ソースファイルが含まれるディレクトリ内でのビルドを指し、逆に場所外ビルド (out-of-place build) とはソースディレクトリ外でのビルドを指す。場所外ビルドでは、ソースディレクトリ内にコンパイルで生成されるオブジェクトファイルなどを入れられずに済み、ソースディレクトリをそのままの状態に保つことができる。つまりソースディレクトリと生成物の入るディレクトリとを別にできる。