Commit 9e01be4d authored by Sam Thursfield's avatar Sam Thursfield
Browse files

build: Split nwjs_version_for_platform.sh script out of tar_em_up.sh

This helps the CI to discover the necessary nw.js tarball while keeping
the logic in one place.
parent 49f8e997
#!/bin/bash
# nwjs_version_for_platform.sh
#
# Determine the version of nw.js that Purr Data should use on a given platform.
#
# Variables "$os" and "$arch" can be set in the environment, or autodetected.
set -e
if [ -z "$os" ]; then
os=`uname | tr '[:upper:]' '[:lower:]'`
if [[ $os == *"mingw32"* ]]; then
os=win
elif [[ $os == "darwin" ]]; then
os=osx
fi
fi
if [ -z "$arch" ]; then
if [ `getconf LONG_BIT` -eq 32 ]; then
arch="ia32"
else
arch="x64"
fi
# for rpi
if [ `uname -m` == "armv7l" ]; then
arch="armv7l"
fi
# for pinebook, probably also rpi 4
if [ `uname -m` == "aarch64" ]; then
arch="armv7l"
fi
fi
# MSYS: Pick the right architecture depending on whether we're
# running in the 32 or 64 bit version of the MSYS shell.
if [[ $os == "win" ]]; then
arch="ia32"
elif [[ $os == "win64" ]]; then
arch="x64"
fi
if [[ $os == "win" || $os == "win64" || $os == "osx" ]]; then
ext="zip"
else
ext="tar.gz"
fi
if [[ $osx_version == "10.8" ]]; then
# We need the lts version to be able to run on legacy systems.
nwjs_version="v0.14.7"
else
# temporary kluge for rpi-- only 0.15.1 is available atm
if [ $arch == "armv7l" ]; then
nwjs_version="v0.17.6"
else
nwjs_version="v0.24.4"
fi
fi
nwjs="nwjs-sdk"
if [[ $os == "win64" ]]; then
nwjs_dirname=${nwjs}-${nwjs_version}-win-${arch}
else
nwjs_dirname=${nwjs}-${nwjs_version}-${os}-${arch}
fi
nwjs_filename=${nwjs_dirname}.${ext}
echo $nwjs_filename
......@@ -105,6 +105,7 @@ do case $Option in
esac
done
script_dir=$(dirname $0)
inst_dir=${inst_dir:-/usr/local}
# configure a light build if requested
......@@ -163,56 +164,9 @@ fi
# Fetch the nw.js binary if we haven't already. We want to fetch it even
# for building with no libs, so we do it regardless of the options
#echo nwjs-sdk-v0.16.0-`uname | tr '[:upper:]' '[:lower:]'`
if [ ! -d "../pd/nw/nw" ]; then
if [ `getconf LONG_BIT` -eq 32 ]; then
arch="ia32"
else
arch="x64"
fi
# for rpi
if [ `uname -m` == "armv7l" ]; then
arch="armv7l"
fi
# for pinebook, probably also rpi 4
if [ `uname -m` == "aarch64" ]; then
arch="armv7l"
fi
# MSYS: Pick the right architecture depending on whether we're
# running in the 32 or 64 bit version of the MSYS shell.
if [[ $os == "win" ]]; then
arch="ia32"
elif [[ $os == "win64" ]]; then
arch="x64"
fi
if [[ $os == "win" || $os == "win64" || $os == "osx" ]]; then
ext="zip"
else
ext="tar.gz"
fi
if [[ $osx_version == "10.8" ]]; then
# We need the lts version to be able to run on legacy systems.
nwjs_version="v0.14.7"
else
# temporary kluge for rpi-- only 0.15.1 is available atm
if [ $arch == "armv7l" ]; then
nwjs_version="v0.17.6"
else
nwjs_version="v0.24.4"
fi
fi
nwjs="nwjs-sdk"
if [[ $os == "win64" ]]; then
nwjs_dirname=${nwjs}-${nwjs_version}-win-${arch}
else
nwjs_dirname=${nwjs}-${nwjs_version}-${os}-${arch}
fi
nwjs_filename=${nwjs_dirname}.${ext}
nwjs_filename=$($script_dir/nwjs_version_for_platform.sh)
nwjs_version=$(echo $nwjs_filename | egrep -o 'v[^-]+')
nwjs_url=https://git.purrdata.net/jwilkes/nwjs-binaries/raw/master
nwjs_url=${nwjs_url}/$nwjs_filename
echo "Fetching the nwjs binary from"
......@@ -225,15 +179,17 @@ if [ ! -d "../pd/nw/nw" ]; then
fi
if [[ $os == "win" || $os == "win64" || $os == "osx" ]]; then
unzip $nwjs_filename
nwjs_dirname=$(basename --suffix=.zip $nwjs_filename)
else
tar -xf $nwjs_filename
nwjs_dirname=$(basename --suffix=.tar.gz $nwjs_filename)
fi
# Special case for arm binary's inconsistent directory name
# (It's not the same as the `uname -m` output)
if [ $arch == "armv7l" ]; then
if echo $nwjs_filename | grep -q armv7l ; then
nwjs_dirname=`echo $nwjs_dirname | sed 's/armv7l/arm/'`
fi
mv $nwjs_dirname ../pd/nw/nw
mv $nwjs_dirname ../pd/nw/nw
# make sure the nw binary is executable on GNU/Linux
if [[ $os != "win" && $dmg == 0 ]]; then
chmod 755 ../pd/nw/nw/nw
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment