Compile macOS using homebrew: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 9: | Line 9: | ||
== Install dependencies through brew == | == Install dependencies through brew == | ||
brew install pkg-config cmake ninja meson bison flex wget create-dmg gettext boost protobuf protobuf-c | brew install pkg-config cmake ninja meson bison flex wget create-dmg gettext boost protobuf protobuf-c ccache | ||
brew install glib glib-openssl glib-utils glib-networking gdk-pixbuf gobject-introspection orc | brew install glib glib-openssl glib-utils glib-networking gdk-pixbuf gobject-introspection orc | ||
brew install libffi openssl gnutls sqlite fftw libmtp libplist libsoup libxml2 | brew install libffi openssl gnutls sqlite fftw libmtp libplist libsoup libxml2 |
Revision as of 22:13, 29 September 2022
Compile on macOS using homebrew
Install xcode tools and brew package manager
xcode-select --install /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Install dependencies through brew
brew install pkg-config cmake ninja meson bison flex wget create-dmg gettext boost protobuf protobuf-c ccache brew install glib glib-openssl glib-utils glib-networking gdk-pixbuf gobject-introspection orc brew install libffi openssl gnutls sqlite fftw libmtp libplist libsoup libxml2 brew install libogg libvorbis flac wavpack opus speex mpg123 lame twolame taglib chromaprint libbs2b libcdio libopenmpt faad2 faac fdk-aac musepack game-music-emu brew install qt6
Homebrew is missing several gstreamer plugins, so we build gstreamer from source.
wget https://files.strawberrymusicplayer.org/patches/gstreamer.rb wget https://files.strawberrymusicplayer.org/patches/gst-plugins-base.rb wget https://files.strawberrymusicplayer.org/patches/gst-plugins-good.rb wget https://files.strawberrymusicplayer.org/patches/gst-plugins-bad.rb wget https://files.strawberrymusicplayer.org/patches/gst-plugins-ugly.rb wget https://files.strawberrymusicplayer.org/patches/gst-libav.rb mv gstreamer.rb gst-plugins-{base,good,bad,ugly}.rb gst-libav.rb /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/
brew install --build-from-source gstreamer brew install --build-from-source gst-plugins-base brew install --build-from-source gst-plugins-good brew install --build-from-source gst-plugins-bad brew install --build-from-source gst-plugins-ugly brew install --build-from-source gst-libav
Set environment variables
for Intel x86_64:
export GIO_EXTRA_MODULES=/usr/local/lib/gio/modules export GST_PLUGIN_SCANNER=/usr/local/opt/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0
for Apple Silicon:
export GIO_EXTRA_MODULES=/opt/homebrew/lib/gio/modules export GST_PLUGIN_SCANNER=/opt/homebrew/opt/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner export GST_PLUGIN_PATH=/opt/homebrew/lib/gstreamer-1.0
Prepare build
mkdir -p ~/build cd ~/build git clone https://github.com/strawberrymusicplayer/strawberry cd strawberry mkdir build cd build
(If you already did `git clone`, do `git pull` to make sure you have the latest code).
Configure build
for Intel x86_64:
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/usr/local/opt/qt6/lib/cmake -DBUILD_WITH_QT6=ON -DUSE_BUNDLE=ON -DENABLE_SPARKLE=OFF -DICU_ROOT=/usr/local/opt/icu4c
for Apple Silicon:
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/homebrew/opt/qt6/lib/cmake -DBUILD_WITH_QT6=ON -DUSE_BUNDLE=ON -DENABLE_SPARKLE=OFF -DICU_ROOT=/usr/local/opt/icu4c
Build
make -j$(nproc) make install
Remove problematic unneeded plugins
sudo rm -rf /usr/local/opt/qt6/share/qt/plugins/virtualkeyboard /usr/local/opt/qt6/share/qt/plugins/platforminputcontexts sudo rm -f /usr/local/Cellar/qt/*/share/qt/plugins/imageformats/libqpdf.dylib
Manually copy files
You need to manually copy libsoup-3.0.0.dylib, as this library needs to be loaded by gstreamer at runtime:
mkdir -p strawberry.app/Contents/Frameworks cp /usr/local/lib/libsoup-3.0.0.dylib strawberry.app/Contents/Frameworks/
Deploy
make deploy
Create DMG
make dmg
Install
To install, either open the DMG, drag Strawberry over to Applications, or manually copy the strawberry.app folder over to /Applications/