6
Qtは.NETのようにあなたのプログラムに関するどんな種類のバージョン情報も保持していますか?ビルド番号のように?それとも、SVNリビジョンに簡単にアクセスできますか?Qt自動ソフトウェアバージョン?
Qtは.NETのようにあなたのプログラムに関するどんな種類のバージョン情報も保持していますか?ビルド番号のように?それとも、SVNリビジョンに簡単にアクセスできますか?Qt自動ソフトウェアバージョン?
号
しかし、あなたはqmake
を使用しているならば、あなたがやりたいために使用可能であるかもしれない、任意のコマンドの結果に基づいて、ビルドシステムでコンパイラフラグを設定することができます。例えば
あなたはgitのを使用していた場合、あなたはあなたの.pro
ファイル内でこのような何かを行うことができます:
REVISION = $$system(git rev-parse HEAD)
DEFINES += APP_REVISION=$$REVISION
あなたはこのように使用することができ、あなたのプログラムを、コンパイル時にAPP_REVISION
マクロを与えるだろう。
// stringize macro
#define _STR(X) #X
#define STR(X) _STR(X)
QTextStream(cout) << "MyApp revision " STR(APP_REVISION) << endl;
ニート!私はこれと一緒に遊ぶ必要があります。 NetBeansをIDEとして使用していて、.proファイル自体を作成するので、変更を上書きしないようにする方法を見つけなければなりません。 – mpen
プロジェクトファイルで 'DEFINES + = APP_REVISION = \\\" $$ REVISION \\\ "'を実行すると、ソースファイルを 'STR'マクロで汚染する必要はありません。 –
@Dan:これは事実ですが、問題は、あなたの例で必要なバックスラッシュの数がプラットフォーム固有であることです(シェル特有のものでも、Windowsのmingw32-make.exeは環境に応じてcmdまたはsh経由でコマンドを実行できるためです) )。私はそれを正しくするのは非常に難しいと思う。 – rohanpm