我正在尝试将“git describe”的输出添加到我的应用程序的about窗口中,因此更容易找到人们使用的应用程序的版本。
我可以通过添加以下编译器标志来实现: -DAPP_VERSION =“$(git describe HEAD)”
但由于该项目基于qmake,我想找到一种方法将其放入Qt项目文件中。 这可能吗?如果是这样,怎么样?
编辑: 我尝试添加以下内容:
QMAKE_CXXFLAGS + = -DAPP_VERSION =“$(git describe HEAD)”
但它只是给了我“-DAPP_VERSION =”,所以我想我必须使用一些转义字符,但我不知道哪些和哪里。 :/
答案 0 :(得分: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();
}
答案 1 :(得分:1)
您也可以使用
QMAKE_CXXFLAGS += -DAPP_VERSION=\\\"$$system(git describe HEAD)\\\"
这将在qmake运行期间仅执行一次git命令,这可能会加快大型项目的编译速度。但是,您必须确保在从存储库中提取后运行qmake
和make clean
。