Build macOS: Difference between revisions

From Strawberry Music Player Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
Building on macOS
Building on macOS
This guide is only working for x86_64 because the arm64 dependencies are in a private repository self-hosted because GitHub does not provide arm64 runners.




Line 9: Line 11:
== Download and install dependencies ==
== Download and install dependencies ==


Dependencies will be extracted under /opt/strawberry_macos_x86_64_release
Dependencies will be extracted under /opt/strawberry_macos_ARCH_release


     curl -f -O -L https://github.com/strawberrymusicplayer/strawberry-macos-dependencies/releases/latest/download/strawberry-macos-$(uname -m)-release.tar.xz
     curl -f -O -L https://github.com/strawberrymusicplayer/strawberry-macos-dependencies/releases/latest/download/strawberry-macos-$(uname -m)-release.tar.xz
Line 18: Line 20:
== Checkout code ==
== Checkout code ==


     git clone https://github.com/strawberrymusicplayer/strawberry
     git clone --recursive https://github.com/strawberrymusicplayer/strawberry
     cd strawberry
     cd strawberry
     mkdir build
     mkdir build
Line 34: Line 36:
     make -j 4
     make -j 4
     make install
     make install
== 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 /opt/strawberry_macos_$(uname -m)_release/lib/libsoup-3.0.0.dylib strawberry.app/Contents/Frameworks/




Line 49: Line 43:
     export GST_PLUGIN_SCANNER="/opt/strawberry_macos_$(uname -m)_release/libexec/gstreamer-1.0/gst-plugin-scanner"
     export GST_PLUGIN_SCANNER="/opt/strawberry_macos_$(uname -m)_release/libexec/gstreamer-1.0/gst-plugin-scanner"
     export GST_PLUGIN_PATH="/opt/strawberry_macos_$(uname -m)_release/lib/gstreamer-1.0"
     export GST_PLUGIN_PATH="/opt/strawberry_macos_$(uname -m)_release/lib/gstreamer-1.0"
    export LIBSOUP_LIBRARY_PATH="/opt/strawberry_macos_$(uname -m)_release/lib/libsoup-3.0.0.dylib"





Latest revision as of 20:55, 22 November 2023

Building on macOS

This guide is only working for x86_64 because the arm64 dependencies are in a private repository self-hosted because GitHub does not provide arm64 runners.


Install xcode tools

   xcode-select --install


Download and install dependencies

Dependencies will be extracted under /opt/strawberry_macos_ARCH_release

   curl -f -O -L https://github.com/strawberrymusicplayer/strawberry-macos-dependencies/releases/latest/download/strawberry-macos-$(uname -m)-release.tar.xz
   sudo tar -C / -xf strawberry-macos-$(uname -m)-release.tar.xz
   rm strawberry-macos-$(uname -m)-release.tar.xz


Checkout code

   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

   PKG_CONFIG_PATH=/opt/strawberry_macos_$(uname -m)_release/lib/pkgconfig LDFLAGS="-L/opt/strawberry_macos_$(uname -m)_release/lib -Wl,-rpath,/opt/strawberry_macos_$(uname -m)_release/lib" /opt/strawberry_macos_$(uname -m)_release/bin/cmake --log-level="DEBUG" -S .. -B . -DCMAKE_BUILD_TYPE="Release" -DBUILD_WITH_QT6=ON -DUSE_BUNDLE=ON -DCMAKE_PREFIX_PATH="/opt/strawberry_macos_$(uname -m)_release/lib/cmake" -DPKG_CONFIG_EXECUTABLE="/opt/strawberry_macos_$(uname -m)_release/bin/pkg-config" -DICU_ROOT="/opt/strawberry_macos_$(uname -m)_release" -DFFTW3_DIR="/opt/strawberry_macos_$(uname -m)_release" -DENABLE_DBUS=OFF -DGETTEXT_MSGMERGE_EXECUTABLE="/opt/strawberry_macos_$(uname -m)_release/bin/msgmerge" -DGETTEXT_MSGFMT_EXECUTABLE="/opt/strawberry_macos_$(uname -m)_release/bin/msgfmt" -DGETTEXT_XGETTEXT_EXECUTABLE="/opt/strawberry_macos_$(uname -m)_release/bin/xgettext"


Build

   make -j 4
   make install


Set environment variables

   export GIO_EXTRA_MODULES="/opt/strawberry_macos_$(uname -m)_release/lib/gio/modules"
   export GST_PLUGIN_SCANNER="/opt/strawberry_macos_$(uname -m)_release/libexec/gstreamer-1.0/gst-plugin-scanner"
   export GST_PLUGIN_PATH="/opt/strawberry_macos_$(uname -m)_release/lib/gstreamer-1.0"
   export LIBSOUP_LIBRARY_PATH="/opt/strawberry_macos_$(uname -m)_release/lib/libsoup-3.0.0.dylib"


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/