Pulling git revision during build (with QT Creator)
I would like the version application to include the git commit. I have added the following to my .pro file:
VERSION_BUILD='$(shell cd $$PWD;git rev-list HEAD --count)'
DEFINES += VERSION_NUMBER="\"$$sprintf("%1.%2.%3", $$VERSION_MAJOR, $$VERSION_MINOR, $$VERSION_BUILD)\""
The seems to work in OS X but not in windows. Do I need to install a separate shell applications on my Windows compiling computer or is one included with QT Creator?
as far as i know, no git.exe is include in Qt / Creator installers.
Pablo J. Rogina
@Pablo-J.-Rogina I do have git working on windows, yes. But I guess I don't know how the command is passed to Windows, if Qt does a transition of the 'shell' command based on the OS or if it is passed as-is irrespective of the OS.
On Windows, it might very well be
What's the difference between using
and the replace function
Is there any difference? The only comparison of the two I found said that $$system wasn't run on every build.
When I experimented with including the Git hash into the executable, I used:
SHA1 = $$system(git rev-parse --short=8 HEAD)
I can't directly tell you what's the difference between $shell and $$system, but there are functions that are run on every
makeand some are run on every
@aha_1980 Yes, git.exe seems to be included in my path. I can open a command window in Windows, cd to the project directory and type in the following command:
git rev-list HEAD --count
I get the expect result as output. As such, it must be included in the path.
In any case, neither
VERSION_BUILD='$(shell git rev-list HEAD --count)'
VERSION_BUILD=$$system(git rev-list HEAD --count)
seem to work. The current version number that shows up is 0.1. so the sprintf statement seems to be formatted correctly and likely the problem is with the assignment of VERSION_BUILD.
Pablo J. Rogina
git.exe seems to be included in my path. I can open a command window in Windows, cd to the project directory and type in the following command
Could you please start Qt Creator from that same command window and try. I guess you may not have the same PATH values in Qt Creator if started from Windows menu