diff --git a/scripts/dev/download_libs.sh b/scripts/dev/download_libs.sh index 819ab891c23..2510241d1b5 100755 --- a/scripts/dev/download_libs.sh +++ b/scripts/dev/download_libs.sh @@ -154,17 +154,27 @@ EOF ARCH=clang64 fi fi -fi -if [ "$PLATFORM" == "linux" ] && [ "$ARCH" == "64" ]; then - ARCH=64gcc6 + if [ "$PLATFORM" == "osx" ]; then + ARCH=x86_64 + fi fi + SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd "$SCRIPT_DIR" if [[ $BLEEDING_EDGE = 1 ]] ; then -VER=bleeding + VER=bleeding +fi + + +if [ "$PLATFORM" == "linux" ] && [ "$ARCH" == "64" ]; then + if [[ $BLEEDING_EDGE = 1 ]] ; then + ARCH=64_gcc6 + else + ARCH=64gcc6 + fi fi if [ "$PLATFORM" == "msys2" ]; then @@ -179,12 +189,12 @@ elif [ "$PLATFORM" == "vs" ]; then openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_2.zip \ openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_3.zip \ openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_4.zip" -elif [ "$ARCH" == "" ] && [[ "$PLATFORM" == "osx" || "$PLATFORM" == "ios" || "$PLATFORM" == "tvos" ]]; then +elif [[ "$PLATFORM" == "osx" || "$PLATFORM" == "ios" || "$PLATFORM" == "tvos" ]]; then if [[ $BLEEDING_EDGE = 1 ]] ; then - PKGS="openFrameworksLibs_${VER}_${PLATFORM}_1.tar.bz2 \ - openFrameworksLibs_${VER}_${PLATFORM}_2.tar.bz2 \ - openFrameworksLibs_${VER}_${PLATFORM}_3.tar.bz2 \ - openFrameworksLibs_${VER}_${PLATFORM}_4.tar.bz2" + PKGS="openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_1.tar.bz2 \ + openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_2.tar.bz2 \ + openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_3.tar.bz2 \ + openFrameworksLibs_${VER}_${PLATFORM}_${ARCH}_4.tar.bz2" else PKGS="openFrameworksLibs_${VER}_${PLATFORM}1.tar.bz2 \ openFrameworksLibs_${VER}_${PLATFORM}2.tar.bz2 \ diff --git a/scripts/dev/download_pg.sh b/scripts/dev/download_pg.sh new file mode 100755 index 00000000000..dfde89383cf --- /dev/null +++ b/scripts/dev/download_pg.sh @@ -0,0 +1,220 @@ +#!/usr/bin/env bash +set -e +VER=master +PLATFORM="" +ARCH="" +OVERWRITE=1 +SILENT_ARGS="" +BLEEDING_EDGE=0 + +printHelp(){ +cat << EOF + Usage: download_pg.sh [OPTIONS] + + Options: + + -v, --version VERSION OF version to download the libraries for. Defaults to master + -p, --platform PLATFORM Platorm among: android, emscritpen, ios, linux, linux64, linuxarmv6l, linuxarmv7l, msys2, osx, tvos, vs + If not specified tries to autodetect the platform + -s, --silent Silent download progress + -h, --help Shows this message +EOF +} + +SCRIPT_DIR="${BASH_SOURCE%/*}" +if [[ ! -d "$SCRIPT_DIR" ]]; then SCRIPT_DIR="$PWD"; fi +. "$SCRIPT_DIR/downloader.sh" + +download(){ + echo "Downloading $1" + + if [[ $BLEEDING_EDGE = 1 ]] ; then + echo downloader https://github.com/openframeworks/projectGenerator/releases/download/bleeding/$1 $SILENT_ARGS + downloader https://github.com/openframeworks/projectGenerator/releases/download/bleeding/$1 $SILENT_ARGS + else + echo downloader https://github.com/openframeworks/projectGenerator/releases/download/nightly/$1 + downloader https://github.com/openframeworks/projectGenerator/releases/download/nightly/$1 + fi +} + +# trap any script errors and exit +trap 'trapError ${LINENO}' ERR +trap "trapError" SIGINT SIGTERM + +trapError() { + local parent_lineno="$1" + if [[ "$#" = "3" ]] ; then + local message="$2" + local code="${3:-1}" + echo "Error on or near line ${parent_lineno}: ${message}; exiting with status ${code}" + else + local code="${2:-1}" + echo "Error on or near line ${parent_lineno}; exiting with status ${code}" + fi + + if [ -e openFrameworksLibs* ]; then + echo "removing packages" + rm openFrameworksLibs* + fi + exit "${code}" +} + + +while [[ $# -gt 0 ]]; do + key="$1" + case $key in + -v|--version) + VER="$2" + shift # past argument + ;; + -p|--platform) + PLATFORM="$2" + shift # past argument + ;; + -a|--arch) + ARCH="$2" + shift # past argument + ;; + -n|--no-overwrite) + OVERWRITE=0 + ;; + -b|--bleeding-edge) + BLEEDING_EDGE=1 + ;; + -s|--silent) + SILENT_ARGS=-nv + ;; + -h|--help) + printHelp + exit 0 + ;; + *) + echo "Error: invalid argument: $key" + printHelp + exit 1 + ;; + esac + shift # past argument or value +done + +if [ "$PLATFORM" == "" ]; then + OS=$(uname) + if [ "$OS" == "Linux" ]; then + PLATFORM="linux" + elif [ "$OS" == "Darwin" ]; then + PLATFORM="osx" + elif [ "${OS:0:5}" == "MINGW" ]; then + PLATFORM="msys2" + else + # otherwise we are on windows and will download vs + PLATFORM="vs" + fi +fi + +if [ "$ARCH" == "" ]; then + if [ "$PLATFORM" == "linux" ]; then + ARCH=$(uname -m) + if [ "$ARCH" == "x86_64" ]; then + GCC_VERSION=$(gcc -dumpversion | cut -f1 -d.) + if [ $GCC_VERSION -eq 4 ]; then + ARCH=64gcc6 + elif [ $GCC_VERSION -eq 5 ]; then + ARCH=64gcc6 + else + ARCH=64gcc6 + fi + elif [ "$ARCH" == "armv7l" ]; then + # Check for Raspberry Pi + if [ -f /opt/vc/include/bcm_host.h ]; then + ARCH=armv6l + fi + elif [ "$ARCH" == "i686" ] || [ "$ARCH" == "i386" ]; then + cat << EOF +32bit linux is not officially supported anymore but compiling +the libraries using the build script in apothecary/scripts +should compile all the dependencies without problem +EOF + exit 1 + fi + elif [ "$PLATFORM" == "msys2" ]; then + if [ "$MSYSTEM" == "MINGW64" ]; then + ARCH=mingw64 + elif [ "$MSYSTEM" == "MINGW32" ]; then + ARCH=mingw32 + elif [ "$MSYSTEM" == "UCRT64" ]; then + ARCH=ucrt64 + elif [ "$MSYSTEM" == "CLANG64" ]; then + ARCH=clang64 + fi + fi + + if [ "$PLATFORM" == "osx" ]; then + ARCH=x86_64 + fi +fi + + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd "$SCRIPT_DIR" + +OUTDIR=../../ + + +if [[ $BLEEDING_EDGE = 1 ]] ; then + VER=bleeding +fi + +if [ "$PLATFORM" == "vs" ]; then + EXT=".exe" +else + EXT=".app" +fi +OUTPUT=projectGenerator-$PLATFORM +if [ "$PLATFORM" == "msys2" ] || [ "$PLATFORM" == "vs" ]; then + GUI="-gui" +else + GUI="" +fi +PKG="projectGenerator-${PLATFORM}${GUI}.zip" +download $PKG + +echo "Uncompressing Project Generator for $PLATFORM from $PKG" +if [ "$PLATFORM" == "msys2" ] || [ "$PLATFORM" == "vs" ]; then + unzip -q "$PKG" -d "$OUTPUT" + rm $PKG +else + tar xjf "$PKG" + rm $PKG +fi + +if [ -d "${OUTDIR}/${OUTPUT}" ] || [ -f "${OUTDIR}/${OUTPUT}" ]; then + rm -rf "${OUTDIR}/${OUTPUT}" +fi + +if [ "$PLATFORM" == "msys2" ] || [ "$PLATFORM" == "vs" ]; then + + if ! command -v rsync &> /dev/null + then + cp -ar ${OUTPUT}/ ${OUTDIR}/${OUTPUT} + else + rsync -a ${OUTPUT}/ ${OUTDIR}/${OUTPUT} + fi + rm -rf $OUTPUT +else + if ! command -v rsync &> /dev/null + then + cp -ar $OUTPUT/projectGenerator$EXT $OUTDIR/ + else + rsync -a $OUTPUT/projectGenerator$EXT $OUTDIR + fi + rm -rf $OUTPUT/projectGenerator$EXT + +fi + +rm -rf $OUTPUT +rm -rf $PKG + +echo "Completed projectGenerator in place" + + + diff --git a/scripts/osx/download_latest_libs.sh b/scripts/osx/download_latest_libs.sh new file mode 100755 index 00000000000..61fbbb6aed3 --- /dev/null +++ b/scripts/osx/download_latest_libs.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd $SCRIPT_DIR +cd $SCRIPT_DIR +if [ ! -z ${BITS+x} ]; then + ../dev/download_libs.sh -p osx -b -a $BITS $@ +else + ../dev/download_libs.sh -p osx -b -a x86_64 $@ + ../dev/download_libs.sh -p osx -b -a arm64 -n $@ +fi diff --git a/scripts/osx/download_libs.sh b/scripts/osx/download_libs.sh index 5e922201149..c170bcdbda5 100755 --- a/scripts/osx/download_libs.sh +++ b/scripts/osx/download_libs.sh @@ -1,4 +1,9 @@ #!/usr/bin/env bash SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd $SCRIPT_DIR -../dev/download_libs.sh -p osx -n $@ +cd $SCRIPT_DIR +if [ ! -z ${BITS+x} ]; then + ../dev/download_libs.sh -p osx -a $BITS $@ +else + ../dev/download_libs.sh -p osx $@ +fi diff --git a/scripts/osx/download_projectGenerator.sh b/scripts/osx/download_projectGenerator.sh new file mode 100755 index 00000000000..8f6125f5ab3 --- /dev/null +++ b/scripts/osx/download_projectGenerator.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd $SCRIPT_DIR +if [ ! -z ${BITS+x} ]; then + ../dev/download_pg.sh -p osx -a $BITS -n $@ +else + ../dev/download_pg.sh -p osx $@ +fi diff --git a/scripts/vs/download_latest_libs.sh b/scripts/vs/download_latest_libs.sh new file mode 100755 index 00000000000..e4d3b1a4f90 --- /dev/null +++ b/scripts/vs/download_latest_libs.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd $SCRIPT_DIR +cd $SCRIPT_DIR +if [ ! -z ${BITS+x} ]; then + ../dev/download_libs.sh -p vs -b -a $BITS $@ +else + ../dev/download_libs.sh -p vs -b -a 64 $@ + ../dev/download_libs.sh -p vs -b -a arm64 -n $@ + ../dev/download_libs.sh -p vs -b -a arm64ec -n $@ +fi diff --git a/scripts/vs/download_projectGenerator.sh b/scripts/vs/download_projectGenerator.sh new file mode 100755 index 00000000000..d632963a8cf --- /dev/null +++ b/scripts/vs/download_projectGenerator.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd $SCRIPT_DIR +if [ ! -z ${BITS+x} ]; then + ../dev/download_pg.sh -p vs -a $BITS -n $@ +else + ../dev/download_pg.sh -p vs $@ +fi