From 40e3671bd2656be9657abe8c6d955cef612805c5 Mon Sep 17 00:00:00 2001 From: Alberto Mardegan Date: Mon, 1 Apr 2013 23:08:13 +0300 Subject: Improve Makefile rules for running moc The previous rules were conflicting, and the naming of the moc-generated file to be included in .cpp files was deviating from what's most used in Qt: the usual way is to #include "file.moc" and not #include "file.moc.cpp" Signed-off-by: Alberto Mardegan --- Makefile | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index aeb3cca0f..c0114386c 100644 --- a/Makefile +++ b/Makefile @@ -306,18 +306,23 @@ MOCFLAGS = $(filter -I%, $(CXXFLAGS) $(EXTRA_FLAGS)) $(filter -D%, $(CXXFLAGS) $ @mkdir -p .dep @$(CXX) $(CXXFLAGS) $(EXTRA_FLAGS) -MD -MF .dep/$@.dep -c -o $@ $< +# This rule is for running the moc on QObject subclasses defined in the .h +# files. +# To activate this rule, add .moc.o to the OBJS variable. %.moc.cpp: %.h @echo ' MOC' $< @$(MOC) $(MOCFLAGS) $< -o $@ -# This rule is for running the moc on QObject subclasses defined in the .cpp files; -# remember to #include ".moc.cpp" at the end of the .cpp file, or you'll -# get linker errors ("undefined vtable for...") -%.moc.cpp: %.cpp +# This rule is for running the moc on QObject subclasses defined in the .cpp +# files; remember to #include ".moc" at the end of the .cpp file, or +# you'll get linker errors ("undefined vtable for...") +# To activate this rule, you need another rule on the .o file, like: +# file.o: file.moc +%.moc: %.cpp @echo ' MOC' $< @$(MOC) -i $(MOCFLAGS) $< -o $@ -qt-gui.o: qt-gui.moc.cpp +qt-gui.o: qt-gui.moc %.ui.h: ui/%.ui @echo ' UIC' $< -- cgit v1.2.3-70-g09d2