summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt4
-rw-r--r--cmake/macos_build_environment2
-rw-r--r--cmake/macos_build_environment_name1
-rw-r--r--cmake/run-mixxx.sh.in2
-rw-r--r--src/library/dao/playlistdao.cpp2
-rwxr-xr-xtools/macos_buildenv.sh107
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