From a4079714c3761420b3c1105fea28719aae0ff232 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Tue, 18 Jan 2005 19:18:58 +0000 Subject: [PATCH] defs.mk, exe.mk, rules.mk: Add support for QT ui generation from .ui files --- make/defs.mk | 15 +++++++++++++-- make/exe.mk | 2 +- make/rules.mk | 18 +++++++++++++++++- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/make/defs.mk b/make/defs.mk index 9555613c..42469dd0 100644 --- a/make/defs.mk +++ b/make/defs.mk @@ -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 diff --git a/make/exe.mk b/make/exe.mk index 039c67d4..d1ec8c10 100644 --- a/make/exe.mk +++ b/make/exe.mk @@ -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 diff --git a/make/rules.mk b/make/rules.mk index b8211d29..64b53c26 100644 --- a/make/rules.mk +++ b/make/rules.mk @@ -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.* .\#*