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