Index: lib/MsgUtils/MsgUtils.pro =================================================================== diff -u -ra5781739bcbe58c754aff8861561495624bc5b67 -r4dccc470aedf6f68a0ad73c1101f8a96188cbdb1 --- lib/MsgUtils/MsgUtils.pro (.../MsgUtils.pro) (revision a5781739bcbe58c754aff8861561495624bc5b67) +++ lib/MsgUtils/MsgUtils.pro (.../MsgUtils.pro) (revision 4dccc470aedf6f68a0ad73c1101f8a96188cbdb1) @@ -118,20 +118,15 @@ HEADERS += $$GENERATED_INCLUDES SOURCES += $$GENERATED_SRCS -# Create the dependencies between the object files and generated files so generated files -# are made before trying to compile them into objects. -protoutils_obj.target = LeahiMsgProtoUtils.o -protoutils_obj.depends = $$GEN_INCLUDE_DIR/LeahiMsgDefs.pb.h -QMAKE_EXTRA_TARGETS += protoutils_obj +# Ensure the generated headers are dependencies of the object files that need them +# and are created first. +generated_headers_first.target = $(OBJECTS) +generated_headers_first.depends = \ + $$GEN_INCLUDE_DIR/LeahiMsgDefs.h \ + $$GEN_INCLUDE_DIR/LeahiMsgDefs.pb.h \ + $$GEN_INCLUDE_DIR/LeahiMsgProtoUtils.h +QMAKE_EXTRA_TARGETS += generated_headers_first -msgdefs_obj.target = LeahiMsgDefs.o -msgdefs_obj.depends = $$GEN_INCLUDE_DIR/LeahiMsgDefs.h -QMAKE_EXTRA_TARGETS += msgdefs_obj - -pb_obj.target = LeahiMsgDefs.pb.o -pb_obj.depends = $$GEN_INCLUDE_DIR/LeahiMsgDefs.pb.h -QMAKE_EXTRA_TARGETS += pb_obj - INCLUDEPATH += $$PWD/include LIBS += -lprotobuf @@ -158,6 +153,9 @@ export_pri.files = $$PWD/MsgUtils.pri INSTALLS += export_pri +# qmake only removes the shared objects on distclean, so remove them on clean too +QMAKE_CLEAN += $$DESTDIR/libMsgUtils.so* + QMAKE_CLEAN += \ $$GEN_INCLUDE_DIR/LeahiMsgDefs.h \ $$GEN_INCLUDE_DIR/LeahiMsgDefs.pb.h \