summaryrefslogtreecommitdiffstats
path: root/classes/qbsp.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'classes/qbsp.bbclass')
-rw-r--r--classes/qbsp.bbclass151
1 files changed, 151 insertions, 0 deletions
diff --git a/classes/qbsp.bbclass b/classes/qbsp.bbclass
new file mode 100644
index 0000000..6707ce3
--- /dev/null
+++ b/classes/qbsp.bbclass
@@ -0,0 +1,151 @@
1############################################################################
2##
3## Copyright (C) 2016 The Qt Company Ltd.
4## Contact: https://www.qt.io/licensing/
5##
6## This file is part of the Boot to Qt meta layer.
7##
8## $QT_BEGIN_LICENSE:GPL$
9## Commercial License Usage
10## Licensees holding valid commercial Qt licenses may use this file in
11## accordance with the commercial license agreement provided with the
12## Software or, alternatively, in accordance with the terms contained in
13## a written agreement between you and The Qt Company. For licensing terms
14## and conditions see https://www.qt.io/terms-conditions. For further
15## information use the contact form at https://www.qt.io/contact-us.
16##
17## GNU General Public License Usage
18## Alternatively, this file may be used under the terms of the GNU
19## General Public License version 3 or (at your option) any later version
20## approved by the KDE Free Qt Foundation. The licenses are as published by
21## the Free Software Foundation and appearing in the file LICENSE.GPL3
22## included in the packaging of this file. Please review the following
23## information to ensure the GNU General Public License requirements will
24## be met: https://www.gnu.org/licenses/gpl-3.0.html.
25##
26## $QT_END_LICENSE$
27##
28############################################################################
29
30inherit meta nopackages abi-arch
31
32FILESEXTRAPATHS_prepend := "${B2QTBASE}/files/qbsp:"
33
34SRC_URI = "\
35 file://base_package.xml \
36 file://image_package.xml \
37 file://toolchain_package.xml \
38 file://toolchain_installscript.qs \
39 "
40
41INHIBIT_DEFAULT_DEPS = "1"
42do_qbsp[depends] += "\
43 installer-framework:do_populate_sysroot \
44 ${QBSP_SDK_TASK}:do_populate_sdk \
45 ${QBSP_IMAGE_TASK}:do_image_complete \
46 "
47
48QBSP_VERSION ?= "${PV}${VERSION_AUTO_INCREMENT}"
49QBSP_INSTALLER_COMPONENT ?= "${MACHINE}"
50QBSP_INSTALL_PATH ?= "/Extras/${MACHINE}"
51
52QBSP_LICENSE_DEPENDENCY ?= ""
53QBSP_LICENSE_DEPENDENCY_imx = "qt.embedded.b2qt.freescalelicense"
54
55VERSION_AUTO_INCREMENT = "-0-${DATETIME}"
56VERSION_AUTO_INCREMENT[vardepsexclude] = "DATETIME"
57
58DEPLOY_CONF_NAME ?= "${MACHINE}"
59RELEASEDATE = "${@time.strftime('%Y-%m-%d',time.gmtime())}"
60
61IMAGE_PACKAGE = "${QBSP_IMAGE_TASK}-${MACHINE}.7z"
62SDK_NAME = "${DISTRO}-${SDK_MACHINE}-${QBSP_SDK_TASK}-${MACHINE}.${SDK_POSTFIX}"
63SDK_POSTFIX = "sh"
64SDK_POSTFIX_sdkmingw32 = "7z"
65REAL_MULTIMACH_TARGET_SYS = "${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
66SDK_MACHINE = "${@d.getVar('SDKMACHINE', True) or '${SDK_ARCH}'}"
67
68B = "${WORKDIR}/build"
69
70patch_installer_files() {
71 sed -e 's#@NAME@#${DEPLOY_CONF_NAME}#' \
72 -e 's#@VERSION@#${QBSP_VERSION}#' \
73 -e 's#@RELEASEDATE@#${RELEASEDATE}#' \
74 -e 's#@MACHINE@#${MACHINE}#' \
75 -e 's#@SYSROOT@#${REAL_MULTIMACH_TARGET_SYS}#' \
76 -e 's#@TARGET@#${TARGET_SYS}#' \
77 -e 's#@ABI@#${ABI}#' \
78 -e 's#@INSTALLPATH@#${QBSP_INSTALL_PATH}#' \
79 -e 's#@SDKPATH@#${SDKPATH}#' \
80 -e 's#@SDKFILE@#${SDK_NAME}#' \
81 -e 's#@LICENSEDEPENDENCY@#${QBSP_LICENSE_DEPENDENCY}#' \
82 -i ${1}/*
83}
84
85prepare_qbsp() {
86 # Toolchain component
87 TOOLCHAIN_PATH="${B}/pkg/${QBSP_INSTALLER_COMPONENT}.toolchain"
88 mkdir -p ${TOOLCHAIN_PATH}/meta
89 mkdir -p ${TOOLCHAIN_PATH}/data
90
91 cp ${WORKDIR}/toolchain_package.xml ${TOOLCHAIN_PATH}/meta/package.xml
92 cp ${WORKDIR}/toolchain_installscript.qs ${TOOLCHAIN_PATH}/meta/installscript.qs
93 patch_installer_files ${TOOLCHAIN_PATH}/meta
94
95 mkdir -p ${B}/toolchain/${QBSP_INSTALL_PATH}/toolchain
96 if [ "${SDK_POSTFIX}" == "7z" ]; then
97 7z x ${DEPLOY_DIR}/sdk/${SDK_NAME} -o${B}/toolchain/${QBSP_INSTALL_PATH}/toolchain/
98 else
99 cp ${DEPLOY_DIR}/sdk/${SDK_NAME} ${B}/toolchain/${QBSP_INSTALL_PATH}/toolchain/
100 fi
101
102 cd ${B}/toolchain
103 archivegen ${TOOLCHAIN_PATH}/data/toolchain.7z *
104
105 # Image component
106 IMAGE_PATH="${B}/pkg/${QBSP_INSTALLER_COMPONENT}.system"
107 mkdir -p ${IMAGE_PATH}/meta
108 mkdir -p ${IMAGE_PATH}/data
109
110 cp ${WORKDIR}/image_package.xml ${IMAGE_PATH}/meta/package.xml
111 patch_installer_files ${IMAGE_PATH}/meta
112
113 mkdir -p ${B}/images/${QBSP_INSTALL_PATH}/images
114 7z x ${DEPLOY_DIR_IMAGE}/${IMAGE_PACKAGE} -o${B}/images/${QBSP_INSTALL_PATH}/images/
115
116 cd ${B}/images
117 archivegen ${IMAGE_PATH}/data/image.7z *
118
119 # Base component
120 BASE_PATH="${B}/pkg/${QBSP_INSTALLER_COMPONENT}"
121 mkdir -p ${BASE_PATH}/meta
122
123 cp ${WORKDIR}/base_package.xml ${BASE_PATH}/meta/package.xml
124 patch_installer_files ${BASE_PATH}/meta
125}
126
127create_qbsp() {
128 prepare_qbsp
129
130 # Repository creation
131 repogen -p ${B}/pkg ${B}/repository
132
133 mkdir -p ${DEPLOY_DIR}/qbsp
134 rm -f ${DEPLOY_DIR}/qbsp/${PN}-${MACHINE}.qbsp
135
136 cd ${B}/repository
137 archivegen ${DEPLOY_DIR}/qbsp/${PN}-${SDK_MACHINE}-${MACHINE}.qbsp *
138}
139
140python do_qbsp() {
141 bb.build.exec_func('create_qbsp', d)
142}
143
144addtask qbsp after do_unpack before do_build
145
146do_qbsp[cleandirs] += "${B}"
147
148do_configure[noexec] = "1"
149do_compile[noexec] = "1"
150do_populate_sysroot[noexec] = "1"
151do_populate_lic[noexec] = "1"