From 0014aa0f144d930272a87ed7026e8d7165278045 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sun, 3 May 2026 18:18:30 -0700 Subject: [PATCH] Match CI with bx. (#120) --- .github/workflows/main.yml | 64 +++++++++++++++++++++++++------------- makefile | 18 +++++++++++ 2 files changed, 60 insertions(+), 22 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e21963c..0ced300 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,10 +14,8 @@ jobs: fail-fast: true matrix: include: [ - { config: Debug, platform: Win32, bindir: 'win32_vs2022' }, - { config: Debug, platform: x64, bindir: 'win64_vs2022' }, - { config: Release, platform: Win32, bindir: 'win32_vs2022' }, - { config: Release, platform: x64, bindir: 'win64_vs2022' }, + { config: Debug, platform: x64, bindir: 'win64_vs2022', genie-action: 'vs2022', solution-ext: 'sln' }, + { config: Release, platform: x64, bindir: 'win64_vs2022', genie-action: 'vs2022', solution-ext: 'sln' }, ] name: msvc-${{ matrix.config }}-${{ matrix.platform }} runs-on: windows-latest @@ -38,13 +36,12 @@ jobs: shell: cmd run: | cd bimg - ..\bx\tools\bin\windows\genie.exe --with-tools --with-shared-lib vs2022 - msbuild ".build/projects/vs2022/bimg.sln" /m /v:minimal /p:Configuration=${{ matrix.config }} /p:Platform=${{ matrix.platform }} + ..\bx\tools\bin\windows\genie.exe --with-tools --with-shared-lib ${{ matrix.genie-action }} + msbuild ".build/projects/${{ matrix.genie-action }}/bimg.${{ matrix.solution-ext }}" /m /v:minimal /p:Configuration=${{ matrix.config }} /p:Platform=${{ matrix.platform }} - name: Check shell: cmd run: | cd bimg - dir /s ".build\${{ matrix.bindir }}\bin" ".build\${{ matrix.bindir }}\bin\texturec${{ matrix.config }}.exe" --version mingw: strategy: @@ -83,7 +80,6 @@ jobs: shell: cmd run: | cd bimg - dir /s ".build\${{ matrix.bindir }}\bin" ".build\${{ matrix.bindir }}\bin\texturecRelease.exe" --version linux: strategy: @@ -116,18 +112,19 @@ jobs: - name: Check run: | cd bimg - ls -lash ".build/${{ matrix.bindir }}/bin" ".build/${{ matrix.bindir }}/bin/texturec${{ matrix.binsuffix }}" --version osx: strategy: fail-fast: true matrix: include: [ - { config: debug, binsuffix: Debug }, - { config: release, binsuffix: Release }, + { runs-on: macos-13, arch: osx-x64, bindir: osx-x64, config: debug, binsuffix: Debug }, + { runs-on: macos-13, arch: osx-x64, bindir: osx-x64, config: release, binsuffix: Release }, + { runs-on: macos-14, arch: osx-arm64, bindir: osx-arm64, config: debug, binsuffix: Debug }, + { runs-on: macos-14, arch: osx-arm64, bindir: osx-arm64, config: release, binsuffix: Release }, ] - name: osx-arm64-${{ matrix.config }} - runs-on: macos-14 + name: osx-${{ matrix.arch }}-${{ matrix.config }} + runs-on: ${{ matrix.runs-on }} steps: - name: Checkout bx uses: actions/checkout@v6 @@ -142,20 +139,20 @@ jobs: - name: Build run: | cd bimg - make -j$(sysctl -n hw.physicalcpu) osx-arm64-${{ matrix.config }} + make -j$(sysctl -n hw.physicalcpu) ${{ matrix.arch }}-${{ matrix.config }} - name: Check run: | cd bimg - ls -lash ".build/osx-arm64/bin" - ".build/osx-arm64/bin/texturec${{ matrix.binsuffix }}" --version + ".build/${{ matrix.bindir }}/bin/texturec${{ matrix.binsuffix }}" --version android: strategy: fail-fast: true matrix: include: [ - { platform: arm64 }, + { project: android-arm, bindir: android-arm }, + { project: android-arm64, bindir: android-arm64 }, ] - name: android-${{ matrix.platform }} + name: ${{ matrix.project }} runs-on: ubuntu-24.04 steps: - name: Checkout bx @@ -172,7 +169,6 @@ jobs: id: setup-ndk with: ndk-version: r27c - add-to-path: false - name: Build env: ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }} @@ -180,8 +176,32 @@ jobs: ANDROID_NDK_ARM64: ${{ steps.setup-ndk.outputs.ndk-path }} run: | cd bimg - make -j$(nproc) android-${{ matrix.platform }} - - name: Check + make -j$(nproc) ${{ matrix.project }}-release + emscripten: + strategy: + fail-fast: true + matrix: + include: [ + { config: debug, binsuffix: Debug }, + { config: release, binsuffix: Release }, + ] + name: wasm-${{ matrix.config }} + runs-on: ubuntu-24.04 + steps: + - name: Checkout bx + uses: actions/checkout@v6 + with: + repository: bkaradzic/bx + path: bx + - name: Checkout bimg + uses: actions/checkout@v6 + with: + repository: bkaradzic/bimg + path: bimg + - uses: mymindstorm/setup-emsdk@v14 + with: + version: 5.0.2 + - name: Build run: | cd bimg - ls -lash ".build/android-${{ matrix.platform }}/bin" + make -j$(nproc) wasm-${{ matrix.config }} EMSCRIPTEN=$EMSDK/upstream/emscripten diff --git a/makefile b/makefile index 0ff1e00..faf5371 100644 --- a/makefile +++ b/makefile @@ -41,12 +41,22 @@ projgen: ## Generate project files for all configurations. $(GENIE) --with-tools --with-shared-lib --gcc=linux-gcc gmake $(GENIE) --with-tools --with-shared-lib --gcc=linux-clang gmake $(GENIE) --with-tools --with-shared-lib --gcc=osx-arm64 gmake + $(GENIE) --with-tools --with-shared-lib --gcc=osx-x64 gmake $(GENIE) --with-tools --with-shared-lib --xcode=osx xcode9 $(GENIE) --with-tools --with-shared-lib --xcode=ios xcode9 + $(GENIE) --with-shared-lib --gcc=android-arm gmake $(GENIE) --with-shared-lib --gcc=android-arm64 gmake $(GENIE) --gcc=ios-arm64 gmake $(GENIE) --gcc=rpi gmake +.build/projects/gmake-android-arm: + $(GENIE) --gcc=android-arm --with-shared-lib gmake +android-arm-debug: .build/projects/gmake-android-arm ## Build - Android ARM Debug + $(MAKE) -R -C .build/projects/gmake-android-arm config=debug +android-arm-release: .build/projects/gmake-android-arm ## Build - Android ARM Release + $(MAKE) -R -C .build/projects/gmake-android-arm config=release +android-arm: android-arm-debug android-arm-release ## Build - Android ARM Debug and Release + .build/projects/gmake-android-arm64: $(GENIE) --gcc=android-arm64 --with-shared-lib gmake android-arm64-debug: .build/projects/gmake-android-arm64 ## Build - Android ARM64 Debug @@ -123,6 +133,14 @@ osx-arm64-release: .build/projects/gmake-osx-arm64 ## Build - macOS ARM Release $(MAKE) -C .build/projects/gmake-osx-arm64 config=release osx-arm64: osx-arm64-debug osx-arm64-release ## Build - macOS ARM Debug and Release +.build/projects/gmake-osx-x64: + $(GENIE) --with-tools --with-shared-lib --gcc=osx-x64 gmake +osx-x64-debug: .build/projects/gmake-osx-x64 ## Build - macOS x64 Debug + $(MAKE) -C .build/projects/gmake-osx-x64 config=debug +osx-x64-release: .build/projects/gmake-osx-x64 ## Build - macOS x64 Release + $(MAKE) -C .build/projects/gmake-osx-x64 config=release +osx-x64: osx-x64-debug osx-x64-release ## Build - macOS x64 Debug and Release + .build/projects/gmake-ios-arm64: $(GENIE) --gcc=ios-arm64 gmake ios-arm64-debug: .build/projects/gmake-ios-arm64 ## Build - iOS ARM64 Debug