aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/docker
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2022-03-09 12:16:32 +0100
committerhjk <hjk@qt.io>2022-03-16 12:51:42 +0000
commit42d7a96a675687c112a072a9fc6a72be6d938c6a (patch)
treec0b68033ffe1d34ba540e526dc7e9875f4cdf033 /tests/manual/docker
parent7607f6dc069bc0547166aec121c599b445a01da9 (diff)
Docker: Add some example for boot2qt kit setup
Change-Id: Ib4dfc474eee19d7e0f66bf5a76cd6c808df15efc Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
Diffstat (limited to 'tests/manual/docker')
-rwxr-xr-xtests/manual/docker/boot2qt/build.sh124
1 files changed, 122 insertions, 2 deletions
diff --git a/tests/manual/docker/boot2qt/build.sh b/tests/manual/docker/boot2qt/build.sh
index 9d8c87a824..7365a4477f 100755
--- a/tests/manual/docker/boot2qt/build.sh
+++ b/tests/manual/docker/boot2qt/build.sh
@@ -28,9 +28,15 @@
uid=$(id -u)
gid=$(id -g)
+repo=b2qt-qemuarm64
+tag=6.0.0
+tcdir=/opt/toolchain
+envfile=environment-setup-skylake-64-poky-linux
+qtcconf=configure-qtcreator.sh
+
if [ ! -e toolchain.sh ]; then
host=http://ci-files02-hki.intra.qt.io
- dir=/packages/jenkins/enterprise/b2qt/yocto/6.2/
+ dir=/packages/jenkins/enterprise/b2qt/yocto/dev/intel-skylake-64
file=b2qt-x86_64-meta-toolchain-b2qt-embedded-qt6-sdk-intel-skylake-64.sh
curl $host/$dir/$file -o $file || exit 1
ln -s $file toolchain.sh
@@ -38,4 +44,118 @@ fi
sed -e "s/<UID>/${uid}/" -e "s/<GID>/${gid}/" Dockerfile.in > Dockerfile
-docker build -f Dockerfile . -t b2qt-qemuarm64:6.0.0
+docker build -f Dockerfile . -t $repo:$tag
+
+
+ABI="x86-linux-poky-elf-64bit"
+
+OECORE_NATIVE_SYSROOT=/opt/toolchain/sysroots/x86_64-pokysdk-linux
+PREFIX="docker://$repo:$tag/opt/toolchain/sysroots/x86_64-pokysdk-linux"
+
+CC="${PREFIX}/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gcc"
+CXX="${PREFIX}/usr/bin/x86_64-poky-linux/x86_64-poky-linux-g++"
+GDB="${PREFIX}/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gdb"
+QMAKE="${PREFIX}/usr/bin/qmake"
+CMAKE="${PREFIX}/usr/bin/cmake"
+
+SDKTOOL="../../../../libexec/qtcreator/sdktool"
+
+MACHINE="intel-skylake-64"
+
+if [ ! -x ${SDKTOOL} ]; then
+ echo "Cannot find 'sdktool' from QtCreator"
+ exit 1
+fi
+
+
+#MKSPEC=$(qmake -query QMAKE_XSPEC)
+MKSPEC=linux-oe-g++
+
+#RELEASE=$(qmake -query QT_VERSION)
+RELEASE=$tag
+
+NAME=${NAME:-"Custom Qt ${RELEASE} ${MACHINE}"}
+BASEID="byos.${RELEASE}.${MACHINE}"
+
+${SDKTOOL} rmKit --id ${BASEID}.kit 2>/dev/null || true
+${SDKTOOL} rmQt --id ${BASEID}.qt || true
+${SDKTOOL} rmTC --id ProjectExplorer.ToolChain.Gcc:${BASEID}.gcc || true
+${SDKTOOL} rmTC --id ProjectExplorer.ToolChain.Gcc:${BASEID}.g++ || true
+${SDKTOOL} rmDebugger --id ${BASEID}.gdb 2>/dev/null || true
+${SDKTOOL} rmCMake --id ${BASEID}.cmake 2>/dev/null || true
+${SDKTOOL} rmDev --id "$repo:$tag" 2>/dev/null || true
+
+if [ -n "${REMOVEONLY}" ]; then
+ echo "Kit removed: ${NAME}"
+ exit 0
+fi
+
+${SDKTOOL} addAbiFlavor \
+ --flavor poky \
+ --oses linux 2>/dev/null || true
+
+${SDKTOOL} addDev \
+ --id "$repo:$tag" \
+ --type 1 \
+ --name "Docker $repo:$tag" \
+ --dockerRepo $repo \
+ --dockerTag $tag \
+ --dockerMappedPaths '/data' \
+ --osType DockerDeviceType
+
+${SDKTOOL} addTC \
+ --id "ProjectExplorer.ToolChain.Gcc:${BASEID}.gcc" \
+ --name "GCC ${NAME}" \
+ --path "${CC}" \
+ --abi "${ABI}" \
+ --language C
+
+${SDKTOOL} addTC \
+ --id "ProjectExplorer.ToolChain.Gcc:${BASEID}.g++" \
+ --name "G++ ${NAME}" \
+ --path "${CXX}" \
+ --abi "${ABI}" \
+ --language Cxx
+
+${SDKTOOL} addDebugger \
+ --id "${BASEID}.gdb" \
+ --name "GDB ${NAME}" \
+ --engine 1 \
+ --binary "${GDB}" \
+ --abis "${ABI}"
+
+${SDKTOOL} addQt \
+ --id "${BASEID}.qt" \
+ --name "${NAME}" \
+ --type "Qdb.EmbeddedLinuxQt" \
+ --qmake ${QMAKE} \
+ --abis "${ABI}"
+
+${SDKTOOL} addCMake \
+ --id "${BASEID}.cmake" \
+ --name "CMake ${NAME}" \
+ --path ${CMAKE}
+
+${SDKTOOL} addKit \
+ --id "${BASEID}.kit" \
+ --name "${NAME}" \
+ --qt "${BASEID}.qt" \
+ --debuggerid "${BASEID}.gdb" \
+ --sysroot "docker://$repo:$tag/opt/toolchain/sysroots/skylake-64-poky-linux" \
+ --devicetype "DockerDeviceType" \
+ --device "$repo:$tag" \
+ --builddevice "$repo:$tag" \
+ --Ctoolchain "ProjectExplorer.ToolChain.Gcc:${BASEID}.gcc" \
+ --Cxxtoolchain "ProjectExplorer.ToolChain.Gcc:${BASEID}.g++" \
+ --icon ":/boot2qt/images/B2Qt_QtC_icon.png" \
+ --mkspec "" \
+ --cmake "${BASEID}.cmake" \
+ --cmake-config "CMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx}" \
+ --cmake-config "CMAKE_C_COMPILER:STRING=%{Compiler:Executable:C}" \
+ --cmake-config "CMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX}" \
+ --cmake-config "QT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable}" \
+ --cmake-config "CMAKE_TOOLCHAIN_FILE:FILEPATH=${OECORE_NATIVE_SYSROOT}/usr/lib/cmake/Qt6/qt.toolchain.cmake" \
+ --cmake-config "CMAKE_MAKE_PROGRAM:FILEPATH=ninja" \
+ --cmake-generator "Ninja"
+
+echo "Configured Qt Creator with new kit: ${NAME}"