Build Release Package for macOS #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Release workflow for macOS | |
| # Builds a universal binary on macOS. | |
| name: Build Release Package for macOS | |
| on: workflow_dispatch | |
| jobs: | |
| build-deb: | |
| name: ProductBuild Installer, macOS x86_64+arm64 | |
| runs-on: macos-latest | |
| steps: | |
| # We need to build third-party libraries (POCO, SDL2 and projectM) ourselves, as neither Homebrew | |
| # nor vcpkg support building universal binaries. | |
| - name: Checkout libSDL2 Sources | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: libsdl-org/SDL | |
| path: libsdl2 | |
| ref: 'release-2.32.10' | |
| submodules: recursive | |
| - name: Build libSDL2 | |
| run: | | |
| mkdir cmake-build-libsdl2 | |
| cmake -G Ninja -S libsdl2 -B cmake-build-libsdl2 \ | |
| '-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64' \ | |
| -DBUILD_SHARED_LIBS=ON \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install-libsdl2 | |
| cmake --build cmake-build-libsdl2 --parallel | |
| cmake --install "${{ github.workspace }}/cmake-build-libsdl2" | |
| - name: Checkout Poco Sources | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: pocoproject/poco | |
| path: poco | |
| ref: 'poco-1.14.1' | |
| submodules: recursive | |
| - name: Build Poco | |
| run: | | |
| mkdir cmake-build-poco | |
| cmake -G Ninja -S poco -B cmake-build-poco \ | |
| '-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64' \ | |
| -DBUILD_SHARED_LIBS=ON \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install-poco \ | |
| -DENABLE_CRYPTO=OFF \ | |
| -DENABLE_NET=OFF \ | |
| -DENABLE_NETSSL=OFF \ | |
| -DENABLE_ZIP=OFF \ | |
| -DENABLE_MONGODB=OFF \ | |
| -DENABLE_REDIS=OFF \ | |
| -DENABLE_PAGECOMPILER=OFF \ | |
| -DENABLE_PAGECOMPILER_FILE2PAGE=OFF \ | |
| -DENABLE_ACTIVERECORD=OFF \ | |
| -DENABLE_ACTIVERECORD_COMPILER=OFF \ | |
| -DENABLE_DATA_ODBC=OFF \ | |
| -DENABLE_DATA_POSTGRESQL=OFF \ | |
| -DENABLE_DATA_MYSQL=OFF \ | |
| -DENABLE_JWT=OFF \ | |
| -DENABLE_PROMETHEUS=OFF | |
| cmake --build cmake-build-poco --parallel | |
| cmake --install "${{ github.workspace }}/cmake-build-poco" | |
| - name: Checkout libprojectM Sources | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: projectM-visualizer/projectm | |
| path: projectm | |
| submodules: recursive | |
| - name: Build/Install libprojectM | |
| run: | | |
| mkdir cmake-build-libprojectm | |
| cmake -G Ninja -S projectm -B cmake-build-libprojectm \ | |
| '-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64' \ | |
| -DBUILD_SHARED_LIBS=OFF \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install-libprojectm | |
| cmake --build cmake-build-libprojectm --parallel | |
| cmake --install "${{ github.workspace }}/cmake-build-libprojectm" | |
| - name: Checkout projectMSDL Sources | |
| uses: actions/checkout@v4 | |
| with: | |
| path: frontend-sdl2 | |
| submodules: recursive | |
| - name: Checkout Cream of the Crop preset pack | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: projectM-visualizer/presets-cream-of-the-crop | |
| path: presets-cream-of-the-crop | |
| - name: Checkout Milkdrop Texture Pack | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: projectM-visualizer/presets-milkdrop-texture-pack | |
| path: presets-milkdrop-texture-pack | |
| - name: Build projectMSDL | |
| run: | | |
| mkdir cmake-build-frontend-sdl2 | |
| cmake -G Ninja -S frontend-sdl2 -B cmake-build-frontend-sdl2 \ | |
| '-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64' \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DENABLE_FREETYPE=OFF \ | |
| "-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install-libprojectm;${GITHUB_WORKSPACE}/install-poco;${GITHUB_WORKSPACE}/install-libsdl2" \ | |
| "-DPRESET_DIRS=${{ github.workspace }}/presets-cream-of-the-crop" \ | |
| "-DTEXTURE_DIRS=${{ github.workspace }}/presets-milkdrop-texture-pack/textures" \ | |
| '-DDEFAULT_CONFIG_PATH=${application.dir}/../share/projectMSDL/' \ | |
| '-DDEFAULT_PRESETS_PATH=${application.dir}/../share/projectMSDL/presets/' \ | |
| '-DDEFAULT_TEXTURES_PATH=${application.dir}/../share/projectMSDL/textures/' \ | |
| -DENABLE_INSTALL_BDEPS=ON | |
| cmake --build cmake-build-frontend-sdl2 --parallel | |
| - name: Package projectMSDL | |
| run: | | |
| cd cmake-build-frontend-sdl2 | |
| cpack -G productbuild | |
| - name: Upload Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: projectMSDL-macOS-Universal | |
| path: cmake-build-frontend-sdl2/*.pkg |