summaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/nativesdk-qtbase.inc
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-qt/qt5/nativesdk-qtbase.inc')
-rw-r--r--recipes-qt/qt5/nativesdk-qtbase.inc272
1 files changed, 0 insertions, 272 deletions
diff --git a/recipes-qt/qt5/nativesdk-qtbase.inc b/recipes-qt/qt5/nativesdk-qtbase.inc
deleted file mode 100644
index 35953bbe..00000000
--- a/recipes-qt/qt5/nativesdk-qtbase.inc
+++ /dev/null
@@ -1,272 +0,0 @@
1DESCRIPTION = "SDK version of Qt/[X11|Mac|Embedded]"
2DEPENDS = "nativesdk-zlib nativesdk-dbus qtbase-native"
3SECTION = "libs"
4HOMEPAGE = "http://qt-project.org"
5
6QT_MODULE = "qtbase"
7
8require nativesdk-qt5.inc
9
10# it's already included with newer oe-core, but include it here for dylan
11FILESEXTRAPATHS =. "${FILE_DIRNAME}/qtbase:"
12
13# common for qtbase-native, qtbase-nativesdk and qtbase
14SRC_URI += "\
15 file://0001-Add-linux-oe-g-platform.patch \
16 file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
17 file://0003-Add-external-hostbindir-option.patch \
18 file://0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch \
19 file://0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch \
20 file://0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch \
21 file://0007-configure-bump-path-length-from-256-to-512-character.patch \
22 file://0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \
23 file://0009-QOpenGLPaintDevice-sub-area-support.patch \
24 file://0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch \
25"
26
27# common for qtbase-native and nativesdk-qtbase
28SRC_URI += " \
29 file://0011-Always-build-uic.patch \
30 file://0012-Add-external-hostbindir-option-for-native-sdk.patch \
31"
32
33# specific for nativesdk-qtbase
34SRC_URI += " \
35 file://0013-configure-preserve-built-qmake-and-swap-with-native-.patch \
36"
37
38# CMake's toolchain configuration of nativesdk-qtbase
39SRC_URI += " \
40 file://OEQt5Toolchain.cmake \
41"
42
43PACKAGES = "${PN}-tools-dbg ${PN}-tools-dev ${PN}-tools-staticdev ${PN}-tools"
44
45PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
46
47FILES_${PN}-tools-dev = " \
48 ${includedir} \
49 ${FILES_SOLIBSDEV} ${libdir}/*.la \
50 ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \
51"
52
53FILES_${PN}-tools-staticdev = " \
54 ${libdir}/libQt5Bootstrap.a \
55"
56
57FILES_${PN}-tools-dbg = " \
58 ${libdir}/.debug \
59 ${OE_QMAKE_PATH_BINS}/.debug \
60"
61
62FILES_${PN}-tools = " \
63 ${libdir}/lib*${SOLIBS} \
64 ${OE_QMAKE_PATH_BINS}/* \
65 ${SDKPATHNATIVE}/environment-setup.d \
66 ${datadir}/cmake \
67"
68
69# qttools binaries are placed in a subdir of bin in order to avoid
70# collisions with qt4. This would trigger debian.bbclass to rename the
71# package, since it doesn't detect binaries in subdirs. Explicitly
72# disable package auto-renaming for the tools-package.
73DEBIAN_NOAUTONAME_${PN}-tools = "1"
74
75QT_CONFIG_FLAGS += " \
76 -shared \
77 -silent \
78 -no-pch \
79 -no-rpath \
80 -pkg-config \
81 ${EXTRA_OECONF} \
82"
83
84# qtbase is exception, as these are used as install path for sysroots
85OE_QMAKE_PATH_HOST_DATA = "${libdir}/${QT_DIR_NAME}"
86OE_QMAKE_PATH_HOST_LIBS = "${libdir}"
87
88do_generate_qt_config_file() {
89 cat > ${QT_CONF_PATH} <<EOF
90[Paths]
91Prefix = ${OE_QMAKE_PATH_PREFIX}
92Headers = ${OE_QMAKE_PATH_HEADERS}
93Libraries = ${OE_QMAKE_PATH_LIBS}
94ArchData = ${OE_QMAKE_PATH_ARCHDATA}
95Data = ${OE_QMAKE_PATH_DATA}
96Binaries = ${OE_QMAKE_PATH_BINS}
97LibraryExecutables = ${OE_QMAKE_PATH_LIBEXECS}
98Plugins = ${OE_QMAKE_PATH_PLUGINS}
99Imports = ${OE_QMAKE_PATH_IMPORTS}
100Qml2Imports = ${OE_QMAKE_PATH_QML}
101Translations = ${OE_QMAKE_PATH_TRANSLATIONS}
102Documentation = ${OE_QMAKE_PATH_DOCS}
103Settings = ${OE_QMAKE_PATH_SETTINGS}
104Examples = ${OE_QMAKE_PATH_EXAMPLES}
105Tests = ${OE_QMAKE_PATH_TESTS}
106HostBinaries = ${OE_QMAKE_PATH_HOST_BINS}
107HostData = ${OE_QMAKE_PATH_HOST_DATA}
108HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS}
109HostSpec = ${OE_QMAKESPEC}
110TartgetSpec = ${OE_XQMAKESPEC}
111ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}
112Sysroot =
113EOF
114}
115
116do_generate_qt_config_file_append() {
117 cat >> ${QT_CONF_PATH} <<EOF
118
119[EffectivePaths]
120Prefix=..
121EOF
122}
123
124# qtbase is exception, we need to use mkspecs from ${S}
125QMAKE_MKSPEC_PATH = "${B}"
126
127# qtbase is exception, configure script is using our get(X)QEvalMakeConf and setBootstrapEvalVariable functions to read it from shell
128export OE_QMAKE_COMPILER
129export OE_QMAKE_CC
130export OE_QMAKE_CFLAGS
131export OE_QMAKE_CXX
132export OE_QMAKE_CXXFLAGS
133export OE_QMAKE_LINK
134export OE_QMAKE_LDFLAGS
135export OE_QMAKE_AR
136export OE_QMAKE_STRIP
137
138# another exception is that we need to run bin/qmake, because EffectivePaths are relative to qmake location
139OE_QMAKE_QMAKE_ORIG = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/qmake"
140OE_QMAKE_QMAKE = "bin/qmake"
141
142do_configure() {
143 # we need symlink in path relative to source, because
144 # EffectivePaths:Prefix is relative to qmake location
145 # Also, configure expects qmake-native to swap with real one
146 if [ ! -e ${B}/bin/qmake-native ]; then
147 mkdir ${B}/bin
148 ln -sf ${OE_QMAKE_QMAKE_ORIG} ${B}/bin/qmake-native
149 fi
150
151 ${S}/configure -v \
152 -opensource -confirm-license \
153 -sysroot ${STAGING_DIR_NATIVE} \
154 -no-gcc-sysroot \
155 -system-zlib \
156 -no-libjpeg \
157 -no-libpng \
158 -no-gif \
159 -no-accessibility \
160 -no-cups \
161 -no-nis \
162 -no-gui \
163 -no-qml-debug \
164 -no-sql-mysql \
165 -no-sql-sqlite \
166 -no-opengl \
167 -no-openssl \
168 -no-xcb \
169 -verbose \
170 -release \
171 -prefix ${OE_QMAKE_PATH_PREFIX} \
172 -bindir ${OE_QMAKE_PATH_BINS} \
173 -libdir ${OE_QMAKE_PATH_LIBS} \
174 -datadir ${OE_QMAKE_PATH_DATA} \
175 -sysconfdir ${OE_QMAKE_PATH_SETTINGS} \
176 -docdir ${OE_QMAKE_PATH_DOCS} \
177 -headerdir ${OE_QMAKE_PATH_HEADERS} \
178 -archdatadir ${OE_QMAKE_PATH_ARCHDATA} \
179 -libexecdir ${OE_QMAKE_PATH_LIBEXECS} \
180 -plugindir ${OE_QMAKE_PATH_PLUGINS} \
181 -importdir ${OE_QMAKE_PATH_IMPORTS} \
182 -qmldir ${OE_QMAKE_PATH_QML} \
183 -translationdir ${OE_QMAKE_PATH_TRANSLATIONS} \
184 -testsdir ${OE_QMAKE_PATH_TESTS} \
185 -hostbindir ${OE_QMAKE_PATH_HOST_BINS} \
186 -hostdatadir ${OE_QMAKE_PATH_HOST_DATA} \
187 -external-hostbindir ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} \
188 -no-glib \
189 -no-iconv \
190 -silent \
191 -nomake examples \
192 -nomake tests \
193 -nomake libs \
194 -no-compile-examples \
195 -no-rpath \
196 -platform ${OE_QMAKESPEC} \
197 -xplatform linux-oe-g++ \
198 ${QT_CONFIG_FLAGS}
199
200 bin/qmake ${OE_QMAKE_DEBUG_OUTPUT} ${S} -o Makefile || die "Configuring qt with qmake failed. EXTRA_OECONF was ${EXTRA_OECONF}"
201}
202
203# Set the EXTRA_QTLIB variable to e.g. Xml, in order to not remove libQt5Xml.so.*
204EXTRA_QTLIB ?= ""
205
206python __anonymous () {
207 templibs = ""
208 for e in d.getVar("EXTRA_QTLIB", True).split():
209 templibs = "%s -not -name 'libQt5%s.so*' -and" % (templibs, e)
210 d.setVar("QTLIBSPRESERVE", templibs)
211}
212
213do_install() {
214 # Fix install paths for all
215 find -name "Makefile*" | xargs sed -i "s,(INSTALL_ROOT)${STAGING_DIR_NATIVE}${STAGING_DIR_NATIVE},(INSTALL_ROOT)${STAGING_DIR_NATIVE},g"
216
217 oe_runmake install INSTALL_ROOT=${D}
218
219 # replace the native qmake installed above with nativesdk version
220 rm -rf ${D}${OE_QMAKE_PATH_HOST_BINS}/qmake
221 install -m 755 ${B}/bin/qmake-real ${D}${OE_QMAKE_PATH_HOST_BINS}/qmake
222
223 # for modules which are still using syncqt and call qtPrepareTool(QMAKE_SYNCQT, syncqt)
224 # e.g. qt3d, qtwayland
225 ln -sf syncqt.pl ${D}${OE_QMAKE_PATH_QT_BINS}/syncqt
226
227 # remove things unused in nativesdk, we need the headers, Qt5Core
228 # and Qt5Bootstrap.
229 rm -rf ${D}${datadir} \
230 ${D}/${OE_QMAKE_PATH_PLUGINS} \
231 ${D}${libdir}/cmake \
232 ${D}${libdir}/pkgconfig
233 find ${D}${libdir} -maxdepth 1 -name 'lib*' -and -not -type d -and \
234 -not -name 'libQt5Core.so*' -and \
235 ${QTLIBSPRESERVE} \
236 -not -name 'libQt5Bootstrap.a' \
237 -exec rm '{}' ';'
238
239 # Install CMake's toolchain configuration
240 mkdir -p ${D}${datadir}/cmake/OEToolchainConfig.cmake.d/
241 install -m 644 ${WORKDIR}/OEQt5Toolchain.cmake ${D}${datadir}/cmake/OEToolchainConfig.cmake.d/
242}
243
244do_generate_qt_environment_file() {
245 mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d/
246 script=${D}${SDKPATHNATIVE}/environment-setup.d/qt5.sh
247
248 echo 'export PATH=${OE_QMAKE_PATH_HOST_BINS}:$PATH' > $script
249 echo 'export OE_QMAKE_CFLAGS="$CFLAGS"' >> $script
250 echo 'export OE_QMAKE_CXXFLAGS="$CXXFLAGS"' >> $script
251 echo 'export OE_QMAKE_LDFLAGS="$LDFLAGS"' >> $script
252 echo 'export OE_QMAKE_CC=$CC' >> $script
253 echo 'export OE_QMAKE_CXX=$CXX' >> $script
254 echo 'export OE_QMAKE_LINK=$CXX' >> $script
255 echo 'export OE_QMAKE_AR=$AR' >> $script
256 echo 'export QT_CONF_PATH=${OE_QMAKE_PATH_HOST_BINS}/qt.conf' >> $script
257 echo 'export OE_QMAKE_LIBDIR_QT=`qmake -query QT_INSTALL_LIBS`' >> $script
258 echo 'export OE_QMAKE_INCDIR_QT=`qmake -query QT_INSTALL_HEADERS`' >> $script
259 echo 'export OE_QMAKE_MOC=${OE_QMAKE_PATH_HOST_BINS}/moc' >> $script
260 echo 'export OE_QMAKE_UIC=${OE_QMAKE_PATH_HOST_BINS}/uic' >> $script
261 echo 'export OE_QMAKE_RCC=${OE_QMAKE_PATH_HOST_BINS}/rcc' >> $script
262 echo 'export OE_QMAKE_QDBUSCPP2XML=${OE_QMAKE_PATH_HOST_BINS}/qdbuscpp2xml' >> $script
263 echo 'export OE_QMAKE_QDBUSXML2CPP=${OE_QMAKE_PATH_HOST_BINS}/qdbusxml2cpp' >> $script
264 echo 'export OE_QMAKE_QT_CONFIG=`qmake -query QT_INSTALL_LIBS`/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script
265 echo 'export OE_QMAKE_PATH_HOST_BINS=${OE_QMAKE_PATH_HOST_BINS}' >> $script
266 echo 'export QMAKESPEC=`qmake -query QT_INSTALL_LIBS`/${QT_DIR_NAME}/mkspecs/linux-oe-g++' >> $script
267
268 # Use relocable sysroot
269 sed -i -e 's:${SDKPATHNATIVE}:$OECORE_NATIVE_SYSROOT:g' $script
270}
271
272addtask generate_qt_environment_file after do_install before do_package