1 # QT_SUBDIRS .. subdirectories where to build QT applications using qmake
2 # QTDIR .. where QT resides
6 .PHONY: qt-subpass clean-qt distclean-qt
8 # Usage: $(call qt_makefile_template,<qt-subdir>)
9 define qt_subdir_template
11 $(LOCAL_BUILD_DIR)/$(1)/Makefile: $(wildcard $(SOURCES_DIR)/$(1)/*.pro)
12 $(Q)mkdir -p $(LOCAL_BUILD_DIR)/$(1) && \
13 cd $(LOCAL_BUILD_DIR)/$(1) && \
14 $(QTDIR:%=%/bin/)qmake \
15 TOP_DIR=$(OUTPUT_DIR) RELATIVE_DIR=$(RELATIVE_PREFIX)$(1) \
16 $(QTDIR:%=QTDIR=%) CC=$(CC) CXX=$(CXX) \
17 LIBS+="-L$(USER_LIB_DIR)" DESTDIR=$(USER_BIN_DIR) \
18 INCLUDEPATH+="$(USER_INCLUDE_DIR)" \
19 QMAKE_LFLAGS="-Wl,-rpath-link,$(USER_LIB_DIR) $$(QMAKE_LFLAGS)" \
20 $(SOURCES_DIR)/$(1)/*.pro
22 # This horrible substitution is here to properly escape
23 # -Wl,-rpath,$ORIGIN flags. It includes escaping for make, shell,
24 # qmake and again make and shell run on qmake generated makefile.
25 QMAKE_LFLAGS = $$(subst $$$$,\\\\\\$$$$\$$$$,$$(LDFLAGS))
28 binary-pass-submakes: qt-subpass-$(1)
29 qt-subpass-$(1): $(LOCAL_BUILD_DIR)/$(1)/Makefile
30 $(Q)$(MAKE) SOURCES_DIR=$(SOURCES_DIR)/$(1) \
31 RELATIVE_DIR=$(RELATIVE_PREFIX)$(1) -C $(LOCAL_BUILD_DIR)/$(1) || exit 1 ;
34 clean-local: clean-qt-$(1)
35 clean-qt-$(1): $(LOCAL_BUILD_DIR)/$(1)/Makefile
36 @$(QUIET_CMD_ECHO) " QT CLEAN $(1)"
37 $(Q)$(MAKE) SOURCES_DIR=$(SOURCES_DIR)/$(1) \
38 RELATIVE_DIR=$(RELATIVE_PREFIX)$(1) \
39 -C $(LOCAL_BUILD_DIR)/$(1) clean
40 $(Q)rm $(LOCAL_BUILD_DIR)/$(1)/Makefile
43 $(foreach dir,$(QT_SUBDIRS), $(eval $(call qt_subdir_template,$(dir))))