-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #51 from feelpp/prudhomm/issue50
resolves #50: add support for Qt 6.5
- Loading branch information
Showing
7 changed files
with
189 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
#!/bin/sh -xe | ||
# Script to get emscripten sdk | ||
|
||
[ "$SDK_VERSION" ] || SDK_VERSION=2.0.30 | ||
[ "$SDK_URL" ] || SDK_URL="https://github.com/emscripten-core/emsdk/archive/refs/tags/$SDK_VERSION.tar.gz" | ||
[ "$SDK_SHA256" ] || SDK_SHA256=69050d76c8907a58f99b08831e8cb7a4fba857efec6037d5e59df4b73111ba36 | ||
|
||
[ "$SDK_PATH" ] || SDK_PATH=/opt/emsdk | ||
|
||
root_dir=$PWD | ||
[ "$root_dir" != '/' ] || root_dir="" | ||
|
||
# Init the package system | ||
apt update | ||
|
||
echo | ||
echo '--> Save the original installed packages list' | ||
echo | ||
|
||
dpkg --get-selections | cut -f 1 > /tmp/packages_orig.lst | ||
|
||
echo | ||
echo '--> Install EmSDK' | ||
echo | ||
|
||
apt install -y curl python-is-python3 | ||
|
||
echo "$SDK_SHA256 -" > sum.txt && curl -fLs "$SDK_URL" | tee /tmp/emsdk.tar.gz | sha256sum -c sum.txt | ||
mkdir -p "$SDK_PATH" | ||
tar --strip-components 1 -C "$SDK_PATH" -xf /tmp/emsdk.tar.gz | ||
rm -f /tmp/emsdk.tar.gz | ||
emsdk install "$SDK_VERSION" | ||
emsdk activate "$SDK_VERSION" | ||
|
||
# Make sure node tool exist | ||
ls "$EMSDK_NODE" | ||
|
||
echo | ||
echo '--> Restore the packages list to the original state' | ||
echo | ||
|
||
dpkg --get-selections | cut -f 1 > /tmp/packages_curr.lst | ||
grep -Fxv -f /tmp/packages_orig.lst /tmp/packages_curr.lst | xargs apt remove -y --purge | ||
|
||
# Complete the cleaning | ||
|
||
cd /tmp | ||
rm -rf $root_dir/build | ||
apt -qq clean | ||
rm -rf /var/lib/apt/lists/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
#!/bin/sh -xe | ||
# Script to install Qt 6 in docker container | ||
|
||
[ "$AQT_VERSION" ] || AQT_VERSION=aqtinstall | ||
[ "$QT_VERSION" ] || exit 1 | ||
|
||
[ "$QT_PATH" ] || QT_PATH=/opt/Qt | ||
|
||
root_dir=$PWD | ||
[ "$root_dir" != '/' ] || root_dir="" | ||
|
||
# Init the package system | ||
apt update | ||
|
||
echo | ||
echo '--> Save the original installed packages list' | ||
echo | ||
|
||
dpkg --get-selections | cut -f 1 > /tmp/packages_orig.lst | ||
|
||
echo | ||
echo '--> Install the required packages to install Qt' | ||
echo | ||
|
||
apt install -y git python3-pip libglib2.0-0 | ||
pip3 install --no-cache-dir "$AQT_VERSION" | ||
|
||
echo | ||
echo '--> Download & install the Qt library using aqt' | ||
echo | ||
|
||
aqt install-qt -O "$QT_PATH" linux desktop "$QT_VERSION" wasm_singlethread -m qtcharts qtquick3d qtshadertools qtdatavis3d qtquicktimeline | ||
aqt install-qt -O "$QT_PATH" linux desktop "$QT_VERSION" wasm_multithread -m qtcharts qtquick3d qtshadertools qtdatavis3d qtquicktimeline | ||
aqt install-tool -O "$QT_PATH" linux desktop tools_cmake | ||
aqt install-tool -O "$QT_PATH" linux desktop tools_ninja | ||
# Host Qt needed for cross-compilation | ||
aqt install-qt -O "$QT_PATH" linux desktop "$QT_VERSION" gcc_64 -m qtcharts qtquick3d qtshadertools qtdatavis3d qtquicktimeline | ||
|
||
pip3 freeze | xargs pip3 uninstall -y | ||
|
||
# Create qt-cmake wrapper to simplify the emsdk usage | ||
mkdir -p /usr/local/bin | ||
cat - <<\EOF > /usr/local/bin/qt-cmake | ||
#!/bin/sh -e | ||
export CMAKE_TOOLCHAIN_FILE=$QT_WASM/lib/cmake/Qt6/qt.toolchain.cmake | ||
exec cmake "-DQT_HOST_PATH=$(dirname "$QT_WASM")/gcc_64" "$@" | ||
EOF | ||
|
||
chmod +x /usr/local/bin/* | ||
|
||
echo | ||
echo '--> Restore the packages list to the original state' | ||
echo | ||
|
||
dpkg --get-selections | cut -f 1 > /tmp/packages_curr.lst | ||
grep -Fxv -f /tmp/packages_orig.lst /tmp/packages_curr.lst | xargs apt remove -y --purge | ||
|
||
# Complete the cleaning | ||
|
||
apt -qq clean | ||
rm -rf /var/lib/apt/lists/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
#!/bin/sh -xe | ||
|
||
[ "$QT_PATH" ] || QT_PATH=/opt/Qt | ||
|
||
[ "$ADDITIONAL_PACKAGES" ] || ADDITIONAL_PACKAGES='build-essential ninja-build' | ||
|
||
# Init package system | ||
apt update | ||
|
||
echo | ||
echo '--> Locating the shared libs required for the installed tools' | ||
echo | ||
|
||
find "$QT_PATH" /usr/local -executable -type f -o -name '*.so' | xargs ldd 2>/dev/null | \ | ||
grep -F '=> not found' | tr '\t' ' ' | cut -d' ' -f2 | sort -u | tee /tmp/not_found_libs.lst | ||
|
||
echo | ||
echo '--> Locating packages to provide the required shared libs' | ||
echo | ||
|
||
apt install -y apt-file | ||
apt-file update | ||
|
||
while read line ; do apt-file find $line | grep '^lib' | head -1; done < /tmp/not_found_libs.lst | tee /tmp/to_install_libs.lst | ||
|
||
# TODO: Clean apt-file cache | ||
|
||
apt autoremove -y --purge apt-file | ||
|
||
echo | ||
echo '--> Install the found libraries' | ||
echo | ||
|
||
cat /tmp/to_install_libs.lst | cut -d: -f 1 | xargs apt install -y --no-install-suggests --no-install-recommends $ADDITIONAL_PACKAGES | ||
|
||
# Complete the cleaning | ||
|
||
apt -qq clean | ||
rm -rf /var/lib/apt/lists/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
export QT_VERSION=6.5.0 | ||
export QT_PATH=/opt/Qt | ||
|
||
export SDK_PATH=/opt/emsdk | ||
export SDK_VERSION=3.1.25 | ||
export SDK_SHA256=b8772e32043905b3af4b926f54ac7ca3faf5d5eb93105973c85c56ec60c832d5 | ||
|
||
export ADDITIONAL_PACKAGES="sudo git openssh-client ca-certificates curl python3 locales" | ||
|
||
|
||
export DEBIAN_FRONTEND=noninteractive | ||
export DEBCONF_NONINTERACTIVE_SEEN=true | ||
export QT_PATH=${QT_PATH} | ||
export QT_WASM=${QT_PATH}/${QT_VERSION}/wasm_singlethread | ||
export EMSDK=${SDK_PATH} | ||
export EMSDK_NODE=${SDK_PATH}/node/14.18.2_64bit/bin/node | ||
export PATH=$PATH:${QT_PATH}/Tools/CMake/bin:${QT_PATH}/Tools/Ninja:${QT_PATH}/${QT_VERSION}/wasm_singlethread/bin:${SDK_PATH}/upstream/bin:${SDK_PATH}/upstream/emscripten:${SDK_PATH}/node/14.18.2_64bit/bin:${SDK_PATH} | ||
|
||
dirname=$(dirname "$0") | ||
|
||
# Install emscripten | ||
sh $dirname/get_emsdk.sh | ||
|
||
# Get Qt binaries with aqt | ||
sh $dirname/get_qt.sh | ||
|
||
# Install the required packages | ||
sh $dirname/install_packages.sh |