]> rtime.felk.cvut.cz Git - omk.git/blob - snippets/qt
Updated QT rules
[omk.git] / snippets / qt
1 # QT_SUBDIRS       .. subdirectories where to build QT applications using qmake
2 # QTDIR            .. where QT resides
3
4 ifneq ($(QT_SUBDIRS),)
5
6 .PHONY: qt-subpass clean-qt distclean-qt
7
8 # Usage: $(call qt_makefile_template,<qt-subdir>)
9 define qt_subdir_template
10
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
21
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))
26
27 # Hook to binary pass
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 ;
32
33 # Hook to clean pass
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
41 endef
42
43 $(foreach dir,$(QT_SUBDIRS), $(eval $(call qt_subdir_template,$(dir))))
44
45 endif
46
47 # Local Variables:
48 # mode:makefile
49 # End: