]> git.sesse.net Git - vlc/blob - contrib/src/qt/rules.mak
Contrib: compile Qt native tools too
[vlc] / contrib / src / qt / rules.mak
1 # qt
2
3 QT_VERSION = 5.3.0
4 QT_URL := http://download.qt-project.org/official_releases/qt/5.3/$(QT_VERSION)/submodules/qtbase-opensource-src-$(QT_VERSION).tar.xz
5
6 ifdef HAVE_MACOSX
7 #PKGS += qt
8 endif
9 ifdef HAVE_WIN32
10 PKGS += qt
11 endif
12
13 ifeq ($(call need_pkg,"QtCore QtGui"),)
14 ifeq ($(call need_pkg,"Qt5Core Qt5Gui Qt5Widgets"),)
15 PKGS_FOUND += qt
16 endif
17 endif
18
19 $(TARBALLS)/qt-$(QT_VERSION).tar.xz:
20         $(call download,$(QT_URL))
21
22 .sum-qt: qt-$(QT_VERSION).tar.xz
23
24 qt: qt-$(QT_VERSION).tar.xz .sum-qt
25         $(UNPACK)
26         mv qtbase-opensource-src-$(QT_VERSION) qt-$(QT_VERSION)
27         $(MOVE)
28
29 ifdef HAVE_MACOSX
30 QT_PLATFORM := -platform darwin-g++
31 endif
32 ifdef HAVE_WIN32
33 QT_PLATFORM := -xplatform win32-g++ -device-option CROSS_COMPILE=$(HOST)-
34 endif
35
36 .qt: qt
37         cd $< && ./configure $(QT_PLATFORM) -static -release -no-sql-sqlite -no-gif -qt-libjpeg -no-openssl -no-opengl -opensource -confirm-license
38         cd $< && $(MAKE) sub-src
39         # INSTALLING LIBRARIES
40         for lib in Widgets Gui Core; \
41                 do install -D -- $</lib/libQt5$${lib}.a "$(PREFIX)/lib/libQt5$${lib}.a"; \
42         done
43         # INSTALLING PLUGINS
44         install -D -- $</plugins/platforms/libqwindows.a "$(PREFIX)/lib/libqwindows.a"
45         install -D -- $</plugins/accessible/libqtaccessiblewidgets.a "$(PREFIX)/lib/libqtaccessiblewidgets.a"
46         # INSTALLING HEADERS
47         for h in corelib gui widgets; \
48                 do (cd $</src/$${h} && find . -type f -name '*.h' -exec install -D -- "{}" "$(PREFIX)/include/qt5/src/$${h}/{}" \;) ; \
49         done
50         for h in Core Gui Widgets; \
51                 do (cd $</include/Qt$${h} && find . -maxdepth 1 -type f \( -name '*.h' -o -name 'Q*' \) -exec install -D -s --strip-program="$(abspath $(SRC)/qt/fix_header.sh)" -- "{}" "$(PREFIX)/include/qt5/Qt$${h}/{}" \;) ; \
52         done
53         mkdir -p "$(PREFIX)/include/qt5/qpa"
54         echo "#include \"../src/gui/kernel/qplatformnativeinterface.h\"" > "$(PREFIX)/include/qt5/qpa/qplatformnativeinterface.h"
55         # INSTALLING PKGCONFIG FILES
56         install -d "$(PREFIX)/lib/pkgconfig"
57         for i in Core Gui Widgets; \
58                 do cat $(SRC)/qt/Qt5$${i}.pc.in | sed -e s/@@VERSION@@/$(QT_VERSION)/ | sed -e 's|@@PREFIX@@|$(PREFIX)|' > "$(PREFIX)/lib/pkgconfig/Qt5$${i}.pc"; \
59         done
60         # BUILDING QT BUILD TOOLS
61 ifdef HAVE_CROSS_COMPILE
62         cd $</include/QtCore; ln -sf $(QT_VERSION)/QtCore/private
63         cd $</src/tools; $(MAKE) clean; \
64                 for i in bootstrap uic rcc moc; \
65                         do (cd $$i; echo $i && ../../../bin/qmake -spec win32-g++ ; $(MAKE) clean; $(MAKE)); \
66                 done
67 endif
68         # INSTALLING QT BUILD TOOLS
69         install -d "$(PREFIX)/bin/"
70         for i in rcc moc uic; \
71                 do cp $</bin/$$i* "$(PREFIX)/bin"; \
72         done
73         touch $@