1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#!/bin/bash
#
# This script is used to create the daily builds for Windows using
# cross-compilation on Linux. The script is intended to run as a cron
# job.
#
# As is, it assumes a user `prolog` doing the job, installed
# prerequisites and SSH certificates to do the uploads.
export MINGW32_ROOT=$HOME/mingw32
export MINGW64_ROOT=$HOME/mingw64
export DAILY=true
export DISPLAY=:32
Xvfb $DISPLAY > /dev/null 2>&1 &
XPID=$!
targeturl=ops:web/download/daily/bin
finaldir=/home/prolog/daily/bin
date=$(date +%F)
( cd /home/prolog/src/swipl-devel
git pull
git submodule update --init
) > /home/prolog/src/swipl-devel/daily-update.log 2>&1
if [ -z "$1" -o "$1" = win32 ]; then
( cd /home/prolog/src/swipl-devel
rm -rf win32
mkdir win32
cd win32
find . -name '*.qlf' | xargs rm
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../cmake/cross/linux_win32.cmake -G Ninja ..
ninja -j 2
cpack
) > /home/prolog/src/swipl-devel/daily-win32.log 2>&1
fi
if [ -z "$1" -o "$1" = win64 ]; then
( cd /home/prolog/src/swipl-devel
rm -rf win64
mkdir win64
cd win64
find . -name '*.qlf' | xargs rm
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../cmake/cross/linux_win64.cmake -G Ninja ..
ninja -j 2
cpack
) > /home/prolog/src/swipl-devel/daily-win64.log 2>&1
fi
kill $XPID
find $finaldir -name '*.exe' -ctime +7 | xargs rm 2>/dev/null
mv /home/prolog/src/swipl-devel/win32/*.exe $finaldir/swipl-w32-$date.exe
mv /home/prolog/src/swipl-devel/win64/*.exe $finaldir/swipl-w64-$date.exe
rsync -a --delete $finaldir/ $targeturl
|