SCons

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
SCons
開発元 Steven Knight
最新版 2.3.0 / 2013年3月2日
プラットフォーム クロスプラットフォーム
種別 ソフトウェア開発ツール
ライセンス MIT License
公式サイト www.scons.org
テンプレートを表示

SConsオープンソースのソフトウェアビルドツール。SConsは古典的な make ユーティリティの代替であり、さらにautotoolsの機能とccacheのようなコンパイラキャッシュ機能を統合している。それまでのツールと比較すると、使いやすく信頼性が高い。

概要[編集]

  • コンフィギュレーションファイルはPythonのスクリプトになっている。
  • CC++FORTRAN のファイルの依存関係の自動分析機能が組み込まれている。make のように "make depend" や "make clean"[1] といったコマンドを追加しなくても全ての依存関係を得られる。他の言語やファイルタイプについては、ユーザーが依存関係スキャナを定義することで容易に拡張できる。autotoolsとは異なり、gccに組み込まれている依存関係分析機能は使っていない。代わりに、C/C++ のソースファイルに対しては "#include" をregexpスキャンする。したがってgccを使った場合、依存関係分析が遅くなるし(スキャンを余分に行っているため)、信頼性が低い(例えば、-DSOMETHING といったプリプロセッサ用フラグを無視することになるため)が、gcc以外のコンパイラでも同じ依存関係スキャンを行うという意味では移植性が高くなっている。
  • CC++DJavaFORTRANObjective-CYaccLexQtSWIG を元からサポートしており、TeXLaTeXによる文書作成もサポートしている。他の言語やファイルタイプについてもユーザー定義のビルダーでサポート可能である。
  • SCCSRCSCVSSubversionBitKeeperPerforce からソースファイルを取り出せる。
  • Microsoft Visual Studio .NET および過去の Visual Studio をサポート(.dsp、.dsw、.sln、.vcproj ファイルを生成)
  • MD5シグネチャを使ってファイル内容の更新を検出する。一般的なタイムスタンプによる検出もサポートしており、どちらかを選択できる。
  • 並列ビルドをサポートしており、ディレクトリ構成とは関係なく指定した個数のジョブを同時に実行できる。
  • #include ファイル、ライブラリ、関数、typedef を探すというautoconfのような機能も組み込みでサポート。
  • 全依存関係のグローバルビューがあり、複数回のビルドやターゲットの並べ替えが不要。
  • 作成したファイルをキャッシュで共有でき、複数回のビルドが高速化できる。ccache に似ているが、C/C++ のコンパイルだけでなく、あらゆるターゲットファイルに対応している。
  • クロスプラットフォームのビルド向けに設計されており、Linux、その他のPOSIXシステム(AIXBSD系HP-UXIRIXSolaris)、Windows NT系Mac OS XOS/2 で動作する。

SConstruct ファイルの例[編集]

Program('main.c')

ユーザーが 'scons' コマンドを実行すると、'main'(Linux)または 'main.exe'(Windows)という実行ファイルをビルドする。

歴史と関連プロジェクト[編集]

元々は ScCons という名称のビルドツールで、2000年8月にロスアラモス国立研究所が開催した Software Carpentry(既存のプログラミングツールを代替するソフトウェアを募集したイベント)のビルド部門で優勝した。元々は Cons というユーティリティをベースとして設計されていた。

Wafはかつては "SCons/BKsys" という名称で、SCons に影響を受けてKDEコミュニティが生み出したツールである。KDE4とそれ以降のビルドにこれを使う計画があったが、CMake に移行した[2]

SConsを使っている主なアプリケーション[編集]

脚注[編集]

  1. ^ 多くの場合 "depend" や "clean" のターゲットは autotools が生成するか、ユーザーが自前で書く。make は単にそれを実行するツールである。
  2. ^ Why the KDE project switched to CMake -- and how (continued) LWN.net、
  3. ^ Understanding The Construction System of Chromium Google Code

外部リンク[編集]