2月2日、Swift.orgで「Swift Build テクノロジーの次の章(The Next Chapter in Swift Build Technologies)」と題した記事が公開された。この記事では、Swiftのビルド技術における新章としての「Swift Build」オープンソース化について詳しく紹介されている。
以下に、その内容を簡潔にまとめて紹介する。
Swiftはすでに多様なプラットフォームやデバイスで動作しており、ウェアラブルからサーバ、さらには複数のオペレーティングシステムまで幅広くサポートしている。こうした拡大に対応するため、クロスプラットフォームで強力なビルドツールの必要性が高まっている。
この新たなビルドテクノロジーの一歩として、 AppleはXcodeが内部的に使用しているビルドエンジン「Swift Build」をオープンソース化した。
Swift Buildは、llbuildプロジェクトをベースとして構築されているビルドエンジンであり、コマンドラインツールやライブラリ、アプリケーションなどの出力を生成する。XcodeおよびAppleのOSビルドプロセスで利用されているだけでなく、LinuxやWindows向けのターゲットビルドもサポートしている。
Swift Buildは、高レベルのクライアントであるSwift Package ManagerやXcodeなどからのビルド要求を受け付けるインフラ層のコンポーネントであり、次のような機能を備えている。
- Swiftコンパイラとの堅牢な連携による、Swiftプロジェクトのビルド処理
- ライブラリ、コマンドラインツール、GUIアプリケーションなど、多様な製品タイプと高度なビルド設定オプションに対応
- 並列処理を最大化するビルドグラフの最適化
これまでXcodeのビルドエンジンとSwift Package Managerのビルドエンジンは別々に存在しており、ビルド手法の相違により混乱が生じる場合があったとされている。今回、XcodeのビルドエンジンをSwiftプロジェクトに寄与し、Swiftコンパイラと並行してオープンソース開発を進めることで、 すべてのSwiftユーザに統一的で優れたビルド体験を提供することを目指している。
今後はSwift Package ManagerにおいてSwift Buildを代替エンジンとして統合するプルリクエストがすでに提出されており、コミュニティと協力してビルドシステムを統合していく計画が示されている。
今回の取り組みは、どのプラットフォームやIDEを使用していても、開発者が安定したパッケージエコシステムと洗練された開発体験を享受するための重要な一歩だとされている。GitHub上のswift-buildリポジトリには、ビルド方法やコントリビュートの手順に関するドキュメントも公開されており、フォーラムでのフィードバックやアイデアの提供も歓迎されている。
詳細は[The Next Chapter in Swift Build Technologies」を参照していただきたい。