From: <al...@us...> - 2023-03-19 18:47:30
|
This is an automated email from the git hooks/post-receive-user script. allura pushed a commit to branch master in repository fuse. View the commit online: https://sourceforge.net/p/fuse-emulator/fuse/ci/089c82ce8e2f2dfc54898e9e4ef80c803a9b32eb/ commit 089c82ce8e2f2dfc54898e9e4ef80c803a9b32eb Author: Miroslav Ďurčík <743...@us...> AuthorDate: Sun Mar 5 19:45:34 2023 +0100 Arki55/features/t9 GitHub build checks fuse App ==> arki55/github-workflows https://sourceforge.net/p/arki55-fuse-mod/tickets/9/ feature: GitHub workflow build scripts for FUSE App - for linux, WII, WIN32 and MacOS --- .github/workflows/build_linux.yml | 21 +-- .../{_build_linux_sub.yml => build_linux_sub.yml} | 8 +- .../workflows/{build_linux.yml => build_macos.yml} | 73 ++++----- .../{_build_linux_sub.yml => build_macos_sub.yml} | 68 ++++++--- .github/workflows/build_wii.yml | 50 +++++++ .github/workflows/build_wii_sub.yml | 133 +++++++++++++++++ .github/workflows/build_windows.yml | 67 +++++++++ .github/workflows/build_windows_sub.yml | 163 +++++++++++++++++++++ 8 files changed, 503 insertions(+), 80 deletions(-) diff --git a/.github/workflows/build_linux.yml b/.github/workflows/build_linux.yml index 3a177eb1..4cd04b26 100644 --- a/.github/workflows/build_linux.yml +++ b/.github/workflows/build_linux.yml @@ -6,18 +6,19 @@ on: [push, pull_request] jobs: libspectrum: - # Reuse libspectrum's build wokflow and artefact + # Reuse libspectrum's build wokflow and artefact (all libs enabled, real glib) name: "Libspectrum lib (Linux)" - uses: arki55/fuse-libspectrum/.github/workflows/build_linux.yml@arki55/github-workflows + uses: arki55/fuse-libspectrum/.github/workflows/build_linux_sub.yml@arki55/github-workflows with: branch: arki55/github-workflows + key: fuse-app # repo name is taken from var.LIBSPECTRUM_REPO # Default build without any configure params (xlib) default-ui: name: "Fuse Default UI (Linux)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_linux_sub.yml with: name: Default dependencies: "libaudiofile-dev" @@ -32,7 +33,7 @@ jobs: null-ui: name: "Fuse NULL UI (Linux)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_linux_sub.yml with: name: "NULL UI" dependencies: "libaudiofile-dev" @@ -43,7 +44,7 @@ jobs: gtk3-ui: name: "Fuse GTK 3 UI (Linux)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_linux_sub.yml with: name: GTK3 UI dependencies: "libaudiofile-dev gtk3.0 libgtk-3-dev" @@ -55,7 +56,7 @@ jobs: sdl1-ui: name: "Fuse SDL 1 UI + sound (Linux)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_linux_sub.yml with: name: SDL1 UI dependencies: "libaudiofile-dev libsdl1.2-dev" @@ -68,7 +69,7 @@ jobs: sdl2-ui: name: "Fuse SDL 2 UI + sound (Linux) (not supported yet)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_linux_sub.yml with: name: SDL2 UI (not supported yet) dependencies: "libaudiofile-dev libsdl2-dev libsdl1.2-dev" @@ -85,7 +86,7 @@ jobs: fb-ui: name: "Fuse FB UI (Linux) (deprecated)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_linux_sub.yml with: name: "FB UI (deprecated)" dependencies: "libaudiofile-dev libgpm-dev" @@ -96,7 +97,7 @@ jobs: xlib-ui: name: "Fuse X-lib UI (Linux) (deprecated)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_linux_sub.yml with: name: X-lib UI (deprecated) dependencies: "libaudiofile-dev" @@ -107,7 +108,7 @@ jobs: gtk2-ui: name: "Fuse GTK 2 UI (Linux) (deprecated)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_linux_sub.yml with: name: GTK2 UI (deprecated) dependencies: "libaudiofile-dev gtk2.0 libgtk2.0-dev" diff --git a/.github/workflows/_build_linux_sub.yml b/.github/workflows/build_linux_sub.yml similarity index 93% copy from .github/workflows/_build_linux_sub.yml copy to .github/workflows/build_linux_sub.yml index d2b1f805..f6cdd446 100644 --- a/.github/workflows/_build_linux_sub.yml +++ b/.github/workflows/build_linux_sub.yml @@ -49,15 +49,13 @@ jobs: - name: (3) Download libspectrum artefact uses: actions/download-artifact@v3 with: - name: libspectrum-compiled-linux + name: libspectrum-installed-linux-fuse-app path: libspectrum - name: (4) Install libspectrum from artefact run: | - cd libspectrum - tar -xvf libspectrum-compiled-linux.tar - sudo make install-strip - cd .. + # Extract (-x) files into /usr/local + sudo tar --directory / -xvf libspectrum/libspectrum-installed-linux.tar echo "Done" - name: (5) Autogen.sh diff --git a/.github/workflows/build_linux.yml b/.github/workflows/build_macos.yml similarity index 50% copy from .github/workflows/build_linux.yml copy to .github/workflows/build_macos.yml index 3a177eb1..787071e9 100644 --- a/.github/workflows/build_linux.yml +++ b/.github/workflows/build_macos.yml @@ -1,64 +1,66 @@ -name: Fuse App For Linux -run-name: Build Fuse App for Linux / ${{ github.actor }} / +name: Fuse App For MacOS +run-name: Build Fuse App for MacOS / ${{ github.actor }} / # Executed upon each commit pushed, merge commit in PR on: [push, pull_request] jobs: libspectrum: - # Reuse libspectrum's build wokflow and artefact - name: "Libspectrum lib (Linux)" - uses: arki55/fuse-libspectrum/.github/workflows/build_linux.yml@arki55/github-workflows + # Reuse libspectrum's build wokflow and artefact (all libs enabled, real glib) + name: "Libspectrum lib (MacOS)" + uses: arki55/fuse-libspectrum/.github/workflows/build_macos_sub.yml@arki55/github-workflows with: branch: arki55/github-workflows + key: fuse-app # repo name is taken from var.LIBSPECTRUM_REPO # Default build without any configure params (xlib) default-ui: - name: "Fuse Default UI (Linux)" + name: "Fuse Default UI (MacOS)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_macos_sub.yml with: name: Default - dependencies: "libaudiofile-dev" + dependencies: "" configure_params: "" verify_ui: "xlib" ######################################### -### SUPPORTED Linux UI configurations ### +### SUPPORTED MacOS UI configurations ### ######################################### - # NULL UI + # NULL UI + sound null-ui: - name: "Fuse NULL UI (Linux)" + name: "Fuse NULL UI + sound (MacOS)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_macos_sub.yml with: name: "NULL UI" - dependencies: "libaudiofile-dev" - configure_params: "--with-null-ui" + dependencies: "" + configure_params: "--with-null-ui --with-audio-driver=null" verify_ui: "null" + verify_audio: "null" # GTK 3 UI gtk3-ui: - name: "Fuse GTK 3 UI (Linux)" + name: "Fuse GTK 3 UI (MacOS)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_macos_sub.yml with: name: GTK3 UI - dependencies: "libaudiofile-dev gtk3.0 libgtk-3-dev" + dependencies: "gtk+3" configure_params: "--with-gtk" verify_ui: "gtk" verify_other: "Using GTK 3: yes" # SDL 1 UI + Sound sdl1-ui: - name: "Fuse SDL 1 UI + sound (Linux)" + name: "Fuse SDL 1 UI + sound (MacOS)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_macos_sub.yml with: name: SDL1 UI - dependencies: "libaudiofile-dev libsdl1.2-dev" + dependencies: "sdl12-compat" configure_params: "--with-sdl --disable-sdl2" verify_ui: "sdl" verify_audio: "sdl" @@ -66,51 +68,40 @@ jobs: # SDL 2 UI + Sound (not supported for UI yet) sdl2-ui: - name: "Fuse SDL 2 UI + sound (Linux) (not supported yet)" + name: "Fuse SDL 2 UI + sound (MacOS) (not supported yet)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_macos_sub.yml with: name: SDL2 UI (not supported yet) - dependencies: "libaudiofile-dev libsdl2-dev libsdl1.2-dev" + dependencies: "sdl2 sdl12-compat" configure_params: "--with-sdl" verify_ui: "sdl" verify_audio: "sdl" verify_other: "SDL 2 not supported for the UI, using SDL 1 instead" ########################################## -### DEPRECATED Linux UI configurations ### +### DEPRECATED MacOS UI configurations ### ########################################## - # FB UI (deprecated) - fb-ui: - name: "Fuse FB UI (Linux) (deprecated)" - needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml - with: - name: "FB UI (deprecated)" - dependencies: "libaudiofile-dev libgpm-dev" - configure_params: "--with-fb" - verify_ui: "fb" - # XLIB UI (deprecated) xlib-ui: - name: "Fuse X-lib UI (Linux) (deprecated)" + name: "Fuse X-lib UI (MacOS) (deprecated)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_macos_sub.yml with: name: X-lib UI (deprecated) - dependencies: "libaudiofile-dev" + dependencies: "" configure_params: "--with-x" verify_ui: "xlib" # GTK 2 UI (deprecated) gtk2-ui: - name: "Fuse GTK 2 UI (Linux) (deprecated)" + name: "Fuse GTK 2 UI (MacOS) (deprecated)" needs: [libspectrum] - uses: ./.github/workflows/_build_linux_sub.yml + uses: ./.github/workflows/build_macos_sub.yml with: name: GTK2 UI (deprecated) - dependencies: "libaudiofile-dev gtk2.0 libgtk2.0-dev" + dependencies: "gtk+" configure_params: "--with-gtk --disable-gtk3" verify_ui: "gtk" verify_other: "Using GTK 3: no" diff --git a/.github/workflows/_build_linux_sub.yml b/.github/workflows/build_macos_sub.yml similarity index 56% rename from .github/workflows/_build_linux_sub.yml rename to .github/workflows/build_macos_sub.yml index d2b1f805..1e6733e9 100644 --- a/.github/workflows/_build_linux_sub.yml +++ b/.github/workflows/build_macos_sub.yml @@ -1,6 +1,6 @@ -# Reusable workflow for all Linux builds -name: Fuse App For Linux -run-name: Build Fuse App for Linux / ${{ github.actor }} / +# Reusable workflow for all MacOS builds +name: Fuse App For MacOS +run-name: Build Fuse App for MacOS / ${{ github.actor }} / on: workflow_call: @@ -22,7 +22,7 @@ on: verify_audio: type: string required: false - default: "oss" + default: "coreaudio" verify_other: type: string required: false @@ -31,45 +31,65 @@ on: jobs: build: name: Build App - runs-on: ubuntu-latest + runs-on: macos-latest timeout-minutes: 15 defaults: run: shell: bash steps: - - name: (1) Install dependencies - if: ${{ inputs.dependencies }} + - name: (1) Prepare environment run: | - sudo apt-get update - sudo apt-get install -y ${{ inputs.dependencies }} + echo -n "Current directory: " + pwd + ls -la - name: (2) Check out repository code uses: actions/checkout@v3 - - name: (3) Download libspectrum artefact + - name: (3) Install dependencies + run: | + echo "Inspect if brew installed .." + brew doctor || true + + echo "Upgrade bash (fix |& ) .." + brew install bash + which -a bash + bash --version + sudo sh -c 'echo /usr/local/bin/bash >> /etc/shells' + + echo "Installing dependencies .." + brew install \ + automake \ + audiofile \ + bzip2 \ + libgcrypt \ + glib \ + libxml2 \ + ${{ inputs.dependencies }} + autoreconf -i + + - name: (4) Download libspectrum artefact uses: actions/download-artifact@v3 with: - name: libspectrum-compiled-linux + name: libspectrum-installed-macos-fuse-app path: libspectrum - - name: (4) Install libspectrum from artefact + - name: (5) Install libspectrum from artefact run: | - cd libspectrum - tar -xvf libspectrum-compiled-linux.tar - sudo make install-strip - cd .. + # Extract (-x) files into /usr/local + sudo tar --directory / -xvf libspectrum/libspectrum-installed-macos.tar echo "Done" - - name: (5) Autogen.sh + - name: (6) Autogen.sh run: ./autogen.sh - - name: (6) Configure for Linux + - name: (7) Configure for MacOS run: | ./configure ${{ inputs.configure_params }} \ |& tee ./configure.out - - name: (7) Verify output from configure - # Most of the tested strings are common for all Linux builds + - name: (8) Verify output from configure + # Most of the tested strings are common for all MacOS builds # Only the strings related to UI selection differ run: | .github/scripts/in_config.sh "Fuse options" @@ -77,7 +97,7 @@ jobs: .github/scripts/in_config.sh "libxml2 support: yes" .github/scripts/in_config.sh "libpng support: yes" .github/scripts/in_config.sh "Spectranet support: yes" - .github/scripts/in_config.sh "SpeccyBoot support: yes" + .github/scripts/in_config.sh "SpeccyBoot support: no" .github/scripts/in_config.sh "TTX2000 S support: yes" .github/scripts/in_config.sh "Desktop integration: no" @@ -87,12 +107,12 @@ jobs: run: | .github/scripts/in_config.sh "${{ inputs.verify_other }}" - - name: (7) Make + - name: (9) Make run: make - - name: (8) Install + - name: (10) Install run: sudo make install - - name: (9) Finish + - name: (11) Finish run: | echo "🍏 Finishing with status ${{ job.status }}." diff --git a/.github/workflows/build_wii.yml b/.github/workflows/build_wii.yml new file mode 100644 index 00000000..378ff773 --- /dev/null +++ b/.github/workflows/build_wii.yml @@ -0,0 +1,50 @@ +name: Fuse App For WII +run-name: Build Fuse App for WII / ${{ github.actor }} / + +# Executed upon each commit pushed, merge commit in PR +on: [push, pull_request] + +jobs: + libspectrum: + # Reuse libspectrum's build wokflow and artefact + # Only one case possible - without any libs, fake glib + name: "Libspectrum lib (WII)" + uses: arki55/fuse-libspectrum/.github/workflows/build_wii_sub.yml@arki55/github-workflows + with: + branch: arki55/github-workflows + key: fuse-app + use_zlib: false + use_bzip2: false + use_libgcrypt: false + use_libaudiofile: false + use_fake_glib: true + # repo name is taken from var.LIBSPECTRUM_REPO + +######################################### +### SUPPORTED WII UI configurations ### +######################################### + +### FIXME: Needs "yacc" +# # NULL UI + sound +# null-ui: +# name: "Fuse NULL UI (WII)" +# needs: [libspectrum] +# uses: ./.github/workflows/build_wii_sub.yml +# with: +# name: "NULL UI" +# dependencies: "" +# configure_params: "--with-null-ui --with-audio-driver=null" +# verify_ui: "null" +# verify_audio: "null" + + # WII UI + wii-ui: + name: "Fuse WII UI (WII)" + needs: [libspectrum] + uses: ./.github/workflows/build_wii_sub.yml + with: + name: GTK3 UI + dependencies: "" + configure_params: "--with-wii" + verify_ui: "wii" + verify_audio: "oss" diff --git a/.github/workflows/build_wii_sub.yml b/.github/workflows/build_wii_sub.yml new file mode 100644 index 00000000..9ac83566 --- /dev/null +++ b/.github/workflows/build_wii_sub.yml @@ -0,0 +1,133 @@ +# Reusable workflow for all WII builds +name: Fuse App For WII +run-name: Build Fuse App for WII / ${{ github.actor }} / + +on: + workflow_call: + inputs: + name: + type: string + required: true + dependencies: + type: string + required: false + default: "" + configure_params: + type: string + required: false + default: "" + verify_ui: + type: string + required: true + verify_audio: + type: string + required: false + default: "oss" + verify_other: + type: string + required: false + default: "" + +jobs: + build: + name: Build App + runs-on: ubuntu-latest + timeout-minutes: 15 + container: devkitpro/devkitppc + env: + PKG_CONFIG_PATH: /opt/devkitpro/devkitPPC/lib/pkgconfig + defaults: + run: + shell: bash + steps: + - name: (1) Prepare environment + run: | + echo "Available pacman packages:" + dkp-pacman -Sl + echo "" + + echo "Available devkitPro packages:" + dkp-pacman -Sl dkp-libs + echo "" + + - name: (2) Install dependencies + if: + run: | + echo "Installing dependencies .." + echo "Using devkitpro/devkitppc image" + sudo apt-get update + sudo apt-get -y install --no-install-recommends \ + wget tar autoconf automake libtool \ + ${{ inputs.dependencies }} && \ + sudo rm -rf /var/lib/apt/lists/* + echo "Done." + + - name: (3) Check out repository code + uses: actions/checkout@v3 + + - name: (4) Download libspectrum artefact + uses: actions/download-artifact@v3 + with: + name: libspectrum-installed-wii-fuse-app + path: libspectrum + + - name: (5) Install libspectrum from artefact + run: | + # Extract (-x) files into /opt/devkitpro/devkitPPC/ + echo "Extract libspectrum lib files .." + sudo tar --directory / -xvf libspectrum/libspectrum-installed-wii.tar + + echo "Verify if files are there .." + ls -la -R /opt/devkitpro/devkitPPC/ + + echo "Done" + + - name: (6) Autogen.sh + run: ./autogen.sh + + - name: (7) Configure for WII + run: | + ./configure \ + --target=powerpc-eabi \ + --host=powerpc-eabi \ + --prefix=$DEVKITPPC \ + --without-gpm \ + --without-libxml2 \ + --without-x \ + ${{ inputs.configure_params }} \ + |& tee ./configure.out + + - name: (8) Verify output from configure + # Most of the tested strings are common for all WII builds + # Only the strings related to UI selection differ + run: | + .github/scripts/in_config.sh "Fuse options" + .github/scripts/in_config.sh "zlib support: no" + .github/scripts/in_config.sh "libxml2 support: no" + .github/scripts/in_config.sh "libpng support: no" + .github/scripts/in_config.sh "Spectranet support: yes" + .github/scripts/in_config.sh "SpeccyBoot support: yes" + .github/scripts/in_config.sh "TTX2000 S support: yes" + .github/scripts/in_config.sh "Desktop integration: no" + + .github/scripts/in_config.sh "User interface: ${{ inputs.verify_ui }}" + .github/scripts/in_config.sh "Selected audio driver: ${{ inputs.verify_audio }}" + - if: ${{ inputs.verify_other }} + run: | + .github/scripts/in_config.sh "${{ inputs.verify_other }}" + + - name: (9) Make + run: | + EXEEXT=".elf" make -e + + if [[ ! -f "fuse.elf" ]]; then + echo "Fuse.elf was not created!" + exit -2 + fi + + - name: (10) Install + run: sudo make install + + - name: (11) Finish + run: | + echo "🍏 Finishing with status ${{ job.status }}." diff --git a/.github/workflows/build_windows.yml b/.github/workflows/build_windows.yml new file mode 100644 index 00000000..7d9c00c4 --- /dev/null +++ b/.github/workflows/build_windows.yml @@ -0,0 +1,67 @@ +name: Fuse App For Windows +run-name: Build Fuse App for Windows / ${{ github.actor }} / + +# Executed upon each commit pushed, merge commit in PR +on: [push, pull_request] + +jobs: + libspectrum: + # Reuse libspectrum's build wokflow and artefact (all libs enabled, fake glib) + name: "Libspectrum lib (Windows)" + uses: arki55/fuse-libspectrum/.github/workflows/build_windows_sub.yml@arki55/github-workflows + with: + branch: arki55/github-workflows + key: fuse-app + # repo name is taken from var.LIBSPECTRUM_REPO + +######################################## +### SUPPORTED Windows configurations ### +######################################## + + # Win32 / 1 + win32-ui-default: + name: "Fuse Win32 UI + libxml2 (Windows)" + needs: [libspectrum] + uses: ./.github/workflows/build_windows_sub.yml + with: + dependencies: "mingw64-i686-libxml2" + configure_params: "--with-win32" + verify_ui: "win32" + verify_libxml2: "yes" + verify_audio: "directsound" + + # Win32 / 2 + win32-ui-no-libxml2: + name: "Fuse Win32 UI w/o libxml2 (Windows)" + needs: [libspectrum] + uses: ./.github/workflows/build_windows_sub.yml + with: + dependencies: "" + configure_params: "--with-win32 --without-libxml2" + verify_ui: "win32" + verify_libxml2: "no" + verify_audio: "directsound" + + # Win32 / 3 + win32-ui-win32-sound: + name: "Fuse Win32 UI + win32sound (Windows)" + needs: [libspectrum] + uses: ./.github/workflows/build_windows_sub.yml + with: + dependencies: "" + configure_params: "--with-win32 --with-audio-driver=win32sound" + verify_ui: "win32" + verify_libxml2: "no" + verify_audio: "win32sound" + + # Win32 / 4 + win32-ui-null-sound: + name: "Fuse Win32 UI + null sound (Windows)" + needs: [libspectrum] + uses: ./.github/workflows/build_windows_sub.yml + with: + dependencies: "" + configure_params: "--with-win32 --with-audio-driver=null" + verify_ui: "win32" + verify_libxml2: "no" + verify_audio: "null" diff --git a/.github/workflows/build_windows_sub.yml b/.github/workflows/build_windows_sub.yml new file mode 100644 index 00000000..7859aa5a --- /dev/null +++ b/.github/workflows/build_windows_sub.yml @@ -0,0 +1,163 @@ +# Reusable workflow for all Windows builds +name: Fuse App For Windows +run-name: Build Fuse App for windows / ${{ github.actor }} / + +on: + workflow_call: + inputs: + dependencies: + type: string + required: false + default: "" + configure_params: + type: string + required: false + default: "" + verify_ui: + type: string + required: true + verify_audio: + type: string + required: false + default: "directsound" + verify_libxml2: + type: string + required: false + default: "no" + verify_other: + type: string + required: false + default: "" + +jobs: + build: + name: Build App + runs-on: windows-latest + timeout-minutes: 15 + env: + CYGWIN_NOWINPATH: 1 + + # Custom build libraries + CPPFLAGS: "-I/usr/local/i686-w64-mingw32/include" + LDFLAGS: "-L/usr/local/i686-w64-mingw32/lib" + PKG_CONFIG_LIBDIR: "/usr/local/i686-w64-mingw32/lib/pkgconfig:/usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig" + steps: + - name: (1) Prepare environment + run: | + cd ${GITHUB_WORKSPACE} + + echo "Adjust autocrlf in git.." + git config --global core.autocrlf input + + echo -n "Current directory: " + pwd + ls -la + shell: bash + + - name: (2) Check out repository code + uses: actions/checkout@v3 + + - name: (3) Install Cygwin (32 bit) with libs + uses: cygwin/cygwin-install-action@master + with: + platform: x86 + packages: | + autoconf \ + automake \ + bison \ + flex \ + gcc-core \ + gcc-g++ \ + gettext-devel \ + libtool \ + make \ + mingw64-i686-bzip2 \ + mingw64-i686-gcc-core \ + mingw64-i686-gcc-g++ \ + mingw64-i686-libgcrypt \ + mingw64-i686-libgpg-error \ + mingw64-i686-libpng \ + mingw64-i686-win-iconv \ + mingw64-i686-winpthread \ + mingw64-i686-zlib \ + mingw64-i686-audiofile \ + pkg-config \ + ${{ inputs.dependencies }} + + - name: (4) Download libspectrum artefact + uses: actions/download-artifact@v3 + with: + name: libspectrum-installed-windows-fuse-app + path: libspectrum + + - name: (5) Install libspectrum from artefact + run: | + cd ${GITHUB_WORKSPACE} + # Extract (-x) files into /usr/local (cannot work with root /) + mkdir /usr/local/i686-w64-mingw32 || true + tar --directory /usr/local/i686-w64-mingw32 -xvf libspectrum/libspectrum-installed-windows.tar + echo "Done" + shell: C:\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}' + + - name: (6) Autogen.sh + run: | + cd ${GITHUB_WORKSPACE} + echo "Running autogen.sh .." + ./autogen.sh + shell: C:\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}' + + - name: (7) Configure for Windows + run: | + cd ${GITHUB_WORKSPACE} + echo "Running configure .." + ./configure \ + --build=i686-pc-cygwin \ + --host=i686-w64-mingw32 \ + --prefix=/usr/local/i686-w64-mingw32 \ + --disable-static \ + ${{ inputs.configure_params }} \ + |& tee ./configure.out + shell: C:\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}' + + - name: (8) Verify output from configure + # Most of the tested strings are common for all Windows builds + # Only the strings related to UI selection differ + run: | + cd ${GITHUB_WORKSPACE} + + .github/scripts/in_config.sh "Fuse options" + .github/scripts/in_config.sh "zlib support: yes" + .github/scripts/in_config.sh "libpng support: yes" + .github/scripts/in_config.sh "Spectranet support: yes" + .github/scripts/in_config.sh "SpeccyBoot support: no" + .github/scripts/in_config.sh "TTX2000 S support: yes" + .github/scripts/in_config.sh "Desktop integration: no" + + .github/scripts/in_config.sh "User interface: ${{ inputs.verify_ui }}" + .github/scripts/in_config.sh "libxml2 support: ${{ inputs.verify_libxml2 }}" + .github/scripts/in_config.sh "Selected audio driver: ${{ inputs.verify_audio }}" + shell: C:\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}' + - if: ${{ inputs.verify_other }} + run: | + .github/scripts/in_config.sh "${{ inputs.verify_other }}" + shell: bash + + - name: (9) Make + run: | + cd ${GITHUB_WORKSPACE} + + echo "Running make .." + make + shell: C:\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}' + + - name: (10) Install + run: | + cd ${GITHUB_WORKSPACE} + + echo "Running make dist-win32-dir .." + make install dist-win32-dir + shell: C:\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}' + + - name: (11) Finish + run: | + echo "🍏 Finishing with status ${{ job.status }}." |