1 # QT_PROJECTS .. list of QT .pro file to use for compilation
2 # QT_SUBDIRS .. subdirectories where to build QT applications using qmake (depricated)
3 # QTDIR .. where QT resides
5 ifneq ($(QT_SUBDIRS)$(QT_PROJECTS),)
7 # Usage: $(call qt_project_template,<.pro_file relative to SOURCES_DIR>)
8 define qt_project_template
10 .PHONY: qt-subpass-$(1) clean-qt-$(dir $(1))
12 # FIXME: Handle multiple .pro files correctly
13 $(LOCAL_BUILD_DIR)/$(dir $(1))Makefile: $(SOURCES_DIR)/$(1)
14 $(Q)mkdir -p $$(dir $$(@)) && cd $$(dir $$(@)) && \
15 $(QTDIR:%=%/bin/)qmake \
16 TOP_DIR=$(OUTPUT_DIR) \
17 RELATIVE_DIR=$(RELATIVE_PREFIX)$(dir $(1)) \
18 $(QTDIR:%=QTDIR=%) CC=$(CC) CXX=$(CXX) \
19 LIBS+="-L$(USER_LIB_DIR)" DESTDIR=$(USER_BIN_DIR) \
20 INCLUDEPATH+="$(USER_INCLUDE_DIR)" \
21 QMAKE_LFLAGS="-Wl,-rpath-link,$(USER_LIB_DIR) $$(QMAKE_LFLAGS)" \
24 # This horrible substitution is here to properly escape
25 # -Wl,-rpath,$ORIGIN flags. It includes escaping for make, shell,
26 # qmake and again make and shell run on qmake generated makefile.
27 QMAKE_LFLAGS = $$(subst $$$$,\\\\\\$$$$\$$$$,$$(LDFLAGS))
30 binary-pass-submakes: qt-subpass-$(1)
31 qt-subpass-$(1): $(LOCAL_BUILD_DIR)/$(dir $(1))Makefile
32 $(Q)$(MAKE) SOURCES_DIR=$(SOURCES_DIR)/$(dir $(1)) \
33 RELATIVE_DIR=$(RELATIVE_PREFIX)$(dir $(1)) -C $(LOCAL_BUILD_DIR)/$(dir $(1)) || exit 1 ;
36 clean-local: clean-qt-$(dir $(1))
37 clean-qt-$(dir $(1)): $(LOCAL_BUILD_DIR)/$(dir $(1))Makefile
38 @$(QUIET_CMD_ECHO) " QT CLEAN $(dir $(1))"
39 $(Q)$(MAKE) SOURCES_DIR=$(SOURCES_DIR)/$(dir $(1)) \
40 RELATIVE_DIR=$(RELATIVE_PREFIX)$(dir $(1)) \
41 -C $(LOCAL_BUILD_DIR)/$(dir $(1)) clean
42 $(Q)rm $(LOCAL_BUILD_DIR)/$(dir $(1))Makefile
45 $(foreach pro,$(QT_PROJECTS), $(eval $(call qt_project_template,$(pro))))
46 $(foreach pro,$(foreach dir,$(QT_SUBDIRS), $(wildcard $(dir)/*.pro)), $(eval $(call qt_project_template,$(pro))))