diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ca6e4e8..c0b4760 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,21 +8,25 @@ on: - main pull_request: +env: + EM_VERSION: 4.0.8 + EM_CACHE_FOLDER: 'emsdk-cache' + jobs: build: name: build runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - - uses: actions/setup-python@v1 + - uses: actions/setup-python@v5 with: python-version: '3.x' - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 with: submodules: true - - name: install packages (linux) run: | sudo apt-get update @@ -38,7 +42,7 @@ jobs: if: matrix.os == 'windows-latest' - name: download sdl2 (windows) - uses: albin-johansson/download-sdl2@v1 + uses: albin-johansson/download-sdl2@v2 with: version: 2.0.14 sources_destination: . @@ -65,35 +69,46 @@ jobs: python scripts/tester.py -vv --exe bin/binjgb-tester if: matrix.os != 'windows-latest' - build-wasm: - name: build-wasm + build-wasm-variants: + name: build-${{ matrix.target }} runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + target: [wasm, rgbds-live, gbstudio] + include: + - target: wasm + cmake_flags: "" + - target: rgbds-live + cmake_flags: '-DWERROR=ON -DRGBDS_LIVE=ON -DCMAKE_C_FLAGS="-DBREAKPOINTS_MAX_BANKS_NUMBER=256"' + - target: gbstudio + cmake_flags: "-DWERROR=ON -DGBSTUDIO=ON" + steps: - - uses: actions/checkout@v1 - with: - submodules: true + - uses: actions/checkout@v4 + with: + submodules: true - - name: install packages - run: sudo apt-get install ninja-build + - name: install packages + run: sudo apt-get install ninja-build - - name: emsdk install - run: | - mkdir $HOME/emsdk - git clone --depth 1 https://github.com/emscripten-core/emsdk.git $HOME/emsdk - $HOME/emsdk/emsdk update-tags - $HOME/emsdk/emsdk install tot - $HOME/emsdk/emsdk activate tot + - name: setup cache + uses: actions/cache@v4 + with: + path: ${{ env.EM_CACHE_FOLDER }} + key: ${{ env.EM_VERSION }}-${{ runner.os }} - - name: update path - run: echo "PATH=$PATH:$HOME/emsdk" >> $GITHUB_ENV + - name: emsdk install + uses: mymindstorm/setup-emsdk@v14 + with: + version: ${{ env.EM_VERSION }} + actions-cache-folder: ${{ env.EM_CACHE_FOLDER }} - - name: mkdir - run: mkdir -p out + - name: mkdir + run: mkdir -p out - - name: cmake - run: cmake -S . -B out -G Ninja -DCMAKE_TOOLCHAIN_FILE=$HOME/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_BUILD_TYPE=Release -DWASM=true + - name: cmake + run: emcmake cmake -S . -B out -G Ninja -DCMAKE_BUILD_TYPE=Release -DWASM=true ${{ matrix.cmake_flags }} - - name: build - run: | - source $HOME/emsdk/emsdk_env.sh - cmake --build out + - name: build + run: emmake cmake --build out diff --git a/scripts/build_tests.py b/scripts/build_tests.py index c3c7122..573d417 100755 --- a/scripts/build_tests.py +++ b/scripts/build_tests.py @@ -56,7 +56,7 @@ def BuildWlaGb(): Run('cmake', '-G', 'NMake Makefiles', '-DCMAKE_BUILD_TYPE=Release', WLA_DX_DIR, cwd=WLA_DX_BUILD_DIR) Run('nmake', cwd=WLA_DX_BUILD_DIR) else: - Run('cmake', WLA_DX_DIR, cwd=WLA_DX_BUILD_DIR) + Run('cmake', '-DCMAKE_POLICY_VERSION_MINIMUM=3.5', '-DCMAKE_C_FLAGS=-Wno-strict-prototypes', WLA_DX_DIR, cwd=WLA_DX_BUILD_DIR) Run('make', cwd=WLA_DX_BUILD_DIR) # Test that wla-gb was build OK. Run(os.path.join(WLA_DX_BIN_DIR, 'wla-gb'))