Compile macOS using homebrew: Difference between revisions
No edit summary |
No edit summary |
||
(15 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Compile on macOS using homebrew | Compile on macOS using homebrew | ||
This guide is currently not maintained and might no longer work. | |||
Homebrew is generally unsuitable for building strawberry since its missing several gstreamer plugins, specific macdeployqt patches and specific Qt and gstreamer modifications and patches. | |||
Since Homebrew refuse enable certain gstreamer plugins and have been generally unwilling to accept patches, we can not give support for building strawberry with homebrew. This guide is provided as is, outdated and without any support. If you want access to the Wiki for editing, please e-mail us or contact us on the forum. | |||
If you want support, consider donating for getting access to the official signed binaries of strawberry. | |||
== Install xcode tools and brew package manager == | |||
xcode-select --install | |||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | |||
== Install dependencies through brew == | |||
brew install pkg-config cmake ninja meson bison flex wget create-dmg gettext boost protobuf protobuf-c | |||
brew install glib glib-openssl glib-networking gdk-pixbuf gobject-introspection orc | |||
brew install libffi openssl sqlite fftw libmtp libplist libxml2 libsoup | |||
brew install libogg libvorbis flac wavpack opus speex mpg123 lame twolame taglib chromaprint libebur128 libbs2b libcdio libopenmpt faad2 faac fdk-aac musepack game-music-emu | |||
brew install qt6 gstreamer | |||
== Set environment variables == | == Set environment variables == | ||
export GIO_EXTRA_MODULES=$(brew --prefix)/lib/gio/modules | |||
export GST_PLUGIN_SCANNER=$(brew --prefix)/opt/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner | |||
export GIO_EXTRA_MODULES= | export GST_PLUGIN_PATH=$(brew --prefix)/lib/gstreamer-1.0 | ||
export GST_PLUGIN_SCANNER= | |||
export GST_PLUGIN_PATH= | |||
== Prepare build == | == Prepare build == | ||
Line 53: | Line 33: | ||
mkdir -p ~/build | mkdir -p ~/build | ||
cd ~/build | cd ~/build | ||
git clone https://github.com/strawberrymusicplayer/strawberry | git clone --recursive https://github.com/strawberrymusicplayer/strawberry | ||
cd strawberry | cd strawberry | ||
mkdir build | mkdir build | ||
Line 62: | Line 42: | ||
== Configure build == | == Configure build == | ||
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$(brew --prefix)/opt/qt6/lib/cmake -DBUILD_WITH_QT6=ON -DUSE_BUNDLE=ON -DENABLE_SPARKLE=OFF -DICU_ROOT=$(brew --prefix)/opt/icu4c -DPROTOBUF_INCLUDE_DIRS=$(brew --prefix)/include -DENABLE_DBUS=OFF | |||
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH= | |||
== Build == | == Build == | ||
make -j | make -j 4 | ||
make install | make install | ||
== Remove problematic unneeded plugins == | == Remove problematic unneeded plugins == | ||
sudo rm -rf | sudo rm -rf $(brew --prefix)/opt/qt6/share/qt/plugins/virtualkeyboard $(brew --prefix)/opt/qt6/share/qt/plugins/platforminputcontexts | ||
sudo rm -f | sudo rm -f $(brew --prefix)/Cellar/qt/*/share/qt/plugins/imageformats/libqpdf.dylib | ||
== Manually copy files == | == Manually copy files == | ||
Line 85: | Line 60: | ||
mkdir -p strawberry.app/Contents/Frameworks | mkdir -p strawberry.app/Contents/Frameworks | ||
cp | cp $(brew --prefix)/lib/libsoup-3.0.0.dylib strawberry.app/Contents/Frameworks/ | ||
== Deploy == | == Deploy == | ||
make deploy | make deploy | ||
== Deploy check == | |||
Checks that all libraries are deployed correctly. | |||
make deploycheck | |||
== Create DMG == | == Create DMG == |
Revision as of 23:30, 28 July 2024
Compile on macOS using homebrew
This guide is currently not maintained and might no longer work.
Homebrew is generally unsuitable for building strawberry since its missing several gstreamer plugins, specific macdeployqt patches and specific Qt and gstreamer modifications and patches.
Since Homebrew refuse enable certain gstreamer plugins and have been generally unwilling to accept patches, we can not give support for building strawberry with homebrew. This guide is provided as is, outdated and without any support. If you want access to the Wiki for editing, please e-mail us or contact us on the forum.
If you want support, consider donating for getting access to the official signed binaries of strawberry.
Install xcode tools and brew package manager
xcode-select --install /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Install dependencies through brew
brew install pkg-config cmake ninja meson bison flex wget create-dmg gettext boost protobuf protobuf-c brew install glib glib-openssl glib-networking gdk-pixbuf gobject-introspection orc brew install libffi openssl sqlite fftw libmtp libplist libxml2 libsoup brew install libogg libvorbis flac wavpack opus speex mpg123 lame twolame taglib chromaprint libebur128 libbs2b libcdio libopenmpt faad2 faac fdk-aac musepack game-music-emu brew install qt6 gstreamer
Set environment variables
export GIO_EXTRA_MODULES=$(brew --prefix)/lib/gio/modules export GST_PLUGIN_SCANNER=$(brew --prefix)/opt/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner export GST_PLUGIN_PATH=$(brew --prefix)/lib/gstreamer-1.0
Prepare build
mkdir -p ~/build cd ~/build git clone --recursive 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
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$(brew --prefix)/opt/qt6/lib/cmake -DBUILD_WITH_QT6=ON -DUSE_BUNDLE=ON -DENABLE_SPARKLE=OFF -DICU_ROOT=$(brew --prefix)/opt/icu4c -DPROTOBUF_INCLUDE_DIRS=$(brew --prefix)/include -DENABLE_DBUS=OFF
Build
make -j 4 make install
Remove problematic unneeded plugins
sudo rm -rf $(brew --prefix)/opt/qt6/share/qt/plugins/virtualkeyboard $(brew --prefix)/opt/qt6/share/qt/plugins/platforminputcontexts sudo rm -f $(brew --prefix)/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 $(brew --prefix)/lib/libsoup-3.0.0.dylib strawberry.app/Contents/Frameworks/
Deploy
make deploy
Deploy check
Checks that all libraries are deployed correctly.
make deploycheck
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/