依存関係に基づくタスクとプラグインシステムで、Pythonプロジェクトのビルドライフサイクルを定義する自動化ツールです。
SCons/scons
SConsは、再ビルドが必要な対象を判定し、ビルドに必要なコマンドを実行するPython製のソフトウェア構築ツールです。
- スター
- 2,438
- フォーク
- 364
- 未解決の Issue
- 647
- 最終コミット
- 4 日前
これは何?
SConsは、古くなったコンポーネントを特定して再ビルドに必要なコマンドを実行することで、ソフトウェアやドキュメントなどの成果物のビルドを統括します。ビルド設定ファイルは通常のPythonスクリプトなので、専用の構文ではなく、汎用プログラミング言語を使ってビルドロジックを記述できます。
C、C++、FORTRANの依存関係解析機能を標準搭載し、D、Java、Yacc、Lex、Qt、SWIG、TeX、LaTeX用のビルダーも備えています。ほかの言語やファイル形式向けに、カスタムスキャナーやビルダーを追加することもできます。変更の検出にはデフォルトで暗号学的ハッシュを使用し、オプションでタイムスタンプも選べます。また、並列ビルドと共有ビルドキャッシュに対応しています。
SConsはクロスプラットフォームビルドを想定して設計されており、LinuxをはじめとするPOSIXシステム、Windows、macOS、OS/2で動作します。pipでインストールでき、Python 3.9以降が必要です。
主な機能
- 01カスタムDSLではなく、Pythonスクリプトでビルド設定を記述できます。
- 02C、C++、FORTRANの依存関係解析を標準搭載し、スキャナーを拡張できます。
- 03D、Java、Qt、SWIG、Yacc、Lex、TeX、LaTeX用のビルダーを標準搭載しています。
- 04暗号学的ハッシュで変更を検出し、オプションでタイムスタンプ方式も利用できます。
- 05並列ビルドと共有ビルドキャッシュに対応しています。
- 06Windows、Linux、macOSをはじめとするPOSIXシステムなど、複数のプラットフォームに対応しています。
ユースケース
- ヘッダーの依存関係を自動追跡する必要があるC/C++プロジェクトのビルド。
- コード生成、コンパイル、ドキュメント作成をまとめて制御する単一のビルドスクリプトの作成。
- WindowsとPOSIXシステムの両方で実行する必要があるクロスプラットフォームビルド。
- SConsのビルド定義からVisual Studioのプロジェクトファイルを生成。
クイックスタート
- 1
pipでSConsをインストールする
python -m pip install --user scons - 2
SCons User Guideの最初の章を読む
使う前に知っておきたいこと
- Python 3.9以降が必要です。
- Windowsでは、scons実行ファイルのあるPythonのScriptsディレクトリをPATHに追加する必要がある場合があります。
トピック
よくある質問
- scons とは?
- SConsは、再ビルドが必要な対象を判定し、ビルドに必要なコマンドを実行するPython製のソフトウェア構築ツールです。 SConsは、古くなったコンポーネントを特定して再ビルドに必要なコマンドを実行することで、ソフトウェアやドキュメントなどの成果物のビルドを統括します。ビルド設定ファイルは通常のPythonスクリプトなので、専用の構文ではなく、汎用プログラミング言語を使ってビルドロジックを記述できます。
- scons は無料で使えますか?ライセンスは?
- scons は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- scons は今もメンテナンスされていますか?
- 活発にメンテナンス中。scons の最終コミットは 2026年11月3日 です。
- scons は何に使えますか?
- ヘッダーの依存関係を自動追跡する必要があるC/C++プロジェクトのビルド。 コード生成、コンパイル、ドキュメント作成をまとめて制御する単一のビルドスクリプトの作成。 WindowsとPOSIXシステムの両方で実行する必要があるクロスプラットフォームビルド。 SConsのビルド定義からVisual Studioのプロジェクトファイルを生成。
- scons のインストール方法は?
- pipでSConsをインストールする: python -m pip install --user scons SCons User Guideの最初の章を読む
- scons はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/SCons/scons
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
タスクを通常のPython関数として定義でき、最新の状態にある処理をスキップするPython製タスクランナー兼ビルドツール。
Pythonディストリビューションなどからアプリケーションを再現可能な形で組み立て、デプロイするツール。
Electronデスクトップアプリのプロジェクト作成からビルド、パッケージ化、公開までを支える総合ツールチェーン。
一貫性のあるシンプルなPythonのコードスタイルを徹底し、複雑なコードパターンを検出する、厳格で独自の方針を持つflake8プラグイン。
Rust、C/C++、CUDA向けのコンパイラキャッシュ。worktreeやCI実行間で一致するビルド成果物を復元し、再ビルドを減らします。