From 4f33da153ef7d78d3d6e221244011c153ee604dd Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 09:31:50 +0100 Subject: [PATCH 01/20] Delete all the workflows so they don't complain at me while I'm doing this --- .github/workflows/build-appimage.yml | 55 --------------- .github/workflows/build-macos-universal.yml | 76 --------------------- .github/workflows/build-ubuntu-aarch64.yml | 50 -------------- .github/workflows/build-ubuntu.yml | 37 ---------- .github/workflows/build-windows.yml | 43 ------------ 5 files changed, 261 deletions(-) delete mode 100644 .github/workflows/build-appimage.yml delete mode 100644 .github/workflows/build-macos-universal.yml delete mode 100644 .github/workflows/build-ubuntu-aarch64.yml delete mode 100644 .github/workflows/build-ubuntu.yml delete mode 100644 .github/workflows/build-windows.yml diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml deleted file mode 100644 index 7e7df5837f..0000000000 --- a/.github/workflows/build-appimage.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: CMake Build (AppImage x86-64) - -on: - push: - branches: - - master - pull_request: - branches: - - master - -jobs: - build: - - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v1 - - name: Install dependencies - run: | - sudo rm -f /etc/apt/sources.list.d/dotnetdev.list /etc/apt/sources.list.d/microsoft-prod.list - sudo apt update - sudo apt install cmake extra-cmake-modules libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev libqt5multimedia5-plugins qt5-default qtbase5-private-dev qtmultimedia5-dev libslirp0 libslirp-dev libarchive-dev zstd libzstd-dev --allow-downgrades - - name: Create build environment - run: mkdir ${{runner.workspace}}/build - - name: Configure - working-directory: ${{runner.workspace}}/build - run: cmake $GITHUB_WORKSPACE - - name: Make - working-directory: ${{runner.workspace}}/build - run: | - make -j$(nproc --all) - - name: Prepare AppDir for AppImage - working-directory: ${{runner.workspace}}/build - run: | - make install DESTDIR=AppDir - mv ./AppDir/usr/local/bin ./AppDir/usr/bin - mv ./AppDir/usr/local/share ./AppDir/usr/share - rm -rf ./AppDir/usr/local - - name: Prepare necessary Tools for building the AppImage - working-directory: ${{runner.workspace}}/build - run: | - wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage - wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage - chmod a+x linuxdeploy-x86_64.AppImage - chmod a+x linuxdeploy-plugin-qt-x86_64.AppImage - - name: Build the AppImage - working-directory: ${{runner.workspace}}/build - run: | - ./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt --output appimage - mkdir dist - cp ./melonDS*.AppImage ./dist - - uses: actions/upload-artifact@v1 - with: - name: melonDS-appimage-x86_64 - path: ${{runner.workspace}}/build/dist diff --git a/.github/workflows/build-macos-universal.yml b/.github/workflows/build-macos-universal.yml deleted file mode 100644 index 4416ce7a1f..0000000000 --- a/.github/workflows/build-macos-universal.yml +++ /dev/null @@ -1,76 +0,0 @@ -name: CMake Build (macOS Universal) - -on: - push: - branches: - - master - pull_request: - branches: - - master - -jobs: - prepare: - runs-on: [self-hosted, macOS, ARM64] - - steps: - - name: Clean workspace - run: rm -rf ${{runner.workspace}}/build - - - uses: actions/checkout@v3 - - - build-arm64: - needs: prepare - runs-on: [self-hosted, macOS, ARM64] - env: - homebrew_prefix: /opt/homebrew - - steps: - - name: Create build directory - run: mkdir -p ${{runner.workspace}}/build/arm64 - - - name: Configure - working-directory: ${{runner.workspace}}/build/arm64 - run: arch -arm64 ${{env.homebrew_prefix}}/bin/cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_PREFIX_PATH="${{env.homebrew_prefix}}/opt/qt@6;${{env.homebrew_prefix}}/opt/libarchive" -DPKG_CONFIG_EXECUTABLE=${{env.homebrew_prefix}}/bin/pkg-config -DMACOS_BUNDLE_LIBS=ON -DUSE_QT6=ON - - - name: Make - working-directory: ${{runner.workspace}}/build/arm64 - run: arch -arm64 make -j$(sysctl -n hw.logicalcpu) - - build-x86_64: - needs: prepare - runs-on: [self-hosted, macOS, ARM64] - env: - homebrew_prefix: /usr/local - - steps: - - name: Create build directory - run: mkdir -p ${{runner.workspace}}/build/x86_64 - - - name: Configure - working-directory: ${{runner.workspace}}/build/x86_64 - run: arch -x86_64 ${{env.homebrew_prefix}}/bin/cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_PREFIX_PATH="${{env.homebrew_prefix}}/opt/qt@6;${{env.homebrew_prefix}}/opt/libarchive" -DPKG_CONFIG_EXECUTABLE=${{env.homebrew_prefix}}/bin/pkg-config -DMACOS_BUNDLE_LIBS=ON -DUSE_QT6=ON - - - name: Make - working-directory: ${{runner.workspace}}/build/x86_64 - run: arch -x86_64 make -j$(sysctl -n hw.logicalcpu) - - universal-binary: - needs: [build-arm64, build-x86_64] - runs-on: [self-hosted, macOS, ARM64] - - steps: - - name: Merge binaries - run: $GITHUB_WORKSPACE/tools/mac-universal.py ${{runner.workspace}}/build/arm64/melonDS.app ${{runner.workspace}}/build/x86_64/melonDS.app ${{runner.workspace}}/build/universal/melonDS.app - - - name: Codesign app - run: codesign -s - --deep -f ${{runner.workspace}}/build/universal/melonDS.app - - - name: Create DMG - run: hdiutil create -fs HFS+ -volname melonDS -srcfolder ${{runner.workspace}}/build/universal/melonDS.app -ov -format UDBZ ${{runner.workspace}}/build/universal/melonDS.dmg - - - uses: actions/upload-artifact@v3 - with: - name: macOS-universal - path: ${{runner.workspace}}/build/universal/melonDS.dmg - diff --git a/.github/workflows/build-ubuntu-aarch64.yml b/.github/workflows/build-ubuntu-aarch64.yml deleted file mode 100644 index 096bc0b9b1..0000000000 --- a/.github/workflows/build-ubuntu-aarch64.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: CMake Build (Ubuntu aarch64) - -on: - push: - branches: - - master - pull_request: - branches: - - master - -env: - BUILD_TYPE: Release - -jobs: - build: - runs-on: ubuntu-20.04 - container: ubuntu:20.04 - - steps: - - name: Prepare system - shell: bash - run: | - apt update - apt -y full-upgrade - apt -y install git - - name: Check out source - uses: actions/checkout@v1 - - name: Install dependencies - shell: bash - run: | - dpkg --add-architecture arm64 - sh -c "sed \"s|^deb \([a-z\.:/]*\) \([a-z\-]*\) \(.*\)$|deb [arch=amd64] \1 \2 \3\ndeb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports \2 \3|\" /etc/apt/sources.list > /etc/apt/sources.list.new" - rm /etc/apt/sources.list - mv /etc/apt/sources.list{.new,} - apt update - DEBIAN_FRONTEND=noninteractive apt install -y {gcc-10,g++-10,pkg-config}-aarch64-linux-gnu {libsdl2,qtbase5,qtbase5-private,qtmultimedia5,libslirp,libarchive,libzstd}-dev:arm64 zstd:arm64 cmake extra-cmake-modules dpkg-dev - - name: Configure - shell: bash - run: | - CC=aarch64-linux-gnu-gcc-10 CXX=aarch64-linux-gnu-g++-10 cmake -DPKG_CONFIG_EXECUTABLE=/usr/bin/aarch64-linux-gnu-pkg-config $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -B build - - name: Make - shell: bash - run: | - cmake --build build -j$(nproc --all) - mkdir dist - cp build/melonDS dist - - uses: actions/upload-artifact@v1 - with: - name: melonDS-ubuntu-aarch64 - path: dist diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu.yml deleted file mode 100644 index b6c50e9a0a..0000000000 --- a/.github/workflows/build-ubuntu.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: CMake Build (Ubuntu x86-64) - -on: - push: - branches: - - master - pull_request: - branches: - - master - -jobs: - build: - - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v1 - - name: Install dependencies - run: | - sudo rm -f /etc/apt/sources.list.d/dotnetdev.list /etc/apt/sources.list.d/microsoft-prod.list - sudo apt update - sudo apt install cmake extra-cmake-modules libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev qt5-default qtbase5-private-dev qtmultimedia5-dev libslirp0 libslirp-dev libarchive-dev zstd libzstd-dev --allow-downgrades - - name: Create build environment - run: mkdir ${{runner.workspace}}/build - - name: Configure - working-directory: ${{runner.workspace}}/build - run: cmake $GITHUB_WORKSPACE - - name: Make - working-directory: ${{runner.workspace}}/build - run: | - make -j$(nproc --all) - mkdir dist - cp melonDS dist - - uses: actions/upload-artifact@v1 - with: - name: melonDS-ubuntu-x86_64 - path: ${{runner.workspace}}/build/dist diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml deleted file mode 100644 index 70b11c05ea..0000000000 --- a/.github/workflows/build-windows.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: CMake Build (Windows x86-64) - -on: - push: - branches: - - master - pull_request: - branches: - - master - -env: - BUILD_TYPE: Release - -jobs: - build: - - runs-on: windows-latest - - defaults: - run: - shell: msys2 {0} - steps: - - uses: actions/checkout@v1 - - uses: msys2/setup-msys2@v2 - with: - msystem: MINGW64 - update: true - - - name: Install dependencies - run: pacman -Sq --noconfirm git pkgconf mingw-w64-x86_64-{cmake,SDL2,qt5-static,libslirp,libarchive,toolchain} - - - name: Configure - working-directory: ${{runner.workspace}} - run: cmake -B build $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_STATIC=ON -DCMAKE_PREFIX_PATH=C:/tools/msys64/mingw64/qt5-static - - - name: Make - working-directory: ${{runner.workspace}}/build - run: cmake --build . - - - uses: actions/upload-artifact@v1 - with: - name: melonDS-windows-x86_64 - path: ${{runner.workspace}}\build\melonDS.exe From 1c290e3c6570f035caa7277f673b615ecad4ccc2 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 09:39:56 +0100 Subject: [PATCH 02/20] let's try this --- .github/workflows/build-macos.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/workflows/build-macos.yml diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml new file mode 100644 index 0000000000..bac7696dda --- /dev/null +++ b/.github/workflows/build-macos.yml @@ -0,0 +1,15 @@ +name: build-macos +on: [push, workflow_dispatch] + +jobs: + build-macos-x86_64: + name: macOS x86_64 + runs-on: macos-13 + steps: + - uses: actions/checkout@v3 + - uses: lukka/get-cmake@latest + - uses: lukka/run-vcpkg@v11 + - uses: lukka/run-cmake@v10 + with: + configurePreset: release-mac-x86_64 + buildPreset: release-mac-x86_64 \ No newline at end of file From f9ddf6eac5737400ee2bab579b9f3106d2854d37 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 09:46:05 +0100 Subject: [PATCH 03/20] vcpkg commit --- .github/workflows/build-macos.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index bac7696dda..36e423127d 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -9,6 +9,8 @@ jobs: - uses: actions/checkout@v3 - uses: lukka/get-cmake@latest - uses: lukka/run-vcpkg@v11 + with: + vcpkgGitCommitId: 2023.12.12 - uses: lukka/run-cmake@v10 with: configurePreset: release-mac-x86_64 From 0d51d3527700e5b1dce69fbcdbd862684e4aeccd Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 09:47:50 +0100 Subject: [PATCH 04/20] vcpkg commit --- .github/workflows/build-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 36e423127d..fab5eaa309 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -10,7 +10,7 @@ jobs: - uses: lukka/get-cmake@latest - uses: lukka/run-vcpkg@v11 with: - vcpkgGitCommitId: 2023.12.12 + vcpkgGitCommitId: c8696863d371ab7f46e213d8f5ca923c4aef2a00 - uses: lukka/run-cmake@v10 with: configurePreset: release-mac-x86_64 From f89858eae9053f91a3b7b8b8cef8e2a9ecc8a7df Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 09:59:29 +0100 Subject: [PATCH 05/20] I think this is the extra shit glib needed? --- .github/workflows/build-macos.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index fab5eaa309..737b8604db 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -7,6 +7,8 @@ jobs: runs-on: macos-13 steps: - uses: actions/checkout@v3 + - run: | + brew install autoconf automake autoconf-archive - uses: lukka/get-cmake@latest - uses: lukka/run-vcpkg@v11 with: From 11154b92970c1a14c6074cb0155910cd277eb4a9 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 10:12:16 +0100 Subject: [PATCH 06/20] maybe?????? --- .github/workflows/build-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 737b8604db..5ff94381a6 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -8,7 +8,7 @@ jobs: steps: - uses: actions/checkout@v3 - run: | - brew install autoconf automake autoconf-archive + brew install autoconf automake autoconf-archive glib - uses: lukka/get-cmake@latest - uses: lukka/run-vcpkg@v11 with: From e48f3654b1bc9c29fae9bebd0b21add4ec9c7979 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 10:20:51 +0100 Subject: [PATCH 07/20] maybe it's libtool then --- .github/workflows/build-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 5ff94381a6..f3d894ae9a 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -8,7 +8,7 @@ jobs: steps: - uses: actions/checkout@v3 - run: | - brew install autoconf automake autoconf-archive glib + brew install autoconf automake autoconf-archive glib libtool - uses: lukka/get-cmake@latest - uses: lukka/run-vcpkg@v11 with: From 0da278cc526c4166c3ad81ce684f6d1c2cd6f618 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 11:05:02 +0100 Subject: [PATCH 08/20] does it need meson --- .github/workflows/build-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index f3d894ae9a..10687c77a0 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -8,7 +8,7 @@ jobs: steps: - uses: actions/checkout@v3 - run: | - brew install autoconf automake autoconf-archive glib libtool + brew install autoconf automake autoconf-archive glib libtool meson - uses: lukka/get-cmake@latest - uses: lukka/run-vcpkg@v11 with: From a93622e763fe65ae91ded0b775f02560123c3adc Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 11:11:33 +0100 Subject: [PATCH 09/20] this is so fucking stupid --- .github/workflows/build-macos.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 10687c77a0..c77e41dbc1 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -16,4 +16,8 @@ jobs: - uses: lukka/run-cmake@v10 with: configurePreset: release-mac-x86_64 - buildPreset: release-mac-x86_64 \ No newline at end of file + buildPreset: release-mac-x86_64 + - if: always() + run: | + cat /Users/runner/work/melonDS/melonDS/vcpkg/buildtrees/glib/config-x64-osx-1015-release-rel-meson-log.txt.log + cat /Users/runner/work/melonDS/melonDS/vcpkg/buildtrees/glib/config-x64-osx-1015-release-rel-out.log \ No newline at end of file From c8c9755075a1d931e2ad4509ce22b5bcda6c05d3 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 11:17:44 +0100 Subject: [PATCH 10/20] OF COURSE it's python --- .github/workflows/build-macos.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index c77e41dbc1..5cb6282b47 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -8,7 +8,8 @@ jobs: steps: - uses: actions/checkout@v3 - run: | - brew install autoconf automake autoconf-archive glib libtool meson + brew install autoconf automake autoconf-archive glib libtool + pip3 install distutils - uses: lukka/get-cmake@latest - uses: lukka/run-vcpkg@v11 with: From be9846709f31e4d128ce2e32924d1e18e93b5ebb Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 11:19:29 +0100 Subject: [PATCH 11/20] a --- .github/workflows/build-macos.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 5cb6282b47..2fb165017a 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -8,8 +8,7 @@ jobs: steps: - uses: actions/checkout@v3 - run: | - brew install autoconf automake autoconf-archive glib libtool - pip3 install distutils + brew install autoconf automake autoconf-archive glib libtool && pip3 install distutils - uses: lukka/get-cmake@latest - uses: lukka/run-vcpkg@v11 with: From c4eddc70f94c4db7e5eea2139d012589cca37df4 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 11:22:11 +0100 Subject: [PATCH 12/20] something something distutils deprecated use setuptools whatever ok we try that --- .github/workflows/build-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 2fb165017a..cc9e94d1f5 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -8,7 +8,7 @@ jobs: steps: - uses: actions/checkout@v3 - run: | - brew install autoconf automake autoconf-archive glib libtool && pip3 install distutils + brew install autoconf automake autoconf-archive glib libtool && pip3 install setuptools - uses: lukka/get-cmake@latest - uses: lukka/run-vcpkg@v11 with: From 565228ddb7af460f7332fc383cba735d3b498aad Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 11:45:07 +0100 Subject: [PATCH 13/20] Let's try arm64 --- .github/workflows/build-macos.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index cc9e94d1f5..56423dc9e4 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -2,22 +2,22 @@ name: build-macos on: [push, workflow_dispatch] jobs: - build-macos-x86_64: - name: macOS x86_64 + build-macos: + strategy: + matrix: + arch: [x86_64, arm64] + + name: macOS ${{ matrix.arch }} runs-on: macos-13 steps: - uses: actions/checkout@v3 - run: | - brew install autoconf automake autoconf-archive glib libtool && pip3 install setuptools + brew install autoconf automake autoconf-archive libtool && pip3 install setuptools - uses: lukka/get-cmake@latest - uses: lukka/run-vcpkg@v11 with: vcpkgGitCommitId: c8696863d371ab7f46e213d8f5ca923c4aef2a00 - uses: lukka/run-cmake@v10 with: - configurePreset: release-mac-x86_64 - buildPreset: release-mac-x86_64 - - if: always() - run: | - cat /Users/runner/work/melonDS/melonDS/vcpkg/buildtrees/glib/config-x64-osx-1015-release-rel-meson-log.txt.log - cat /Users/runner/work/melonDS/melonDS/vcpkg/buildtrees/glib/config-x64-osx-1015-release-rel-out.log \ No newline at end of file + configurePreset: release-mac-${{ matrix.arch }} + buildPreset: release-mac-${{ matrix.arch }} \ No newline at end of file From b614030ca3ed4bfcf88da4d52fe2247d2e0dc11e Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 12:53:25 +0100 Subject: [PATCH 14/20] let's test if this works first --- .github/workflows/build-macos.yml | 37 ++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 56423dc9e4..b243a7ced1 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -10,14 +10,39 @@ jobs: name: macOS ${{ matrix.arch }} runs-on: macos-13 steps: - - uses: actions/checkout@v3 - - run: | + - name: Check out sources + uses: actions/checkout@v3 + - name: Install dependencies for package building + run: | brew install autoconf automake autoconf-archive libtool && pip3 install setuptools - - uses: lukka/get-cmake@latest - - uses: lukka/run-vcpkg@v11 + - name: Set up CMake + uses: lukka/get-cmake@latest + - name: Set up vcpkg + uses: lukka/run-vcpkg@v11 with: vcpkgGitCommitId: c8696863d371ab7f46e213d8f5ca923c4aef2a00 - - uses: lukka/run-cmake@v10 + - name: Build + uses: lukka/run-cmake@v10 with: configurePreset: release-mac-${{ matrix.arch }} - buildPreset: release-mac-${{ matrix.arch }} \ No newline at end of file + buildPreset: release-mac-${{ matrix.arch }} + - name: Upload artifact + uses: upload-artifact@v4 + with: + name: macOS-${{ matrix.arch }} + path: build/release-mac-${{ matrix.arch }}/melonDS.app + + universal-binary: + name: macOS universal binary + needs: [build-macos] + runs-on: macos-13 + steps: + - name: Download x86_64 + uses: download-artifact@v4 + with: + name: macOS-x86_64 + - name: Download arm64 + uses: download-artifact@v4 + with: + name: macOS-arm64 + - run: find . -type d \ No newline at end of file From c19a9412a53c1e6d8a7f34dcbb51ea285bcde16f Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 12:55:35 +0100 Subject: [PATCH 15/20] oops --- .github/workflows/build-macos.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index b243a7ced1..41834c2108 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -27,7 +27,7 @@ jobs: configurePreset: release-mac-${{ matrix.arch }} buildPreset: release-mac-${{ matrix.arch }} - name: Upload artifact - uses: upload-artifact@v4 + uses: actions/upload-artifact@v4 with: name: macOS-${{ matrix.arch }} path: build/release-mac-${{ matrix.arch }}/melonDS.app @@ -38,11 +38,11 @@ jobs: runs-on: macos-13 steps: - name: Download x86_64 - uses: download-artifact@v4 + uses: actions/download-artifact@v4 with: name: macOS-x86_64 - name: Download arm64 - uses: download-artifact@v4 + uses: actions/download-artifact@v4 with: name: macOS-arm64 - run: find . -type d \ No newline at end of file From 06a3ad868b9c0475682759f482c5ff61450fdde0 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 13:16:03 +0100 Subject: [PATCH 16/20] let's try actually combining them --- .github/workflows/build-macos.yml | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 41834c2108..09bfb81ddd 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -26,11 +26,13 @@ jobs: with: configurePreset: release-mac-${{ matrix.arch }} buildPreset: release-mac-${{ matrix.arch }} + - name: Compress app bundle + run: zip -r -y macOS-${{ matrix.arch }}.zip build/release-mac-${{ matrix.arch }}/melonDS.app - name: Upload artifact uses: actions/upload-artifact@v4 with: name: macOS-${{ matrix.arch }} - path: build/release-mac-${{ matrix.arch }}/melonDS.app + path: macOS-${{ matrix.arch }}.zip universal-binary: name: macOS universal binary @@ -41,8 +43,23 @@ jobs: uses: actions/download-artifact@v4 with: name: macOS-x86_64 + path: x86_64 - name: Download arm64 uses: actions/download-artifact@v4 with: name: macOS-arm64 - - run: find . -type d \ No newline at end of file + path: arm64 + - run: find . -type d + - name: Combine app bundles + shell: zsh + run: | + lipo {x86_64,arm64}/melonDS.app/Contents/MacOS/melonDS -create -output melonDS + cp -a arm64/melonDS.app melonDS.app + cp melonDS melonDS.app/Contents/MacOS/melonDS + codesign -s - --deep melonDS.app + zip -r -y macOS-universal.zip melonDS.app + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: macOS-universal + path: macOS-universal.zip \ No newline at end of file From 3b7d69a644f80a3b85afcdcfcd8b29997ed95c66 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 13:28:23 +0100 Subject: [PATCH 17/20] let's try it again, but better this time --- .github/workflows/build-macos.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 09bfb81ddd..0370b2a986 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -27,7 +27,10 @@ jobs: configurePreset: release-mac-${{ matrix.arch }} buildPreset: release-mac-${{ matrix.arch }} - name: Compress app bundle - run: zip -r -y macOS-${{ matrix.arch }}.zip build/release-mac-${{ matrix.arch }}/melonDS.app + shell: bash + run: | + cd build/release-mac-${{ matrix.arch }} + zip -r -y ../../macOS-${{ matrix.arch }}.zip melonDS.app - name: Upload artifact uses: actions/upload-artifact@v4 with: @@ -49,10 +52,12 @@ jobs: with: name: macOS-arm64 path: arm64 - - run: find . -type d + - run: find . - name: Combine app bundles - shell: zsh + shell: bash run: | + unzip x86_64/*.zip -d x86_64 + unzip arm64/*.zip -d arm64 lipo {x86_64,arm64}/melonDS.app/Contents/MacOS/melonDS -create -output melonDS cp -a arm64/melonDS.app melonDS.app cp melonDS melonDS.app/Contents/MacOS/melonDS From f5f1eaf63140c11d26cef3edd662d90549abfb63 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 13:48:35 +0100 Subject: [PATCH 18/20] Put the finishing touches on it --- .github/workflows/build-macos.yml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 0370b2a986..0209c46f15 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -1,5 +1,12 @@ name: build-macos -on: [push, workflow_dispatch] + +on: + push: + branches: + - master + pull_request: + branches: + - master jobs: build-macos: @@ -52,7 +59,6 @@ jobs: with: name: macOS-arm64 path: arm64 - - run: find . - name: Combine app bundles shell: bash run: | @@ -67,4 +73,12 @@ jobs: uses: actions/upload-artifact@v4 with: name: macOS-universal - path: macOS-universal.zip \ No newline at end of file + path: macOS-universal.zip + - name: Clean up architecture-specific artifacts + uses: geekyeggo/delete-artifact@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + failOnError: false + name: | + macOS-x86_64 + macOS-arm64 \ No newline at end of file From eac4d6790380ade09e885ad1be01c2d60d5bc4ab Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 13:49:01 +0100 Subject: [PATCH 19/20] Restore the workflows --- .github/workflows/build-appimage.yml | 55 ++++++++++++++++++++++ .github/workflows/build-ubuntu-aarch64.yml | 50 ++++++++++++++++++++ .github/workflows/build-ubuntu.yml | 37 +++++++++++++++ .github/workflows/build-windows.yml | 43 +++++++++++++++++ 4 files changed, 185 insertions(+) create mode 100644 .github/workflows/build-appimage.yml create mode 100644 .github/workflows/build-ubuntu-aarch64.yml create mode 100644 .github/workflows/build-ubuntu.yml create mode 100644 .github/workflows/build-windows.yml diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml new file mode 100644 index 0000000000..7e7df5837f --- /dev/null +++ b/.github/workflows/build-appimage.yml @@ -0,0 +1,55 @@ +name: CMake Build (AppImage x86-64) + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v1 + - name: Install dependencies + run: | + sudo rm -f /etc/apt/sources.list.d/dotnetdev.list /etc/apt/sources.list.d/microsoft-prod.list + sudo apt update + sudo apt install cmake extra-cmake-modules libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev libqt5multimedia5-plugins qt5-default qtbase5-private-dev qtmultimedia5-dev libslirp0 libslirp-dev libarchive-dev zstd libzstd-dev --allow-downgrades + - name: Create build environment + run: mkdir ${{runner.workspace}}/build + - name: Configure + working-directory: ${{runner.workspace}}/build + run: cmake $GITHUB_WORKSPACE + - name: Make + working-directory: ${{runner.workspace}}/build + run: | + make -j$(nproc --all) + - name: Prepare AppDir for AppImage + working-directory: ${{runner.workspace}}/build + run: | + make install DESTDIR=AppDir + mv ./AppDir/usr/local/bin ./AppDir/usr/bin + mv ./AppDir/usr/local/share ./AppDir/usr/share + rm -rf ./AppDir/usr/local + - name: Prepare necessary Tools for building the AppImage + working-directory: ${{runner.workspace}}/build + run: | + wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage + wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage + chmod a+x linuxdeploy-x86_64.AppImage + chmod a+x linuxdeploy-plugin-qt-x86_64.AppImage + - name: Build the AppImage + working-directory: ${{runner.workspace}}/build + run: | + ./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt --output appimage + mkdir dist + cp ./melonDS*.AppImage ./dist + - uses: actions/upload-artifact@v1 + with: + name: melonDS-appimage-x86_64 + path: ${{runner.workspace}}/build/dist diff --git a/.github/workflows/build-ubuntu-aarch64.yml b/.github/workflows/build-ubuntu-aarch64.yml new file mode 100644 index 0000000000..096bc0b9b1 --- /dev/null +++ b/.github/workflows/build-ubuntu-aarch64.yml @@ -0,0 +1,50 @@ +name: CMake Build (Ubuntu aarch64) + +on: + push: + branches: + - master + pull_request: + branches: + - master + +env: + BUILD_TYPE: Release + +jobs: + build: + runs-on: ubuntu-20.04 + container: ubuntu:20.04 + + steps: + - name: Prepare system + shell: bash + run: | + apt update + apt -y full-upgrade + apt -y install git + - name: Check out source + uses: actions/checkout@v1 + - name: Install dependencies + shell: bash + run: | + dpkg --add-architecture arm64 + sh -c "sed \"s|^deb \([a-z\.:/]*\) \([a-z\-]*\) \(.*\)$|deb [arch=amd64] \1 \2 \3\ndeb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports \2 \3|\" /etc/apt/sources.list > /etc/apt/sources.list.new" + rm /etc/apt/sources.list + mv /etc/apt/sources.list{.new,} + apt update + DEBIAN_FRONTEND=noninteractive apt install -y {gcc-10,g++-10,pkg-config}-aarch64-linux-gnu {libsdl2,qtbase5,qtbase5-private,qtmultimedia5,libslirp,libarchive,libzstd}-dev:arm64 zstd:arm64 cmake extra-cmake-modules dpkg-dev + - name: Configure + shell: bash + run: | + CC=aarch64-linux-gnu-gcc-10 CXX=aarch64-linux-gnu-g++-10 cmake -DPKG_CONFIG_EXECUTABLE=/usr/bin/aarch64-linux-gnu-pkg-config $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -B build + - name: Make + shell: bash + run: | + cmake --build build -j$(nproc --all) + mkdir dist + cp build/melonDS dist + - uses: actions/upload-artifact@v1 + with: + name: melonDS-ubuntu-aarch64 + path: dist diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu.yml new file mode 100644 index 0000000000..b6c50e9a0a --- /dev/null +++ b/.github/workflows/build-ubuntu.yml @@ -0,0 +1,37 @@ +name: CMake Build (Ubuntu x86-64) + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v1 + - name: Install dependencies + run: | + sudo rm -f /etc/apt/sources.list.d/dotnetdev.list /etc/apt/sources.list.d/microsoft-prod.list + sudo apt update + sudo apt install cmake extra-cmake-modules libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev qt5-default qtbase5-private-dev qtmultimedia5-dev libslirp0 libslirp-dev libarchive-dev zstd libzstd-dev --allow-downgrades + - name: Create build environment + run: mkdir ${{runner.workspace}}/build + - name: Configure + working-directory: ${{runner.workspace}}/build + run: cmake $GITHUB_WORKSPACE + - name: Make + working-directory: ${{runner.workspace}}/build + run: | + make -j$(nproc --all) + mkdir dist + cp melonDS dist + - uses: actions/upload-artifact@v1 + with: + name: melonDS-ubuntu-x86_64 + path: ${{runner.workspace}}/build/dist diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml new file mode 100644 index 0000000000..70b11c05ea --- /dev/null +++ b/.github/workflows/build-windows.yml @@ -0,0 +1,43 @@ +name: CMake Build (Windows x86-64) + +on: + push: + branches: + - master + pull_request: + branches: + - master + +env: + BUILD_TYPE: Release + +jobs: + build: + + runs-on: windows-latest + + defaults: + run: + shell: msys2 {0} + steps: + - uses: actions/checkout@v1 + - uses: msys2/setup-msys2@v2 + with: + msystem: MINGW64 + update: true + + - name: Install dependencies + run: pacman -Sq --noconfirm git pkgconf mingw-w64-x86_64-{cmake,SDL2,qt5-static,libslirp,libarchive,toolchain} + + - name: Configure + working-directory: ${{runner.workspace}} + run: cmake -B build $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_STATIC=ON -DCMAKE_PREFIX_PATH=C:/tools/msys64/mingw64/qt5-static + + - name: Make + working-directory: ${{runner.workspace}}/build + run: cmake --build . + + - uses: actions/upload-artifact@v1 + with: + name: melonDS-windows-x86_64 + path: ${{runner.workspace}}\build\melonDS.exe From d89536e925e3cb375a7c5cc5f9add2c85dd89e3c Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 28 Dec 2023 14:56:04 +0100 Subject: [PATCH 20/20] Unify/simplify actions naming --- .github/workflows/build-appimage.yml | 2 +- .github/workflows/build-macos.yml | 8 ++++---- .github/workflows/build-ubuntu-aarch64.yml | 3 ++- .github/workflows/build-ubuntu.yml | 3 ++- .github/workflows/build-windows.yml | 2 +- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml index 7e7df5837f..be4494e827 100644 --- a/.github/workflows/build-appimage.yml +++ b/.github/workflows/build-appimage.yml @@ -1,4 +1,4 @@ -name: CMake Build (AppImage x86-64) +name: AppImage on: push: diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 0209c46f15..6d5693a167 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -1,4 +1,4 @@ -name: build-macos +name: macOS on: push: @@ -14,7 +14,7 @@ jobs: matrix: arch: [x86_64, arm64] - name: macOS ${{ matrix.arch }} + name: ${{ matrix.arch }} runs-on: macos-13 steps: - name: Check out sources @@ -45,7 +45,7 @@ jobs: path: macOS-${{ matrix.arch }}.zip universal-binary: - name: macOS universal binary + name: Universal binary needs: [build-macos] runs-on: macos-13 steps: @@ -81,4 +81,4 @@ jobs: failOnError: false name: | macOS-x86_64 - macOS-arm64 \ No newline at end of file + macOS-arm64 diff --git a/.github/workflows/build-ubuntu-aarch64.yml b/.github/workflows/build-ubuntu-aarch64.yml index 096bc0b9b1..43f4d8b662 100644 --- a/.github/workflows/build-ubuntu-aarch64.yml +++ b/.github/workflows/build-ubuntu-aarch64.yml @@ -1,4 +1,4 @@ -name: CMake Build (Ubuntu aarch64) +name: Ubuntu on: push: @@ -13,6 +13,7 @@ env: jobs: build: + name: aarch64 runs-on: ubuntu-20.04 container: ubuntu:20.04 diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu.yml index b6c50e9a0a..438fddd038 100644 --- a/.github/workflows/build-ubuntu.yml +++ b/.github/workflows/build-ubuntu.yml @@ -1,4 +1,4 @@ -name: CMake Build (Ubuntu x86-64) +name: Ubuntu on: push: @@ -10,6 +10,7 @@ on: jobs: build: + name: x86_64 runs-on: ubuntu-20.04 diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 70b11c05ea..e6846da7de 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -1,4 +1,4 @@ -name: CMake Build (Windows x86-64) +name: Windows on: push: