Je travaille avec C++ sur Visual Studio 2015 et utilise Git comme un contrôle source. J'écris une application multiplate-forme et je voudrais que mon application inclue la branche git et le commit à partir duquel elle a été construite.Visual Studio 2015 - Définition d'une variable de préprocesseur avec la branche git et la validation git
Sur les plateformes autres que Visual Studio je mets les lignes suivantes dans mon Makefile:
GIT_CUR_COMMIT := $(shell git rev-parse --verify HEAD)
GIT_CUR_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
DEPS += -DGIT_COMMIT=\"$(GIT_CUR_COMMIT)\" -DGIT_BRANCH=\"$(GIT_CUR_BRANCH)\"
Et puis dans mon application je code pour lire ces variables préprocesseur et les exposer par programme:
std::string getGitCommit()
{
#ifdef GIT_COMMIT
return GIT_COMMIT;
#endif
return "unavailable";
}
std::string getGitBranch()
{
#ifdef GIT_BRANCH
return GIT_BRANCH;
#endif
return "unavailable";
}
Mais dans Visual Studio, il n'y a pas de Makefiles. Comment puis-je définir ces deux variables GIT_CUR_COMMIT
et GIT_CUR_BRANCH
au moment de la compilation et obtenir le même comportement?
Je construis en utilisant makefiles dans Visual Studio. Donc, "il n'y a pas de makefile" n'est pas un truisme, mais plutôt comment vous choisissez de construire avec Visual Studio. Je suppose que vous utilisez le bâtiment basé sur vcproj? – Yakk
Oui, je suis désolé de ne pas être clair. J'utilise vcproj based building – fx23