mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
feat(build): use Debian Buster for Windows cross-compilation
This commit is contained in:
parent
af02542e05
commit
4fdedba6c0
|
@ -113,7 +113,7 @@ sudo docker run --rm \
|
||||||
-v "$PWD/workspace":/workspace \
|
-v "$PWD/workspace":/workspace \
|
||||||
-v "$PWD":/qtox \
|
-v "$PWD":/qtox \
|
||||||
-e TRAVIS_CI_STAGE="$STAGE" \
|
-e TRAVIS_CI_STAGE="$STAGE" \
|
||||||
debian:stretch-slim \
|
debian:buster-slim \
|
||||||
/bin/bash /qtox/windows/cross-compile/build.sh "$ARCH" "$BUILD_TYPE"
|
/bin/bash /qtox/windows/cross-compile/build.sh "$ARCH" "$BUILD_TYPE"
|
||||||
|
|
||||||
# Purely for debugging
|
# Purely for debugging
|
||||||
|
|
|
@ -45,19 +45,19 @@ To start cross-compiling for 32-bit release version of qTox run:
|
||||||
sudo docker run --rm \
|
sudo docker run --rm \
|
||||||
-v /absolute/path/to/your/workspace:/workspace \
|
-v /absolute/path/to/your/workspace:/workspace \
|
||||||
-v /absolute/path/to/your/qtox:/qtox \
|
-v /absolute/path/to/your/qtox:/qtox \
|
||||||
debian:stretch-slim \
|
debian:buster-slim \
|
||||||
/bin/bash /qtox/windows/cross-compile/build.sh i686 release
|
/bin/bash /qtox/windows/cross-compile/build.sh i686 release
|
||||||
```
|
```
|
||||||
|
|
||||||
If you want to debug some compilation issue, you might want to instead run:
|
If you want to debug some compilation issue, you might want to instead run:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# Get shell inside Debian Stretch container so that you can poke around if needed
|
# Get shell inside Debian Buster container so that you can poke around if needed
|
||||||
sudo docker run -it \
|
sudo docker run -it \
|
||||||
--rm \
|
--rm \
|
||||||
-v /absolute/path/to/your/workspace:/workspace \
|
-v /absolute/path/to/your/workspace:/workspace \
|
||||||
-v /absolute/path/to/your/qtox:/qtox \
|
-v /absolute/path/to/your/qtox:/qtox \
|
||||||
debian:stretch-slim \
|
debian:buster-slim \
|
||||||
/bin/bash
|
/bin/bash
|
||||||
# Run the script
|
# Run the script
|
||||||
bash /qtox/windows/cross-compile/build.sh i686 release
|
bash /qtox/windows/cross-compile/build.sh i686 release
|
||||||
|
@ -106,7 +106,6 @@ workspace
|
||||||
│ │ ├── libtoxcore
|
│ │ ├── libtoxcore
|
||||||
│ │ ├── libvpx
|
│ │ ├── libvpx
|
||||||
│ │ ├── mingw-w64-debug-scripts
|
│ │ ├── mingw-w64-debug-scripts
|
||||||
│ │ ├── nsis
|
|
||||||
│ │ └── nsis_shellexecuteasuser
|
│ │ └── nsis_shellexecuteasuser
|
||||||
│ └── qtox
|
│ └── qtox
|
||||||
│ ├── debug
|
│ ├── debug
|
||||||
|
@ -126,7 +125,6 @@ workspace
|
||||||
│ ├── libtoxcore
|
│ ├── libtoxcore
|
||||||
│ ├── libvpx
|
│ ├── libvpx
|
||||||
│ ├── mingw-w64-debug-scripts
|
│ ├── mingw-w64-debug-scripts
|
||||||
│ ├── nsis
|
|
||||||
│ └── nsis_shellexecuteasuser
|
│ └── nsis_shellexecuteasuser
|
||||||
└── qtox
|
└── qtox
|
||||||
├── debug
|
├── debug
|
||||||
|
|
|
@ -38,9 +38,9 @@ readonly QTOX_SRC_DIR="/qtox"
|
||||||
|
|
||||||
|
|
||||||
# Make sure we run in an expected environment
|
# Make sure we run in an expected environment
|
||||||
if [ ! -f /etc/os-release ] || ! cat /etc/os-release | grep -qi 'stretch'
|
if [ ! -f /etc/os-release ] || ! cat /etc/os-release | grep -qi 'buster'
|
||||||
then
|
then
|
||||||
echo "Error: This script should be run on Debian Stretch."
|
echo "Error: This script should be run on Debian Buster."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -136,6 +136,7 @@ apt-get install -y --no-install-recommends \
|
||||||
cmake \
|
cmake \
|
||||||
git \
|
git \
|
||||||
libtool \
|
libtool \
|
||||||
|
nsis \
|
||||||
pkg-config \
|
pkg-config \
|
||||||
tclsh \
|
tclsh \
|
||||||
unzip \
|
unzip \
|
||||||
|
@ -987,78 +988,6 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# NSIS
|
|
||||||
|
|
||||||
NSIS_PREFIX_DIR="$DEP_DIR/nsis"
|
|
||||||
NSIS_VERSION="Debian Unstable"
|
|
||||||
#NSIS_HASH=
|
|
||||||
if [ ! -f "$NSIS_PREFIX_DIR/done" ]
|
|
||||||
then
|
|
||||||
rm -rf "$NSIS_PREFIX_DIR"
|
|
||||||
mkdir -p "$NSIS_PREFIX_DIR"
|
|
||||||
|
|
||||||
# We want to use NSIS 3, instead of NSIS 2, because it added Windows 8 and 10
|
|
||||||
# support, as well as unicode support. NSIS 3 is not packaged in Debian Stretch
|
|
||||||
# and building it manually appears to be quite a challenge. Luckily it's
|
|
||||||
# packaged in Debian Unstable, so we can backport it to our Debian version
|
|
||||||
# with little effort, utilizing maintainer's build script.
|
|
||||||
|
|
||||||
# Keep the indentation of the next echo command as it is, as apt seems to
|
|
||||||
# ignore preferences starting with whitespace.
|
|
||||||
echo "
|
|
||||||
Package: *
|
|
||||||
Pin: Release a=unstable
|
|
||||||
Pin-Priority: -1
|
|
||||||
" >> /etc/apt/preferences
|
|
||||||
echo "
|
|
||||||
# Needed for NSIS 3
|
|
||||||
deb http://httpredir.debian.org/debian unstable main
|
|
||||||
deb-src http://httpredir.debian.org/debian unstable main
|
|
||||||
" >> /etc/apt/sources.list
|
|
||||||
apt-get update
|
|
||||||
# Get dependencies required for building NSIS
|
|
||||||
apt-get install -y --no-install-recommends \
|
|
||||||
build-essential \
|
|
||||||
devscripts \
|
|
||||||
docbook-xsl-ns \
|
|
||||||
docbook5-xml \
|
|
||||||
dpkg-dev \
|
|
||||||
fakeroot \
|
|
||||||
html2text \
|
|
||||||
libcppunit-dev \
|
|
||||||
mingw-w64 \
|
|
||||||
scons \
|
|
||||||
xsltproc \
|
|
||||||
zlib1g-dev
|
|
||||||
apt-get -t unstable install -y --no-install-recommends debhelper
|
|
||||||
mkdir nsis-build
|
|
||||||
cd nsis-build
|
|
||||||
apt-get -t unstable source nsis
|
|
||||||
|
|
||||||
cd nsis-*
|
|
||||||
# The build script is not parallel enough, this speeds things up greatly
|
|
||||||
sed -i "s/scons / scons -j `nproc` /" debian/rules
|
|
||||||
DEB_BUILD_OPTIONS="parallel=`nproc` nocheck" debuild -b -uc -us
|
|
||||||
cd ..
|
|
||||||
mv nsis-common_*.deb "$NSIS_PREFIX_DIR"
|
|
||||||
mv nsis-doc_*.deb "$NSIS_PREFIX_DIR"
|
|
||||||
mv nsis_*.deb "$NSIS_PREFIX_DIR"
|
|
||||||
mv nsis-pluginapi_*.deb "$NSIS_PREFIX_DIR"
|
|
||||||
|
|
||||||
cd ..
|
|
||||||
rm -rf ./nsis-build
|
|
||||||
|
|
||||||
echo -n $NSIS_VERSION > $NSIS_PREFIX_DIR/done
|
|
||||||
else
|
|
||||||
echo "Using cached build of NSIS `cat $NSIS_PREFIX_DIR/done`"
|
|
||||||
fi
|
|
||||||
# Install NSIS
|
|
||||||
dpkg -i "$NSIS_PREFIX_DIR"/nsis-common_*.deb
|
|
||||||
dpkg -i "$NSIS_PREFIX_DIR"/nsis-doc_*.deb
|
|
||||||
dpkg -i "$NSIS_PREFIX_DIR"/nsis_*.deb
|
|
||||||
dpkg -i "$NSIS_PREFIX_DIR"/nsis-pluginapi_*.deb
|
|
||||||
|
|
||||||
|
|
||||||
# NSIS ShellExecAsUser plugin
|
# NSIS ShellExecAsUser plugin
|
||||||
|
|
||||||
NSISSHELLEXECASUSER_PREFIX_DIR="$DEP_DIR/nsis_shellexecuteasuser"
|
NSISSHELLEXECASUSER_PREFIX_DIR="$DEP_DIR/nsis_shellexecuteasuser"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user