Is this something that could be handled better by qbs? Glen
> On Feb 14, 2017, at 3:59 PM, Glen Mabey <[email protected]> wrote: > > > Well, I have the strangest of solutions that isn’t clean, pretty, or even > explainable (by me). > > Consider these extra rules (linux only) so the complete .pro file looks like > this: > > > TEMPLATE = app > > SOURCES += main.cpp > > OBJ_SOURCE = dummy_input_file.txt > > OBJ_GENERATOR.CONFIG += no_link target_predeps > OBJ_GENERATOR.output = ${QMAKE_FILE_BASE}_QObject.h > OBJ_GENERATOR.commands = ./generate_a_file.py ${QMAKE_FILE_OUT} > OBJ_GENERATOR.input = OBJ_SOURCE > OBJ_GENERATOR.variable_out = HEADERS > QMAKE_EXTRA_COMPILERS += OBJ_GENERATOR > > PRO_FILE_TOUCHER.CONFIG += no_link target_predeps > PRO_FILE_TOUCHER.output = .lmp_${QMAKE_FILE_BASE}_generated > PRO_FILE_TOUCHER.commands = touch $$_PRO_FILE_ ${QMAKE_FILE_OUT} && $(MAKE) > && exit 1 > PRO_FILE_TOUCHER.input = OBJ_SOURCE > QMAKE_EXTRA_COMPILERS += PRO_FILE_TOUCHER > > OBJECTS_DIR=.o > MOC_DIR=.moc > > > That is, the first time that make runs, it touches the .pro file as well as > .lmp_dummy_input_file_generated, then re-runs make. > > Here’s what I don’t understand: when those commands are followed by “exit 1” > then for some reason the “new” version of the Makefile gets used in the rest > of the build commands, whereas if “exit 0” is used, then in the Makefile, > OBJECTS does not contain .o/moc_dummy_input_file_QObject.o and linking fails … > > So, this all seems extremely hackish, and make still returns with a non-zero > value (like it does when linking fails) but now in this case it actually has > succeeded … blech. > > Glen > >> On Feb 13, 2017, at 12:04 PM, Glen Mabey <[email protected]> wrote: >> >> Hello, >> >> I think I’ve got the exact problem described here back in 2012: >> https://forum.qt.io/topic/21964/qmake-custom-compilers-how-to-process-generated-header-files-with-moc >> >> That is, my generated header file includes a class that inherits from >> QObject and needs to be moc'ed. >> >> However, these lines are not sufficient to make that happen the first time >> the project is built: >> >> OBJ_SOURCE = dummy_input_file.txt >> >> OBJ_GENERATOR.CONFIG += no_link target_predeps >> OBJ_GENERATOR.output = ${QMAKE_FILE_BASE}_QObject.h >> OBJ_GENERATOR.commands = ./generate_a_file.py ${QMAKE_FILE_OUT} >> OBJ_GENERATOR.input = OBJ_SOURCE >> OBJ_GENERATOR.variable_out = HEADERS >> QMAKE_EXTRA_COMPILERS += OBJ_GENERATOR >> >> >> That is, the project fails to link due to undefined references. >> >> If I rerun qmake and build again, though, everything works out fine. >> >> Any suggestions? >> Glen >> _______________________________________________ >> Interest mailing list >> [email protected] >> http://lists.qt-project.org/mailman/listinfo/interest > > _______________________________________________ > Interest mailing list > [email protected] > http://lists.qt-project.org/mailman/listinfo/interest _______________________________________________ Interest mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/interest
