Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Qmake pre-build step before ANY compilation



  • There are several questions on SO regarding how to create a pre-build step for qmake, I can do that with this in my .pro file:

    @versionTarget.target = ../VersionData/versioning.h
    versionTarget.depends = FORCE
    win32: versionTarget.commands = cd $$PWD; python.exe ./version_getter.py -p $$TARGET
    else: versionTarget.commands = cd $$PWD; python ./version_getter.py -p $$TARGET

    PRE_TARGETDEPS += ../VersionData/versioning.h
    QMAKE_EXTRA_TARGETS += versionTarget@

    Now, the problem is that this approach is not a build step per se but just another build target, so if I have the -j flag configured for make it runs my script in parallel with the other build jobs. This is very bad, because my script creates/updates a header file - having it change part way through the compilation is not acceptable.

    So, is there anyway I can have this script executed before any compilation is ran? I know I can create another script and call the version_getter.py and qmake in sequence from that, but this is not desirable as I would have to compile from the command line rather than from within Qt Creator.



  • can't you make your main target or all depend on versionTarget.



  • Sorry I forgot to update this question, it was answered over at "SO":http://stackoverflow.com/questions/15864689/qmake-pre-build-step-before-any-compilation.




Log in to reply