CMake

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内, 検索
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 は CABLEGCC-XML のサポートのためにいくつかの機能、自動化ラッピングツールのセットを追加した。また GE 社の研究開発部門は、そのテスティング基盤(DART)のサポートを求めた。このほかの機能は VTK の構築環境の CMake への移行を支援し、ParaViewロスアラモス国立研究所 の先端コンピューティング研究所(Advanced Computing Lab)を支援する並行視覚化システム)をサポートするために追加された。

[編集] 主な特徴

  • 設定ファイルは CMake スクリプトであり、スクリプトはソフトウェアのビルドに特化したプログラミング言語を使う。
  • CC++FortranJava に対する自動依存分析の組込み。
  • CMake スクリプト言語を通した SWIGQtFLTK のサポート。
  • .dsp, .dsw, .sln 及び .vcproj ファイルの生成を含む、Microsoft Visual Studio .NET及び過去のバージョンのVisual Studioのサポート。
  • 従来のタイムスタンプを使ったファイルの内容の変更の検知。
  • 並列ビルドのサポート。
  • クロスコンパイル
  • CMake が graphviz のダイアグラムを出力するのを利用した、すべての依存関係の全体図。
  • クロスプラットフォームなビルドのサポートと、Linux、他の POSIX システム(AIX*BSD システムHP-UXIRIX/SGIMinGW/MSYSSolaris を含む)、Mac OS XWindows 95/98/NT/2000/XP での動作確認。
  • DARTCTestCPack というソフトウェアのテストとリリースのためのツール群との統合。

[編集] Cmakeを利用しているアプリケーション

[編集] 脚注

  1. ^ ここで場所内ビルド (in-place build) とは、ソースファイルが含まれるディレクトリ内でのビルドを指し、逆に場所外ビルド (out-of-place build) とはソースディレクトリ外でのビルドを指す。場所外ビルドでは、ソースディレクトリ内にコンパイルで生成されるオブジェクトファイルなどを入れられずに済み、ソースディレクトリをそのままの状態に保つことができる。つまりソースディレクトリと生成物の入るディレクトリとを別にできる。

[編集] 関連項目

[編集] 外部リンク

個人用ツール
名前空間
変種
操作
案内
ヘルプ
ツールボックス
他の言語