'subdirs'テンプレートを使用するqmake.proファイルを使用して、Qtアプリのビルドシステムをまとめています。これは正常に機能し、各ターゲットがビルドされる順序を指定できるため、依存関係が適切に機能します。ただし、メインアプリで使用されるバージョン番号(ビルド日、SVNリビジョンなどを含む)を生成するツールをプロジェクトに追加しました-このバージョンツールを最初にビルドできますが、ビルド時に必要ですターゲットが構築される前に実行します(メインアプリに含まれるバージョン番号を含むヘッダーファイルを生成します)。
たとえば、私の単純なqmakeファイルは次のようになります。
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS = version \
lib \
tests \
mainapp
'version'がビルドされたら、'lib'がビルドされる前に実行します(コマンドラインでいくつかの引数を渡します)。
これが可能かどうか誰かが知っていますか?qmakeにはアプリを実行できる「system」コマンドがあるようですが、これをどのように活用できるかわかりません。
関連する質問は、私の単体テストに関するものです。これらは「テスト」プロジェクトに存在し、QTestフレームワークを使用します。'mainapp'をビルドする前にtestsexeを実行したいのですが、テストが失敗した場合(つまり、tests exeがゼロを返さない場合)、ビルドプロセスを終了したいと思います。
qmakeはmakefileを生成するように設計されていることを理解しているので、ここで少し多すぎることを望んでいるかもしれませんが、誰かが私にいくつかのポインターを与えることができれば、それは大歓迎です。