diff options
author | Jan Holthuis <jan.holthuis@ruhr-uni-bochum.de> | 2020-11-25 02:29:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-25 02:29:44 +0100 |
commit | 2b1b0f92a43b1defc3d9af6dbbcf6fe5d8c75c18 (patch) | |
tree | 02899f410bf52c9182e4a923e99ec93f324c69e7 | |
parent | b4ba317815907c38488a273cfe8f419562b08a03 (diff) | |
parent | 1fc3ce92a94a4c798aaf030760b91328d9eb1e28 (diff) |
Merge pull request #3362 from Be-ing/macos_buildenv_script
macos_buildenv.sh script improvements
-rw-r--r-- | CMakeLists.txt | 4 | ||||
-rw-r--r-- | cmake/macos_build_environment | 2 | ||||
-rw-r--r-- | cmake/macos_build_environment_name | 1 | ||||
-rw-r--r-- | cmake/run-mixxx.sh.in | 2 | ||||
-rw-r--r-- | src/library/dao/playlistdao.cpp | 2 | ||||
-rwxr-xr-x | tools/macos_buildenv.sh | 107 |
6 files changed, 68 insertions, 50 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index fc51718306..4f7e16aabb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1083,10 +1083,6 @@ if (APPLE) MACOSX_BUNDLE true MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/cmake/macos_bundle.plist.in" ) - else() - get_filename_component(QT_PLUGIN_DIR "${Qt5_DIR}/../../../plugins/" ABSOLUTE) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-mixxx.sh.in" "${CMAKE_CURRENT_BINARY_DIR}/run-mixxx.sh" @ONLY) - execute_process(COMMAND chmod +x "${CMAKE_CURRENT_BINARY_DIR}/run-mixxx.sh") endif() else() include(InstallRequiredSystemLibraries) diff --git a/cmake/macos_build_environment b/cmake/macos_build_environment new file mode 100644 index 0000000000..f90fc303fb --- /dev/null +++ b/cmake/macos_build_environment @@ -0,0 +1,2 @@ +2.3-55d9a17-sdk10.15-macosminimum10.12-x86_64 +86c56d3aba24ec23923ad906f5a13084b0f784c955812448ecb43821fd907d50 diff --git a/cmake/macos_build_environment_name b/cmake/macos_build_environment_name deleted file mode 100644 index f2fe1851cf..0000000000 --- a/cmake/macos_build_environment_name +++ /dev/null @@ -1 +0,0 @@ -2.3-55d9a17-sdk10.15-macosminimum10.12-x86_64 diff --git a/cmake/run-mixxx.sh.in b/cmake/run-mixxx.sh.in deleted file mode 100644 index 4db8d96be5..0000000000 --- a/cmake/run-mixxx.sh.in +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -QT_QPA_PLATFORM_PLUGIN_PATH="@QT_PLUGIN_DIR@" "@CMAKE_CURRENT_BINARY_DIR@/mixxx" $@ diff --git a/src/library/dao/playlistdao.cpp b/src/library/dao/playlistdao.cpp index 5665b029a2..34e1368755 100644 --- a/src/library/dao/playlistdao.cpp +++ b/src/library/dao/playlistdao.cpp @@ -458,7 +458,7 @@ void PlaylistDAO::removeTrackFromPlaylist(int playlistId, int position) { void PlaylistDAO::removeTracksFromPlaylist(int playlistId, const QList<int>& positions) { // get positions in reversed order - QList sortedPositons = positions; + auto sortedPositons = positions; std::sort(sortedPositons.begin(), sortedPositons.end(), std::greater<int>()); //qDebug() << "PlaylistDAO::removeTrackFromPlaylist" diff --git a/tools/macos_buildenv.sh b/tools/macos_buildenv.sh index 8585e16177..bd7433f801 100755 --- a/tools/macos_buildenv.sh +++ b/tools/macos_buildenv.sh @@ -1,8 +1,14 @@ #!/bin/bash set -o pipefail +if [ -z "${GITHUB_ENV}" ] && ! $(return 0 2>/dev/null); then + echo "This script must be run by sourcing it:" + echo "source $0 $@" + exit 1 +fi + COMMAND=$1 -shift +shift 1 realpath() { OLDPWD="${PWD}" @@ -11,69 +17,86 @@ realpath() { cd "${OLDPWD}" || exit 1 } -MIXXX_ROOT="$(realpath "$(dirname "${BASH_SOURCE[0]}")/..")" +# some hackery is required to be compatible with both bash and zsh +THIS_SCRIPT_NAME=${BASH_SOURCE[0]} +[ -z "$THIS_SCRIPT_NAME" ] && THIS_SCRIPT_NAME=$0 -read_envname() { - cat "${MIXXX_ROOT}/cmake/macos_build_environment_name" -} +MIXXX_ROOT="$(realpath "$(dirname "$THIS_SCRIPT_NAME")/..")" + +read -d'\n' BUILDENV_NAME BUILDENV_SHA256 < "${MIXXX_ROOT}/cmake/macos_build_environment" [ -z "$BUILDENV_BASEPATH" ] && BUILDENV_BASEPATH="${MIXXX_ROOT}/buildenv" case "$COMMAND" in name) - envname="$(read_envname)" - echo "$envname" - if [ -n "${GITHUB_ENV}" ] - then + if [ -n "${GITHUB_ENV}" ]; then echo "BUILDENV_NAME=$envname" >> "${GITHUB_ENV}" + else + echo "$BUILDENV_NAME" fi ;; setup) - BUILDENV_NAME="$(read_envname)" - - if [[ "$BUILDENV_NAME" =~ .*macosminimum([0-9]*\.[0-9]*).* ]] - then - export MACOSX_DEPLOYMENT_TARGET="${BASH_REMATCH[1]}" + if [[ "$BUILDENV_NAME" =~ .*macosminimum([0-9]*\.[0-9]*).* ]]; then + # bash and zsh have different ways of getting the matched string + # zsh's BASH_REMATCH option is not actually compatible with bash + if [ -n "${BASH_REMATCH}" ]; then + export MACOSX_DEPLOYMENT_TARGET="${BASH_REMATCH[1]}" + elif [ -n "$match" ]; then + export MACOSX_DEPLOYMENT_TARGET="${match[1]}" + fi else - echo "Build environment did not match expected pattern. Check cmake/macos_build_environment_name file." >&2 - exit 1 + echo "Build environment did not match expected pattern. Check ${MIXXX_ROOT}/cmake/macos_build_environment file." >&2 + return fi BUILDENV_PATH="${BUILDENV_BASEPATH}/${BUILDENV_NAME}" mkdir -p "${BUILDENV_BASEPATH}" - if [ ! -d "${BUILDENV_PATH}" ] - then - curl "https://downloads.mixxx.org/builds/buildserver/2.3.x-unix/${BUILDENV_NAME}.tar.gz" -o "${BUILDENV_PATH}.tar.gz" - # TODO: verify download using sha256sum? - tar xf "${BUILDENV_PATH}.tar.gz" -C "${BUILDENV_BASEPATH}" - rm "${BUILDENV_PATH}.tar.gz" + if [ ! -d "${BUILDENV_PATH}" ]; then + if [ "$1" != "--profile" ]; then + echo "Build environment $BUILDENV_NAME not found in mixxx repository, downloading it..." + curl "https://downloads.mixxx.org/builds/buildserver/2.3.x-unix/${BUILDENV_NAME}.tar.gz" -o "${BUILDENV_PATH}.tar.gz" + OBSERVED_SHA256=$(shasum -a 256 "${BUILDENV_PATH}.tar.gz"|cut -f 1 -d' ') + if [[ $OBSERVED_SHA256 == $BUILDENV_SHA256 ]]; then + echo "Download matched expected SHA256 sum $BUILDENV_SHA256" + else + echo "ERROR: Download did not match expected SHA256 checksum!" + echo "Expected $BUILDENV_SHA256" + echo "Got $OBSERVED_SHA256" + exit 1 + fi + echo "" + echo "Extracting ${BUILDENV_NAME}.tar.gz..." + tar xf "${BUILDENV_PATH}.tar.gz" -C "${BUILDENV_BASEPATH}" && \ + echo "Successfully extracted ${BUILDENV_NAME}.tar.gz" + else + echo "Build environment $BUILDENV_NAME not found in mixxx repository, run the command below to download it." + echo "source ${THIS_SCRIPT_NAME} setup" + return # exit would quit the shell being started + fi + elif [ "$1" != "--profile" ]; then + echo "Build environment found: ${BUILDENV_PATH}" fi - echo "Using build environment: ${BUILDENV_PATH}" export CMAKE_PREFIX_PATH="${BUILDENV_PATH}" - export PATH="${BUILDENV_PATH}/bin:${PATH}" - export QT_PATH="$(find "${BUILDENV_PATH}" -type d -path "*/cmake/Qt5")" + export Qt5_DIR="$(find "${BUILDENV_PATH}" -type d -path "*/cmake/Qt5")" export QT_QPA_PLATFORM_PLUGIN_PATH="$(find "${BUILDENV_PATH}" -type d -path "*/plugins")" + export PATH="${BUILDENV_PATH}/bin:${PATH}" - echo "Environent Variables:" - echo "- PATH=${PATH}" - echo "- QT_QPA_PLATFORM_PLUGIN_PATH=${QT_QPA_PLATFORM_PLUGIN_PATH}" - echo "- MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET}" - echo "" - echo "CMake Configuration:" - echo "- CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}" - echo "- Qt5_DIR=${QT_PATH}" + echo_exported_variables() { + echo "MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET}" + echo "CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}" + echo "Qt5_DIR=${Qt5_DIR}" + echo "QT_QPA_PLATFORM_PLUGIN_PATH=${QT_QPA_PLATFORM_PLUGIN_PATH}" + echo "PATH=${PATH}" + } - if [ -n "${GITHUB_ENV}" ] - then - { - echo "MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET}" - echo "CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}" - echo "PATH=${PATH}" - echo "QT_PATH=${QT_PATH}" - echo "QT_QPA_PLATFORM_PLUGIN_PATH=${QT_QPA_PLATFORM_PLUGIN_PATH}" - } >> "${GITHUB_ENV}" + if [ -n "${GITHUB_ENV}" ]; then + echo_exported_variables >> "${GITHUB_ENV}" + elif [ "$1" != "--profile" ]; then + echo "" + echo "Exported environment variables:" + echo_exported_variables fi ;; esac |