defs.mk, exe.mk, rules.mk: Add support for QT ui generation from .ui files

This commit is contained in:
Jan Lindemann 2005-01-18 19:18:58 +00:00 committed by Jan Lindemann
commit a4079714c3
3 changed files with 31 additions and 4 deletions

View file

@ -41,6 +41,7 @@ MKFILES = $(wildcard *.mk)
CFILES = $(wildcard *.c)
CPPFILES = $(wildcard *.cc *.cpp)
UIFILES = $(wildcard *.ui)
CALLSRC = $(CFILES) $(CPPFILES)
OBJ = $(patsubst %.cpp,%.o,$(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(CALLSRC))))
SHOBJS = $(patsubst %.cpp,lib%.so,$(patsubst %.cc,lib%.so,$(patsubst %.c,lib%.so,$(CALLSRC))))
@ -160,8 +161,18 @@ LD_LIB_PATH += $(QT_PREFIX)/lib
MOC = $(QT_PREFIX)/bin/moc
UIC = $(QT_PREFIX)/bin/uic
MOC_CPP = $(patsubst %.h,moc_%.cpp,$(MOC_HEADER))
OBJ += $(patsubst %.cpp,%.o,$(MOC_CPP))
ifneq ($(wildcard *.h),)
MOC_H_HC = $(shell grep Q_OBJECT $(wildcard *.h) | cut -d: -f1 | sort -u)
endif
MOC_H_UI = $(patsubst %.ui,%.h,$(UIFILES))
MOC_H = $(sort $(MOC_H_HC) $(MOC_H_UI))
MOC_CPP = $(patsubst %.h,moc_%.cpp, $(MOC_H))
UIC_H = $(patsubst %.ui,%.h, $(UIFILES))
UIC_CPP = $(patsubst %.ui,uic_%.cpp, $(UIFILES))
OBJ += $(patsubst %.cpp,%.o,$(MOC_CPP))
OBJ += $(patsubst %.cpp,%.o,$(UIC_CPP))
ifdef REENTRANT
LPPFLAGS += -L$(QT_PREFIX)/lib -lqt-mt
else

View file

@ -14,5 +14,5 @@ run: $(EXE) $(EXE_BIN)
$(EXPORT_LD_LIB_PATH); ./$(EXE) $(EXE_ARGS)
strace: $(EXE) $(EXE_BIN)
$(EXPORT_LD_LIB_PATH); strace -f ./$(EXE) $(EXE_ARGS)
clean: execlean localclean
clean: execlean localclean mocclean uicclean

View file

@ -27,6 +27,12 @@ $(LIBDIR):
moc_%.cpp: %.h
$(MOC) -o $@ $<
%.h: %.ui
$(UIC) $< -o $@
uic_%.cpp: %.h %.ui
$(UIC) $*.ui -i $< -o $@
ifeq ($(LIBTYPE),shared)
lib%.so: %.o $(LIB_SO)
else
@ -55,6 +61,10 @@ $(TOPDIR)/bin/%.sh: %.sh
timers_%.h: %.h $(GENERATE_FUNC_TIMERS)
sh $(GENERATE_FUNC_TIMERS) $< $@
ifneq ($(USE_QT),)
$(OBJ): $(UIC_H) $(MOC_H) $(UIC_CPP) $(MOC_CPP)
endif
ifeq ($(USE_PROJECT_LIB),true)
ifeq ($(LIBTYPE),shared)
$(EXE) $(EXE_BIN): $(OBJ) $(LIB_SO)
@ -159,7 +169,13 @@ tmpclean:
rm -rf *.tmp *.rep
objclean:
rm -rf core core.* .*.o *.o *.a *.so *.so.* $(MOC_CPP)
rm -rf core core.* .*.o *.o *.a *.so *.so.*
mocclean:
rm -rf $(MOC_CPP)
uicclean:
rm -rf $(UIC_CPP) $(UIC_H)
textclean: doneclean
rm -rf $(TEXTCLEAN) \#*\# .kdbgrc.* .\#*