xref: /OK3568_Linux_fs/yocto/meta-qt5/recipes-qt/qt5/qt5.inc (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1# Copyright (C) 2012, 2014 O.S. Systems Software LTDA.
2# Copyright (C) 2013-2018 Martin Jansa <martin.jansa@gmail.com>
3
4inherit qmake5
5
6PACKAGECONFIG_OPENSSL ?= "openssl"
7
8PACKAGECONFIG[examples] = ""
9PACKAGECONFIG[tests] = ""
10PACKAGECONFIG[qtquickcompiler] = ",,qtdeclarative-native"
11EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'examples', 'QT_BUILD_PARTS+=examples', 'QT_BUILD_PARTS-=examples', d)}"
12EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'tests', 'QT_BUILD_PARTS+=tests', 'QT_BUILD_PARTS-=tests', d)}"
13EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'qtquickcompiler', 'CONFIG+=qtquickcompiler', '', d)}"
14
15# we don't want conflicts with qt4
16OE_QMAKE_PATH_HEADERS = "${OE_QMAKE_PATH_QT_HEADERS}"
17OE_QMAKE_PATH_ARCHDATA = "${OE_QMAKE_PATH_QT_ARCHDATA}"
18OE_QMAKE_PATH_DATA = "${OE_QMAKE_PATH_QT_DATA}"
19OE_QMAKE_PATH_BINS = "${OE_QMAKE_PATH_QT_BINS}"
20OE_QMAKE_PATH_TRANSLATIONS = "${OE_QMAKE_PATH_QT_TRANSLATIONS}"
21OE_QMAKE_PATH_DOCS = "${OE_QMAKE_PATH_QT_DOCS}"
22OE_QMAKE_PATH_SETTINGS = "${OE_QMAKE_PATH_QT_SETTINGS}"
23OE_QMAKE_PATH_EXAMPLES = "${OE_QMAKE_PATH_QT_EXAMPLES}"
24OE_QMAKE_PATH_TESTS = "${OE_QMAKE_PATH_QT_TESTS}"
25
26OE_QMAKE_RECURSIVE = ""
27
28# If Qt5 (qtbase) is machine specific, then everything will be,
29# because the (initial) qtbase configuration becomes part of Qt5/qmake
30python __anonymous() {
31    barch = d.getVar("BUILD_ARCH", True) or ''
32    tarch = d.getVar("TARGET_ARCH", True) or ''
33    # do not do anything if we are building a native package
34    if barch != tarch:
35        tarch = d.getVar("QT_PACKAGES_ARCH", True) or ''
36        if tarch:
37            d.setVar("PACKAGE_ARCH", tarch)
38}
39
40# if building static Qt5, add qtdeclarative-native dependency to all recipes
41# that depend on qtdeclarative as it's required for qmlimportscannertool
42python __anonymous() {
43    if bb.utils.contains('DISTRO_FEATURES', "qt5-static", True, False, d):
44        if bb.utils.contains('DEPENDS', "qtdeclarative", True, False, d):
45            d.appendVar("DEPENDS", " qtdeclarative-native")
46}
47
48# Many examples come with libraries installed outside of standard libdir,
49# suppress QA check complaining
50INSANE_SKIP:${PN}-dbg += "libdir"
51INSANE_SKIP:${PN}-examples += "libdir staticdev dev-so"
52
53PACKAGES =. "${PN}-qmldesigner ${PN}-qmlplugins ${PN}-tools ${PN}-plugins ${PN}-mkspecs ${PN}-examples "
54
55ALLOW_EMPTY:${PN} = "1"
56ALLOW_EMPTY:${PN}-mkspecs = "1"
57ALLOW_EMPTY:${PN}-plugins = "1"
58ALLOW_EMPTY:${PN}-qmlplugins = "1"
59
60RRECOMMENDS:${PN} = " \
61    ${PN}-plugins \
62    ${PN}-qmlplugins \
63    "
64RRECOMMENDS:${PN}:class-native = ""
65
66RRECOMMENDS:${PN}-dev = " \
67    ${PN} \
68    ${PN}-mkspecs \
69    ${PN}-qmldesigner \
70    "
71
72# extra packages
73FILES:${PN}-qmldesigner += " \
74    ${OE_QMAKE_PATH_QML}/*/designer \
75    ${OE_QMAKE_PATH_QML}/*/*/designer \
76    ${OE_QMAKE_PATH_QML}/*/*/*/designer \
77"
78
79# qmlplugins 1-4 levels of subdirs qmldir + *{.so,*.qmltypes,*.qml,*.qmlc,*.js,*.jsc}
80FILES:${PN}-qmlplugins = " \
81    ${OE_QMAKE_PATH_QML}/*.qmltypes \
82    ${OE_QMAKE_PATH_QML}/*/*${SOLIBSDEV} \
83    ${OE_QMAKE_PATH_QML}/*/qmldir \
84    ${OE_QMAKE_PATH_QML}/*/*.qmltypes \
85    ${OE_QMAKE_PATH_QML}/*/*.qml \
86    ${OE_QMAKE_PATH_QML}/*/*.qmlc \
87    ${OE_QMAKE_PATH_QML}/*/*.js \
88    ${OE_QMAKE_PATH_QML}/*/*.jsc \
89    ${OE_QMAKE_PATH_QML}/*/*.png \
90    ${OE_QMAKE_PATH_QML}/*/*/*${SOLIBSDEV} \
91    ${OE_QMAKE_PATH_QML}/*/*/qmldir \
92    ${OE_QMAKE_PATH_QML}/*/*/*.qmltypes \
93    ${OE_QMAKE_PATH_QML}/*/*/*.qml \
94    ${OE_QMAKE_PATH_QML}/*/*/*.qmlc \
95    ${OE_QMAKE_PATH_QML}/*/*/*.js \
96    ${OE_QMAKE_PATH_QML}/*/*/*.jsc \
97    ${OE_QMAKE_PATH_QML}/*/*/*.png \
98    ${OE_QMAKE_PATH_QML}/*/*/*/*${SOLIBSDEV} \
99    ${OE_QMAKE_PATH_QML}/*/*/*/qmldir \
100    ${OE_QMAKE_PATH_QML}/*/*/*/images \
101    ${OE_QMAKE_PATH_QML}/*/*/*/*.qmltypes \
102    ${OE_QMAKE_PATH_QML}/*/*/*/*.qml \
103    ${OE_QMAKE_PATH_QML}/*/*/*/*.qmlc \
104    ${OE_QMAKE_PATH_QML}/*/*/*/*.js \
105    ${OE_QMAKE_PATH_QML}/*/*/*/*.jsc \
106    ${OE_QMAKE_PATH_QML}/*/*/*/*.png \
107    ${OE_QMAKE_PATH_QML}/*/*/*/*.metainfo \
108    ${OE_QMAKE_PATH_QML}/*/*/*/*/*${SOLIBSDEV} \
109    ${OE_QMAKE_PATH_QML}/*/*/*/*/qmldir \
110    ${OE_QMAKE_PATH_QML}/*/*/*/*/*.qmltypes \
111    ${OE_QMAKE_PATH_QML}/*/*/*/*/*.qml \
112    ${OE_QMAKE_PATH_QML}/*/*/*/*/*.qmlc \
113    ${OE_QMAKE_PATH_QML}/*/*/*/*/*.js \
114    ${OE_QMAKE_PATH_QML}/*/*/*/*/*.jsc \
115    ${OE_QMAKE_PATH_QML}/*/*/*/*/*/*.png \
116"
117
118FILES:${PN}-tools = " \
119    ${OE_QMAKE_PATH_BINS}/* \
120"
121FILES:${PN}-plugins = " \
122    ${OE_QMAKE_PATH_PLUGINS}/*/*${SOLIBSDEV} \
123    ${OE_QMAKE_PATH_PLUGINS}/*/*/*${SOLIBSDEV} \
124    ${OE_QMAKE_PATH_PLUGINS}/*/*/*/*${SOLIBSDEV} \
125"
126FILES:${PN}-mkspecs = "\
127    ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \
128"
129
130# modifications to normal packages
131FILES:${PN} += " \
132    ${OE_QMAKE_PATH_LIBS}/metatypes \
133    ${OE_QMAKE_PATH_LIBS}/lib*${SOLIBS} \
134    ${OE_QMAKE_PATH_LIBEXECS} \
135"
136FILES:${PN}-dev += " \
137    ${OE_QMAKE_PATH_LIBS}/lib*${SOLIBSDEV} \
138    ${OE_QMAKE_PATH_LIBS}/pkgconfig \
139    ${OE_QMAKE_PATH_LIBS}/cmake/* \
140    ${OE_QMAKE_PATH_LIBS}/*.prl \
141    ${OE_QMAKE_PATH_LIBS}/*.la \
142    ${OE_QMAKE_PATH_HEADERS}/* \
143"
144FILES:${PN}-staticdev += " \
145    ${OE_QMAKE_PATH_LIBS}/*.a \
146    ${OE_QMAKE_PATH_PLUGINS}/*/*.a \
147    ${OE_QMAKE_PATH_PLUGINS}/*/*.prl \
148    ${OE_QMAKE_PATH_PLUGINS}/*/*/*.a \
149    ${OE_QMAKE_PATH_PLUGINS}/*/*/*.prl \
150    ${OE_QMAKE_PATH_QML}/*/*.a \
151    ${OE_QMAKE_PATH_QML}/*/*.prl \
152    ${OE_QMAKE_PATH_QML}/*/*/*.a \
153    ${OE_QMAKE_PATH_QML}/*/*/*.prl \
154    ${OE_QMAKE_PATH_QML}/*/*/*/*.a \
155    ${OE_QMAKE_PATH_QML}/*/*/*/*.prl \
156    ${OE_QMAKE_PATH_QML}/*/*/*/*/*.a \
157    ${OE_QMAKE_PATH_QML}/*/*/*/*/*.prl \
158"
159FILES:${PN}-examples = " \
160    ${OE_QMAKE_PATH_EXAMPLES} \
161"
162
163PATH:prepend = "${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_QT_BINS}:"
164