kmod: bump to version 24
[buildroot-gz.git] / package / qt5 / qt5base / qt5base.mk
blob09bf5cf7bd56b78ddd5d9e8c76e4baf49968dd01
1 ################################################################################
3 # qt5base
5 ################################################################################
7 QT5BASE_VERSION = $(QT5_VERSION)
8 QT5BASE_SITE = $(QT5_SITE)
9 QT5BASE_SOURCE = qtbase-opensource-src-$(QT5BASE_VERSION).tar.xz
11 QT5BASE_DEPENDENCIES = host-pkgconf zlib pcre
12 QT5BASE_INSTALL_STAGING = YES
14 # A few comments:
15 # * -no-pch to workaround the issue described at
16 # http://comments.gmane.org/gmane.comp.lib.qt.devel/5933.
17 # * -system-zlib because zlib is mandatory for Qt build, and we
18 # want to use the Buildroot packaged zlib
19 # * -system-pcre because pcre is mandatory to build Qt, and we
20 # want to use the one packaged in Buildroot
21 QT5BASE_CONFIGURE_OPTS += \
22 -optimized-qmake \
23 -no-cups \
24 -no-iconv \
25 -system-zlib \
26 -system-pcre \
27 -no-pch \
28 -shared
30 QT5BASE_CONFIGURE_OPTS += $(call qstrip,$(BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS))
32 # Uses libgbm from mesa3d
33 ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
34 QT5BASE_CONFIGURE_OPTS += -kms -gbm
35 QT5BASE_DEPENDENCIES += mesa3d
36 else
37 QT5BASE_CONFIGURE_OPTS += -no-kms
38 endif
40 ifeq ($(BR2_ENABLE_DEBUG),y)
41 QT5BASE_CONFIGURE_OPTS += -debug
42 else
43 QT5BASE_CONFIGURE_OPTS += -release
44 endif
46 ifeq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)
47 QT5BASE_CONFIGURE_OPTS += -largefile
48 endif
50 ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y)
51 QT5BASE_CONFIGURE_OPTS += -opensource -confirm-license
52 ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
53 QT5BASE_LICENSE = GPLv2+ or LGPLv3, GPLv3 with exception(tools), GFDLv1.3 (docs)
54 QT5BASE_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPLv3 LICENSE.GPL3-EXCEPT LICENSE.LGPLv3 LICENSE.FDL
55 else
56 QT5BASE_LICENSE = GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs)
57 QT5BASE_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL
58 endif
59 ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y)
60 QT5BASE_LICENSE := $(QT5BASE_LICENSE), BSD-3c (examples)
61 QT5BASE_LICENSE_FILES += header.BSD
62 endif
63 else
64 QT5BASE_LICENSE = Commercial license
65 QT5BASE_REDISTRIBUTE = NO
66 endif
68 QT5BASE_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_QT5BASE_CONFIG_FILE))
70 ifneq ($(QT5BASE_CONFIG_FILE),)
71 QT5BASE_CONFIGURE_OPTS += -qconfig buildroot
72 endif
74 ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
75 QT5BASE_DEPENDENCIES += udev
76 endif
78 # Qt5 SQL Plugins
79 ifeq ($(BR2_PACKAGE_QT5BASE_SQL),y)
80 ifeq ($(BR2_PACKAGE_QT5BASE_MYSQL),y)
81 QT5BASE_CONFIGURE_OPTS += -plugin-sql-mysql -mysql_config $(STAGING_DIR)/usr/bin/mysql_config
82 QT5BASE_DEPENDENCIES += mysql
83 else
84 QT5BASE_CONFIGURE_OPTS += -no-sql-mysql
85 endif
87 ifeq ($(BR2_PACKAGE_QT5BASE_PSQL),y)
88 QT5BASE_CONFIGURE_OPTS += -plugin-sql-psql -psql_config $(STAGING_DIR)/usr/bin/pg_config
89 QT5BASE_DEPENDENCIES += postgresql
90 else
91 QT5BASE_CONFIGURE_OPTS += -no-sql-psql
92 endif
94 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_SQLITE_QT),-plugin-sql-sqlite)
95 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM),-system-sqlite)
96 QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM),sqlite)
97 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_SQLITE_NONE),-no-sql-sqlite)
98 endif
100 # We have to use --enable-linuxfb, otherwise Qt thinks that -linuxfb
101 # is to add a link against the "inuxfb" library.
102 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_GUI),-gui,-no-gui)
103 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),-widgets,-no-widgets)
104 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_LINUXFB),--enable-linuxfb,-no-linuxfb)
105 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),-directfb,-no-directfb)
106 QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),directfb)
108 ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y)
109 QT5BASE_CONFIGURE_OPTS += -xcb -system-xkbcommon
110 QT5BASE_DEPENDENCIES += \
111 libxcb \
112 xcb-util-wm \
113 xcb-util-image \
114 xcb-util-keysyms \
115 xlib_libX11 \
116 libxkbcommon
117 ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS),y)
118 QT5BASE_DEPENDENCIES += xlib_libXext
119 endif
120 else
121 QT5BASE_CONFIGURE_OPTS += -no-xcb
122 endif
124 ifeq ($(BR2_PACKAGE_QT5BASE_OPENGL_DESKTOP),y)
125 QT5BASE_CONFIGURE_OPTS += -opengl desktop
126 QT5BASE_DEPENDENCIES += libgl
127 else ifeq ($(BR2_PACKAGE_QT5BASE_OPENGL_ES2),y)
128 QT5BASE_CONFIGURE_OPTS += -opengl es2
129 QT5BASE_DEPENDENCIES += libgles
130 else
131 QT5BASE_CONFIGURE_OPTS += -no-opengl
132 endif
134 QT5BASE_DEFAULT_QPA = $(call qstrip,$(BR2_PACKAGE_QT5BASE_DEFAULT_QPA))
135 QT5BASE_CONFIGURE_OPTS += $(if $(QT5BASE_DEFAULT_QPA),-qpa $(QT5BASE_DEFAULT_QPA))
137 ifeq ($(BR2_PACKAGE_QT5BASE_EGLFS),y)
138 QT5BASE_CONFIGURE_OPTS += -eglfs
139 QT5BASE_DEPENDENCIES += libegl
140 else
141 QT5BASE_CONFIGURE_OPTS += -no-eglfs
142 endif
144 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_OPENSSL),-openssl,-no-openssl)
145 QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENSSL),openssl)
147 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_FONTCONFIG),-fontconfig,-no-fontconfig)
148 QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_FONTCONFIG),fontconfig)
149 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_GIF),,-no-gif)
150 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_JPEG),-system-libjpeg,-no-libjpeg)
151 QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_JPEG),jpeg)
152 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_PNG),-system-libpng,-no-libpng)
153 QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_PNG),libpng)
155 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_DBUS),-dbus,-no-dbus)
156 QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_DBUS),dbus)
158 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_TSLIB),-tslib,-no-tslib)
159 QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_TSLIB),tslib)
161 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_LIBGLIB2),-glib,-no-glib)
162 QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBGLIB2),libglib2)
164 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_ICU),-icu,-no-icu)
165 QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_ICU),icu)
167 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_EXAMPLES),-make,-nomake) examples
169 ifeq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)
170 # gstreamer 0.10 support is broken in qt5multimedia
171 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y)
172 QT5BASE_CONFIGURE_OPTS += -gstreamer 1.0
173 QT5BASE_DEPENDENCIES += gst1-plugins-base
174 else
175 QT5BASE_CONFIGURE_OPTS += -no-gstreamer
176 endif
177 endif
179 ifeq ($(BR2_PACKAGE_LIBINPUT),y)
180 QT5BASE_CONFIGURE_OPTS += -libinput
181 QT5BASE_DEPENDENCIES += libinput
182 else
183 QT5BASE_CONFIGURE_OPTS += -no-libinput
184 endif
186 # Build the list of libraries to be installed on the target
187 QT5BASE_INSTALL_LIBS_y += Qt5Core
188 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_XCB) += Qt5XcbQpa
189 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_NETWORK) += Qt5Network
190 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_CONCURRENT) += Qt5Concurrent
191 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_SQL) += Qt5Sql
192 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_TEST) += Qt5Test
193 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_XML) += Qt5Xml
194 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_OPENGL_LIB) += Qt5OpenGL
195 ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
196 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_EGLFS) += Qt5EglFSDeviceIntegration
197 else
198 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_EGLFS) += Qt5EglDeviceIntegration
199 endif
201 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_GUI) += Qt5Gui
202 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_WIDGETS) += Qt5Widgets
203 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_PRINTSUPPORT) += Qt5PrintSupport
205 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_DBUS) += Qt5DBus
207 ifneq ($(QT5BASE_CONFIG_FILE),)
208 define QT5BASE_CONFIGURE_CONFIG_FILE
209 cp $(QT5BASE_CONFIG_FILE) $(@D)/src/corelib/global/qconfig-buildroot.h
210 endef
211 endif
213 define QT5BASE_CONFIGURE_CMDS
214 $(INSTALL) -m 0644 -D $(QT5BASE_PKGDIR)/qmake.conf \
215 $(@D)/mkspecs/devices/linux-buildroot-g++/qmake.conf
216 $(INSTALL) -m 0644 -D $(QT5BASE_PKGDIR)/qplatformdefs.h \
217 $(@D)/mkspecs/devices/linux-buildroot-g++/qplatformdefs.h
218 $(QT5BASE_CONFIGURE_CONFIG_FILE)
219 (cd $(@D); \
220 $(TARGET_MAKE_ENV) \
221 PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
222 PKG_CONFIG_LIBDIR="$(STAGING_DIR)/usr/lib/pkgconfig" \
223 PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
224 MAKEFLAGS="$(MAKEFLAGS) -j$(PARALLEL_JOBS)" \
225 ./configure \
226 -v \
227 -prefix /usr \
228 -hostprefix $(HOST_DIR)/usr \
229 -headerdir /usr/include/qt5 \
230 -sysroot $(STAGING_DIR) \
231 -plugindir /usr/lib/qt/plugins \
232 -examplesdir /usr/lib/qt/examples \
233 -no-rpath \
234 -nomake tests \
235 -device buildroot \
236 -device-option CROSS_COMPILE="$(TARGET_CROSS)" \
237 -device-option BR_COMPILER_CFLAGS="$(TARGET_CFLAGS) $(QT5BASE_EXTRA_CFLAGS)" \
238 -device-option BR_COMPILER_CXXFLAGS="$(TARGET_CXXFLAGS) $(QT5BASE_EXTRA_CFLAGS)" \
239 $(QT5BASE_CONFIGURE_OPTS) \
241 endef
243 define QT5BASE_BUILD_CMDS
244 $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
245 endef
247 define QT5BASE_INSTALL_STAGING_CMDS
248 $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
249 $(QT5_LA_PRL_FILES_FIXUP)
250 endef
252 define QT5BASE_INSTALL_TARGET_LIBS
253 for lib in $(QT5BASE_INSTALL_LIBS_y); do \
254 cp -dpf $(STAGING_DIR)/usr/lib/lib$${lib}.so.* $(TARGET_DIR)/usr/lib || exit 1 ; \
255 done
256 endef
258 define QT5BASE_INSTALL_TARGET_PLUGINS
259 if [ -d $(STAGING_DIR)/usr/lib/qt/plugins/ ] ; then \
260 mkdir -p $(TARGET_DIR)/usr/lib/qt/plugins ; \
261 cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/* $(TARGET_DIR)/usr/lib/qt/plugins ; \
263 endef
265 ifeq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)
266 define QT5BASE_INSTALL_TARGET_FONTS
267 if [ -d $(STAGING_DIR)/usr/lib/fonts/ ] ; then \
268 mkdir -p $(TARGET_DIR)/usr/lib/fonts ; \
269 cp -dpfr $(STAGING_DIR)/usr/lib/fonts/* $(TARGET_DIR)/usr/lib/fonts ; \
271 endef
272 endif
274 define QT5BASE_INSTALL_TARGET_EXAMPLES
275 if [ -d $(STAGING_DIR)/usr/lib/qt/examples/ ] ; then \
276 mkdir -p $(TARGET_DIR)/usr/lib/qt/examples ; \
277 cp -dpfr $(STAGING_DIR)/usr/lib/qt/examples/* $(TARGET_DIR)/usr/lib/qt/examples ; \
279 endef
281 ifeq ($(BR2_STATIC_LIBS),y)
282 define QT5BASE_INSTALL_TARGET_CMDS
283 $(QT5BASE_INSTALL_TARGET_FONTS)
284 $(QT5BASE_INSTALL_TARGET_EXAMPLES)
285 endef
286 else
287 define QT5BASE_INSTALL_TARGET_CMDS
288 $(QT5BASE_INSTALL_TARGET_LIBS)
289 $(QT5BASE_INSTALL_TARGET_PLUGINS)
290 $(QT5BASE_INSTALL_TARGET_FONTS)
291 $(QT5BASE_INSTALL_TARGET_EXAMPLES)
292 endef
293 endif
295 $(eval $(generic-package))