Files
OpenRGB/scripts/build-macos.sh

86 lines
4.4 KiB
Bash
Executable File

#!/usr/bin/env bash
#-----------------------------------------------------------------------#
# OpenRGB MacOS Build Script #
#-----------------------------------------------------------------------#
#-----------------------------------------------------------------------#
# Setup environment #
#-----------------------------------------------------------------------#
export APPIMAGE_EXTRACT_AND_RUN=1
if [ "$1" = "qt6" ] && [ "$2" = "arm" ]; then
export ARCH=""
export BREW_PATH=/opt/homebrew
export QT_PATH=bin
elif [ "$1" = "qt6" ] && [ "$2" = "intel" ]; then
export ARCH="arch -x86_64"
export BREW_PATH=/usr/local
export QT_PATH=bin
elif [ "$1" = "qt5" ] && [ "$2" = "arm" ]; then
export ARCH=""
export BREW_PATH=/opt/homebrew
export QT_PATH=opt/qt@5/bin
elif [ "$1" = "qt5" ] && [ "$2" = "intel" ]; then
export ARCH="arch -x86_64"
export BREW_PATH=/usr/local
export QT_PATH=opt/qt@5/bin
else
echo "Invalid arguments, specify qt5 or qt6 and arm or intel"
echo "Example: ./build-macos.sh qt6 arm"
fi
#-----------------------------------------------------------------------#
# Build OpenRGB #
#-----------------------------------------------------------------------#
eval $($BREW_PATH/bin/brew shellenv)
$ARCH $BREW_PATH/$QT_PATH/qmake OpenRGB.pro
$ARCH make -j$(sysctl -n hw.ncpu)
#-----------------------------------------------------------------------#
# Pre-deploy quirks for Qt5 builds #
# * Manually deploy libsharpyuv.0.dylib as macdeployqt fails to do it #
# automatically #
# * Manually deploy QtOpenGL framework used by the Effects plugin #
#-----------------------------------------------------------------------#
if [ "$1" = "qt5" ]; then
mkdir -p OpenRGB.app/Contents/Frameworks
cp $BREW_PATH/lib/libsharpyuv.0.dylib OpenRGB.app/Contents/Frameworks
install_name_tool -change @rpath/libsharpyuv.0.dylib @executable_path/../Frameworks/libsharpyuv.0.dylib OpenRGB.app/Contents/MacOS/OpenRGB
cp -R $BREW_PATH/opt/qt@5/lib/QtOpenGL.framework OpenRGB.app/Contents/Frameworks
install_name_tool -change $BREW_PATH/opt/qt@5/lib/QtOpenGL.framework/Versions/5/QtOpenGL @executable_path/../Frameworks/QtOpenGL.framework/Versions/5/QtOpenGL OpenRGB.app/Contents/MacOS/OpenRGB
fi
#-----------------------------------------------------------------------#
# Pre-deploy quirks for Qt6 builds #
# * Manually deploy QtOpenGL framework used by the Effects plugin #
# * Manually deploy QtCore5Compat framework used by the Effects #
# plugin #
#-----------------------------------------------------------------------#
if [ "$1" = "qt6" ]; then
mkdir -p OpenRGB.app/Contents/Frameworks
cp -R $BREW_PATH/opt/qtbase/lib/QtOpenGL.framework OpenRGB.app/Contents/Frameworks
install_name_tool -change $BREW_PATH/opt/qtbase/lib/QtOpenGL.framework/Versions/A/QtOpenGL @executable_path/../Frameworks/QtOpenGL.framework/Versions/A/QtOpenGL OpenRGB.app/Contents/MacOS/OpenRGB
cp -R $BREW_PATH/opt/qt5compat/lib/QtCore5Compat.framework OpenRGB.app/Contents/Frameworks
install_name_tool -change $BREW_PATH/opt/qt5compat/lib/QtCore5Compat.framework/Versions/A/QtCore5Compat @executable_path/../Frameworks/QtCore5Compat.framework/Versions/A/QtCore5Compat OpenRGB.app/Contents/MacOS/OpenRGB
fi
#-----------------------------------------------------------------------#
# Run macdeploy to automatically deploy frameworks and sign the code #
#-----------------------------------------------------------------------#
$ARCH $BREW_PATH/$QT_PATH/macdeployqt OpenRGB.app -codesign=OpenRGB
#-----------------------------------------------------------------------#
# Post-deploy quirks for Qt6 builds #
# * Run macdeploy again so that it deploys frameworks for default Qt #
# plugins, as it deploys the plugins without their dependent #
# frameworks the first time #
#-----------------------------------------------------------------------#
if [ "$1" = "qt6" ]; then
$ARCH $BREW_PATH/$QT_PATH/macdeployqt OpenRGB.app -codesign=OpenRGB
fi