diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1cd810800092b80c4ef0ebea344d589ac6d54e9c..b926e54428453811f51861729081e19326b460dd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,14 +1,7 @@ # This file creates automated tests on GitLab CI for Purr Data. # See https://docs.gitlab.com/ee/ci/yaml/README.html for details of the format. -cache: - key: global-cache - # These are script snippets used in the jobs defined below. -.fetch_nwjs: &fetch_nwjs - - nwjs_filename=$(l2ork_addons/nwjs_version_for_platform.sh) - - if [ -e /cache/$nwjs_filename ]; then cp /cache/$nwjs_filename ./l2ork_addons ; fi - .debian_image_preparation: &debian_image_preparation - echo "" | sudo -S apt-get -qq purge -y pd-l2ork > /dev/null || echo "couldn't purge..." - echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y update > /dev/null @@ -19,7 +12,6 @@ cache: - cd l2ork_addons - export V=0 - ./tar_em_up.sh $BUILD_TYPE_FLAG - - cp nwjs-* /cache/ - cd .. - echo -e "section_end:`date +%s`:build_all\r\e[0K" @@ -54,7 +46,6 @@ debian_stretch_x86_64_deb: BUILD_TYPE_FLAG: -B before_script: - *debian_image_preparation - - *fetch_nwjs script: - *build_all - *test_linux @@ -73,7 +64,6 @@ ubuntu_16.04_x86_64_deb: BUILD_TYPE_FLAG: -B before_script: - *debian_image_preparation - - *fetch_nwjs script: - *build_all - *test_linux @@ -90,8 +80,6 @@ osx_10.11_x86_64_dmg: - dmg variables: BUILD_TYPE_FLAG: -X - before_script: - - *fetch_nwjs script: - echo `pwd` - *build_all @@ -109,8 +97,6 @@ osx_10.8_x86_64_dmg: - dmg variables: BUILD_TYPE_FLAG: -X - before_script: - - *fetch_nwjs script: - echo `pwd` - *build_all @@ -127,8 +113,6 @@ windows_i386_innosetup: - i386 variables: BUILD_TYPE_FLAG: -Z - before_script: - - *fetch_nwjs script: - echo `pwd` - *build_all @@ -148,7 +132,6 @@ raspbian_stretch_armv7l_deb: BUILD_TYPE_FLAG: -r before_script: - *debian_image_preparation - - *fetch_nwjs script: - echo `pwd` - *build_all diff --git a/l2ork_addons/nwjs_version_for_platform.sh b/l2ork_addons/nwjs_version_for_platform.sh deleted file mode 100755 index 285618f192079616314a496d2a0f4718e37d5d5a..0000000000000000000000000000000000000000 --- a/l2ork_addons/nwjs_version_for_platform.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/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 diff --git a/l2ork_addons/tar_em_up.sh b/l2ork_addons/tar_em_up.sh index 79e957a972995373c26247d3289e429c7b5dbb56..25d82f2d45051083373db30ca5e3f8b5fc7e4dfb 100755 --- a/l2ork_addons/tar_em_up.sh +++ b/l2ork_addons/tar_em_up.sh @@ -105,7 +105,6 @@ do case $Option in esac done -script_dir=$(dirname $0) inst_dir=${inst_dir:-/usr/local} # configure a light build if requested @@ -164,42 +163,82 @@ 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 - nwjs_filename=$($script_dir/nwjs_version_for_platform.sh) + 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 - if [ -e "./$nwjs_filename" ]; then - echo "Found $nwjs_filename" + # 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 - 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" - echo "$nwjs_url" - if ! wget -nv $nwjs_url; then - nwjs_url=https://dl.nwjs.io/${nwjs_version}/$nwjs_filename - echo "Fetching the nwjs binary from" - echo "$nwjs_url" - wget -nv $nwjs_url + 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_url=https://git.purrdata.net/jwilkes/nwjs-binaries/raw/master + nwjs_url=${nwjs_url}/$nwjs_filename + echo "Fetching the nwjs binary from" + echo "$nwjs_url" + if ! wget -nv $nwjs_url; then + nwjs_url=https://dl.nwjs.io/${nwjs_version}/$nwjs_filename + echo "Fetching the nwjs binary from" + echo "$nwjs_url" + wget -nv $nwjs_url + 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 echo $nwjs_filename | grep -q armv7l ; then + if [ $arch == "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 fi + rm $nwjs_filename fi # For Windows, fetch the ASIO SDK if we don't have it already