SCons
Steven Knight | |
3.1.2[1]
/ 2019 | |
リポジトリ | |
プログラミング | Python |
クロスプラットフォーム | |
ソフトウェア | |
ライセンス | MIT License |
scons |
SConsは、オープンソースのソフトウェアビルドツール。SConsは
概要
[- コンフィギュレーションファイルはPythonのスクリプトになっている。
- C、C++、FORTRAN のファイルの
依存 関係 の自動 分析 機能 が組 み込 まれている。make のように "make depend" や "make clean"[※ 1] といったコマンドを追加 しなくても全 ての依存 関係 を得 られる。他 の言語 やファイルタイプについては、ユーザーが依存 関係 スキャナを定義 することで容易 に拡張 できる。autotoolsとは異 なり、gccに組 み込 まれている依存 関係 分析 機能 は使 っていない。代 わりに、C/C++ のソースファイルに対 しては "#include" をregexpスキャンする。したがってgccを使 った場合 、依存 関係 分析 が遅 くなるし(スキャンを余分 に行 っているため)、信頼 性 が低 い(例 えば、-DSOMETHING といったプリプロセッサ用 フラグを無視 することになるため)が、gcc以外 のコンパイラでも同 じ依存 関係 スキャンを行 うという意味 では移植 性 が高 くなっている。 - C、C++、D、Java、FORTRAN、Objective-C、Yacc、Lex、Qt、SWIG を
元 からサポートしており、TeXとLaTeXによる文書 作成 もサポートしている。他 の言語 やファイルタイプについてもユーザー定義 のビルダーでサポート可能 である。 - SCCS、RCS、CVS、Subversion、BitKeeper、Perforce からソースファイルを
取 り出 せる。 - Microsoft Visual Studio .NET および
過去 の Visual Studio をサポート(.dsp、.dsw、.sln、.vcproj ファイルを生成 ) - MD5シグネチャを
使 ってファイル内容 の更新 を検出 する。一般 的 なタイムスタンプによる検出 もサポートしており、どちらかを選択 できる。 並列 ビルドをサポートしており、ディレクトリ構成 とは関係 なく指定 した個数 のジョブを同時 に実行 できる。- #include ファイル、ライブラリ、
関数 、typedef を探 すというautoconfのような機能 も組 み込 みでサポート。 全 依存 関係 のグローバルビューがあり、複 数 回 のビルドやターゲットの並 べ替 えが不要 。作成 したファイルをキャッシュで共有 でき、複 数 回 のビルドが高速 化 できる。ccache に似 ているが、C/C++ のコンパイルだけでなく、あらゆるターゲットファイルに対応 している。- クロスプラットフォームのビルド
向 けに設計 されており、Linux、その他 のPOSIXシステム(AIX、BSD系 、HP-UX、IRIX、Solaris)、Windows NT系 、macOS、OS/2 で動作 する。
SConstruct ファイルの例
[Program('main.c')
ユーザーが 'scons' コマンドを
歴史 と関連 プロジェクト
[Waf(
SConsを使 っている主 なアプリケーション
[- The Battle for Wesnoth[3]
- バトルフィールド1942[
要 出典 ] - Csound[4]
- Doom 3[5]
- FCEUX[
要 出典 ] - gem5[6]
- gpsd[7]
- GtkRadiant[8]
- Madagascar[9]
- Mixxx[10]
- MongoDB[11]
- Nullsoft Scriptable Install System[12]
- NumPy and SciPy[
要 出典 ] - OpenNebula[
要 出典 ] - OSRM[13]
- SuperCollider[
要 出典 ] - VMware[
要 出典 ] - Formerly V8 (JavaScript engine)[14]
- Wolfenstein: Enemy Territory[
要 出典 ] - XORP, MCA2[15]
- Godot[16]
注釈
[脚注
[- ^ Archives - SCons
- ^ Why the KDE project switched to CMake -- and how (continued) LWN.net、
- ^ “CompilingWesnoth”. Wiki. Wesnoth. 2011
年 4月 11日 閲覧 。 - ^ “Building Csound”. C sounds. 2011
年 4月 11日 閲覧 。 - ^ “README.txt”. id Software. 2015
年 5月 13日 閲覧 。 - ^ Gem5.
- ^ “SCons is full of win today”. ESR. iBiblio (2011
年 4月 5日 ). 2011年 4月 11日 閲覧 。 - ^ “Developer documentation for GtkRadiant 1.6.0 (Zeroradiant)” (Trac). QE radiant (2008
年 6月 30日 ). 2009年 12月28日 閲覧 。 - ^ “Installation”. Wiki. Ahay (2011
年 2月 26日 ). 2011年 4月 11日 閲覧 。 - ^ “Mixxx/Compiling” (2014
年 8月 26日 ). 2015年 7月 17日 閲覧 。 - ^ “Building for Linux”. MongoDB. 10gen (January 30, 2009). February 8, 2011
閲覧 。 - ^ “INSTALL”. NSIS. Source forge (2011
年 5月 28日 ). 2011年 4月 11日 閲覧 。 - ^ “Open Source Routing Machine”. May 29, 2012
閲覧 。 - ^ “How to Download and Build V8”. V8. Google. July 5, 2011
閲覧 。 - ^ “Modular Controller Architecture”. Research Center for Information Technology (FZI), Karlsruhe Institute of Technology (KIT). 2015
年 7月 17日 閲覧 。 - ^ “Godot Docs ビルドシステムの
説明 ”. 2020年 10月 16日 閲覧 。
関連 項目
[外部 リンク
[- SCons: A software construction tool - SCons
公式 ウェブサイト - Make Alternatives Freshmeat
- Stop the autoconf insanity! Why we need a new build system. Freshmeat
- Empirical Comparison of SCons and GNU Make, Ludwig Hähne, Technical University Dresden, August 21, 2008