#!/bin/bash set -e cd $(dirname ${0}) # --------------------------------------------------------------------------------------------------------------------- target="${1}" if [ -z "${target}" ]; then echo "usage: ${0} " exit 1 fi # --------------------------------------------------------------------------------------------------------------------- # check build step PAWPAW_DIR="${HOME}/PawPawBuilds" PAWPAW_BUILDDIR="${PAWPAW_DIR}/builds/${TARGET}" if [ -e ${PAWPAW_BUILDDIR}/.last-bootstrap-version ]; then LAST_BOOTSTRAP_VERSION=$(cat ${PAWPAW_BUILDDIR}/.last-bootstrap-version) else LAST_BOOTSTRAP_VERSION=0 fi if [ ${LAST_BOOTSTRAP_VERSION} -eq ${BOOTSTRAP_VERSION} ] && [ -e ${PAWPAW_BUILDDIR}/.last-build-version ]; then LAST_BUILD_VERSION=$(cat ${PAWPAW_BUILDDIR}/.last-build-version) else LAST_BUILD_VERSION=0 fi BUILD_VERSION=$((${LAST_BUILD_VERSION} + 1)) mkdir -p ${PAWPAW_BUILDDIR} echo ${BOOTSTRAP_VERSION} > ${PAWPAW_BUILDDIR}/.last-bootstrap-version echo ${BUILD_VERSION} > ${PAWPAW_BUILDDIR}/.last-build-version echo "Carla-Releases build v${BUILD_VERSION}" # --------------------------------------------------------------------------------------------------------------------- # build dependencies according to version/step, caching files along the way if [ ${BUILD_VERSION} -eq 1 ]; then ${TRAVIS_BUILD_DIR}/PawPaw/bootstrap-plugins.sh ${TARGET} ${TRAVIS_BUILD_DIR}/PawPaw/.cleanup.sh ${TARGET} exit 0 fi if [ ${BUILD_VERSION} -eq 2 ]; then # qt build takes too long on macos-universal target, download and use premade builds if [ "${TARGET}" = "macos-universal" ]; then CROSS_COMPILING=0 MACOS=1 MACOS_OLD=0 MACOS_UNIVERSAL=1 WIN32=0 source "${TRAVIS_BUILD_DIR}/PawPaw/setup/versions.sh" mkdir -p "${PAWPAW_BUILDDIR}/qtbase-everywhere-src-${QT5_VERSION}" touch "${PAWPAW_BUILDDIR}/qtbase-everywhere-src-${QT5_VERSION}/.stamp_configured" touch "${PAWPAW_BUILDDIR}/qtbase-everywhere-src-${QT5_VERSION}/.stamp_built" touch "${PAWPAW_BUILDDIR}/qtbase-everywhere-src-${QT5_VERSION}/.stamp_installed" touch "${PAWPAW_BUILDDIR}/qtbase-everywhere-src-${QT5_VERSION}/.stamp_applied_01_force-10.12-universal-build.patch" mkdir -p "${PAWPAW_BUILDDIR}/qtmacextras-everywhere-src-${QT5_VERSION}" touch "${PAWPAW_BUILDDIR}/qtmacextras-everywhere-src-${QT5_VERSION}/.stamp_configured" touch "${PAWPAW_BUILDDIR}/qtmacextras-everywhere-src-${QT5_VERSION}/.stamp_built" touch "${PAWPAW_BUILDDIR}/qtmacextras-everywhere-src-${QT5_VERSION}/.stamp_installed" mkdir -p "${PAWPAW_BUILDDIR}/qtsvg-everywhere-src-${QT5_VERSION}" touch "${PAWPAW_BUILDDIR}/qtsvg-everywhere-src-${QT5_VERSION}/.stamp_configured" touch "${PAWPAW_BUILDDIR}/qtsvg-everywhere-src-${QT5_VERSION}/.stamp_built" touch "${PAWPAW_BUILDDIR}/qtsvg-everywhere-src-${QT5_VERSION}/.stamp_installed" mkdir -p "${PAWPAW_BUILDDIR}/qttools-everywhere-src-${QT5_VERSION}" touch "${PAWPAW_BUILDDIR}/qttools-everywhere-src-${QT5_VERSION}/.stamp_configured" touch "${PAWPAW_BUILDDIR}/qttools-everywhere-src-${QT5_VERSION}/.stamp_built" touch "${PAWPAW_BUILDDIR}/qttools-everywhere-src-${QT5_VERSION}/.stamp_installed" pushd "${PAWPAW_DIR}/targets" curl -L "https://falktx.com/data/pawpaw-qt-macos-universal.tar.xz" -o "pawpaw-qt-macos-universal.tar.xz" --fail tar xvf pawpaw-qt-macos-universal.tar.xz popd fi ${TRAVIS_BUILD_DIR}/PawPaw/bootstrap-qt.sh ${TARGET} ${TRAVIS_BUILD_DIR}/PawPaw/.cleanup.sh ${TARGET} exit 0 fi ${TRAVIS_BUILD_DIR}/PawPaw/bootstrap-carla.sh ${TARGET} ${TRAVIS_BUILD_DIR}/PawPaw/.cleanup.sh ${TARGET} if [ ${BUILD_VERSION} -eq 3 ]; then exit 0 fi # --------------------------------------------------------------------------------------------------------------------- # import PawPaw environment pushd PawPaw source local.env ${target} popd # --------------------------------------------------------------------------------------------------------------------- # build and package carla pushd Carla make features make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS} if [ "${MACOS}" -eq 1 ] && [ "${MACOS_UNIVERSAL}" -eq 0 ]; then make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS} posix32 elif [ "${WIN64}" -eq 1 ]; then make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS} win32r fi make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} -j 1 popd # ---------------------------------------------------------------------------------------------------------------------