| 開発者 | Qt プロジェクト |
|---|---|
| 初回リリース | 2012年2月15日[1] |
| 安定版リリース | 1.22.1 / 2022年4月29日[2] |
| リポジトリ | www.code.qt.io/cgit/qbs/qbs.git |
| 書かれた | C++、JavaScript、QML 、 JavaとTypeScriptの一部 |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | ビルド自動化、ソフトウェア開発ツール |
| ライセンス | LGPL [3] |
| Webサイト | wiki.qt.io/Qbs |
Qbs (キューブスと発音) は、ソフトウェアのビルド プロセスを管理するためのクロスプラットフォームの無料オープンソース ソフトウェアです。主にC / C++などのさまざまなプログラミング言語で記述された大規模で複雑なプロジェクトをサポートするように設計されています。
Qbs は、高レベルのプロジェクト記述からビルド グラフを生成する (前身のqmakeなど) オールインワン ツールであり、さらに、低レベルのビルド グラフでコマンドを実行する ( makeなど) タスクも実行します。
Qbs は元々 Nokiaによって開発され、その後The Qt Companyによって開発され、同社のQt ツールキットとともに配布されました。Qbs は Qt フレームワークと統合され、Qt のメタオブジェクト システムやバイナリ リソース (画像など) の統合で使用される moc (メタ オブジェクト コンパイラ) および rcc (リソース コンパイラ) ソースの作成を自動化します。
2018 年に Qt グループによって非推奨となり、リソースがCMakeにリダイレクトされるようになりました(「Qbs の非推奨」)。。
特徴
Qbs は、ソース内ビルドのメカニズムがないため、単一のソース ツリーから複数のビルドを作成できることが保証されており、単一のコマンド呼び出しから並列にビルドすることもできます。これは重要な機能であり、ビルド ディレクトリが削除されてもソース ファイルは影響を受けず、出力成果物がソース ディレクトリに書き込まれないことを保証します。
Qbs には、特定のプログラミング言語、ツールキット、またはライブラリのサポートが組み込まれていません。これもまた、多くのQt関連のツールとワークフローのサポートをハードコードするqmakeとは対照的です。代わりに、Qbs には、さまざまなプログラミング言語とツールのサポートを可能にするQML方言とJavaScriptで記述された一連のモジュールが提供されています。Qbs は現在、 Android SDKとNDK、C、C++、Java、NSIS、TypeScript、WiX、Xcode、およびその他のさまざまなツール をサポートするモジュールを提供しています。
Qbs は、 Android、FreeBSD、iOS、Linux、macOS、QNX、tvOS、watchOS、Windowsなど、多くのプラットフォーム向けのプロジェクトをビルドでき、ユニバーサル Windows プラットフォームアプリケーション、INTEGRITY、VxWorks 、および開発中のその他のプラットフォームをサポートしています。
Qt Creator は組み込みの Qbs サポートを提供し、ジェネレーター機能によってVisual Studioの IDE 統合が提供されます。Xcodeのサポートは現在開発中です。
ビルドプロセス
Qbs のビルド プロセスは 2 段階で行われます。まず、プロジェクトの構成ファイルを読み取り、入力ノードと出力ノードのセットと、有向非巡回グラフ内のそれらの間の依存関係を計算することで、ビルド グラフが解決されます。次に、エグゼキュータは、依存関係ルールに従って、出力ファイルを作成するために必要なすべてのコマンドを並列に実行します。
各ビルド プロジェクトには、Qbs が内部ビルド グラフ形式のシリアル化された表現を保存するディレクトリ内に、単一のビルド グラフ (*.bg) ファイルが含まれます。このファイルをデシリアル化し、キャッシュされた情報を利用することで、Qbs はプロジェクトを非常に迅速に解決し、ほぼ瞬時に増分ビルドを実行できます。ビルド グラフ ファイルを削除すると、プロジェクト全体が完全に (クリーンに) 再構築されます。make とは対照的に、 Qbs はビルド ディレクトリ内のファイルのタイムスタンプに依存しないため、--check-outputsオプションを使用しない限り、その内容を改ざんしてもターゲットが再構築されることはありません。これは、一部のプラットフォーム (Windows など) では、ファイルシステムからタイムスタンプを読み取るのがビルド グラフ ファイルから読み取るのに比べて非常に遅いため、パフォーマンス上の理由で行われます。
Qbs ファイルの例
CppApplication {
名前: "helloworld"
ファイル: "main.cpp"
}
歴史
Qbsの開発は、 qmakeの代替の必要性に応えて、2010年にノキアで始まりました。Qbsの設計は、学習曲線の大幅な短縮、IDEとの統合の改善、予測可能な動作を備えた安定した強力な言語を提供することを目指しています。Qbs 1.0は2013年にリリースされ[4] 、その頃からQtプロジェクトのガバナンスモデルの下でQt Companyによってさらに開発が進められました。開発者は、最終的にQbsがqmakeに代わるQt独自のビルドシステムになることを望んでいました。しかし、2018年10月にqmakeやcmakeに取って代わられ[5]ました。2019年8月7日のブログ投稿で、Qt CompanyはQt 6からcmakeがQtの標準ビルドシステムになると述べ[6]、cmakeの圧倒的な人気を要因として挙げました。[6]
Qbsの開発は外部のボランティアに引き継がれ、2020年6月現在もQtプロジェクトの傘下で積極的にメンテナンスが行われている。[7] Qt社はQbsの開発を中止すると発表しているが、コミュニティによるQbsの将来のリリースに必要なインフラを提供することを約束している。[5]
Qbsを使用するアプリケーション
参考文献
- ^ 「Qbs の紹介」 The Qt Company . 2016 年 6 月 2 日閲覧。
- ^ 「ndex of /official_releases/qbs」. download.qt.io . 2022年5月13日閲覧。
- ^ 「Qt ライセンス - Qt 開発者ネットワーク」。qt-project.org。
- ^ 「qbs 1.0.0 リリース」。The Qt Company。2016年 6 月 2 日閲覧。
- ^ ab 「Qbs の廃止」www.qt.io。
- ^ ab 「Qt 6 の技術ビジョン - 次の大きなリリース」。www.qt.io。
- ^ 「GitHub - qbs/qbs: ソフトウェアプロジェクト向けの最新ビルドツール」。GitHub 。 2022年7月22日。
さらに読む
- ウザイル、スフィアン・ビン(2022年11月11日)。KDEをマスターする:初心者向けガイド。CRC Press。ISBN 978-1-000-77589-1。
外部リンク
- Qbs マニュアル
