Comment puis-je passer la sortie d'une commande comme un indicateur du compilateur via un fichier de projet Qt?

StackOverflow https://stackoverflow.com/questions/852437

  •  21-08-2019
  •  | 
  •  

Question

Je suis en train d'ajouter la sortie de « git décrire » à propos de la fenêtre de ma demande, il est donc plus facile de savoir quelle version de l'application utilisent les gens.

Je peux le faire en ajoutant le drapeau du compilateur suivant: -DAPP_VERSION = "$ (git décrit HEAD)"

Mais puisque le projet est basé sur qmake, je voudrais trouver un moyen de mettre cela dans le fichier de projet Qt. Est-ce possible? Et si oui, comment?

modifier: J'ai essayé d'ajouter ce qui suit:

QMAKE_CXXFLAGS + = -DAPP_VERSION = "$ (git décrit HEAD)"

Mais il m'a donné « -DAPP_VERSION = », donc je suppose que je dois utiliser des caractères d'échappement, mais je ne sais pas quels sont ceux et où. : /

Était-ce utile?

La solution

Problème résolu grâce à ce lien: http: // robertcarlsen .net / blog / 2009/01/06 / qmake-Xcode-bug-258

Voici un exemple de projet qt je le tester: 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();
}

Autres conseils

Vous pouvez également utiliser

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

exécutera la commande git une seule fois pendant la course qmake qui pourrait accélérer la compilation des grands projets. Cependant, vous devez vous assurer de fonctionner et qmake après avoir tiré à partir make clean du dépôt.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top