2

「git describe」の出力をアプリケーションの about ウィンドウに追加しようとしているので、人々が使用しているアプリケーションのバージョンを簡単に見つけることができます。

次のコンパイラ フラグを追加することでそれを行うことができます: -DAPP_VERSION="$(git describe HEAD)"

しかし、プロジェクトはqmakeに基づいているため、これをQtプロジェクトファイルに入れる方法を見つけたいと思います。これは可能ですか?もしそうなら、どのように?

編集:以下を追加してみました:

QMAKE_CXXFLAGS += -DAPP_VERSION="$(git describe HEAD)"

しかし、「-DAPP_VERSION =」が表示されただけなので、エスケープ文字を使用する必要があると思いますが、どれがどこであるかわかりません。:/

4

2 に答える 2

5

このリンクのおかげで問題が解決しました: http://robertcarlsen.net/blog/2009/01/06/qmake-xcode-bug-258

テストに使用したqtプロジェクトのサンプルは次のとおりです:qt.pro:

######################################################################
# Automatically generated by qmake (2.01a) Thu Apr 2 16:23:05 2009
######################################################################

TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .

# Input
SOURCES += qt.cpp

QMAKE_CXXFLAGS += -DAPP_DATE=\\\"`date +'\"%a_%b_%d,_%Y\"'`\\\"
QMAKE_CXXFLAGS += -DAPP_VERSION=\\\"`git describe`\\\"

qt.cpp:

#ifndef APP_DATE
#define APP_DATE "1/1/1970"
#endif

#ifndef APP_VERSION
#define APP_VERSION "local-dev"
#endif

#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QString version = QString("version ") + APP_VERSION + ' ' + APP_DATE;
    QLabel *label = new QLabel(version);
    label->show();
    return app.exec();
}
于 2009-05-12T12:51:59.990 に答える