name: CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build-windows:
    name: Build for Visual Studio
    runs-on: windows-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup MSBuild
        uses: microsoft/setup-msbuild@v2

      - name: x86
        run: |
          cmake --preset windows-vs2022-x86
          cmake --build --preset windows-vs2022-x86 --config Release --parallel
          cp out/build/windows-vs2022-x86/Release/strato.lib strato-x86.lib

      - name: x64
        run: |
          cmake --preset windows-vs2022-x64
          cmake --build --preset windows-vs2022-x64 --config Release --parallel
          cp out/build/windows-vs2022-x64/Release/strato.lib strato-x64.lib

      - name: arm64
        run: |
          cmake --preset windows-vs2022-arm64
          cmake --build --preset windows-vs2022-arm64 --config Release --parallel
          cp out/build/windows-vs2022-arm64/Release/strato.lib strato-arm64.lib

      - name: Build nuget
        run: |
          mkdir build
          mkdir build/native
          mkdir build/native/include
          mkdir build/native/include/strato
          mkdir build/native/lib
          mkdir build/native/lib/x86
          mkdir build/native/lib/x64
          mkdir build/native/lib/arm64
          cp include/strato/strato.h build/native/include/strato/
          cp include/strato/c89compat.h build/native/include/strato/
          cp out/build/windows-vs2022-x86/Release/strato.lib  build/native/lib/x86/
          cp out/build/windows-vs2022-x64/Release/strato.lib  build/native/lib/x64/
          cp out/build/windows-vs2022-arm64/Release/strato.lib build/native/lib/arm64/
          cp resources/windows/StratoHAL.nuspec ./
          nuget pack StratoHAL.nuspec

      - name: Upload Windows artifacts
        uses: actions/upload-artifact@v4
        with:
          name: windows
          path: |
            StratoHAL.1.0.0.nupkg
          if-no-files-found: error
          retention-days: 7

  build-mingw:
    name: Build for MinGW-w64
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Cache apt packages
        uses: actions/cache@v4
        with:
          path: /var/cache/apt/archives
          key: ${{ runner.os }}-apt-${{ hashFiles('**/apt-packages.txt') }}

      - name: Install deps
        run: |
          sudo apt-get update
          sudo apt-get install -y --no-install-recommends cmake ninja-build mingw-w64

      - name: Build
        run: |
          cmake --preset windows-mingw-x86_64
          cmake --build --preset windows-mingw-x86_64
          cmake --preset windows-mingw-x86
          cmake --build --preset windows-mingw-x86

      - name: Make tar.gz
        run: |
          mkdir -p out

          mkdir -p out/i686-w64-mingw32/include/strato
          mkdir -p out/i686-w64-mingw32/lib/
          mkdir -p out/i686-w64-mingw32/lib/pkgconfig
          mkdir -p out/i686-w64-mingw32/share/cmake/Modules
          cp include/strato/strato.h out/i686-w64-mingw32/include/strato/
          cp include/strato/c89compat.h out/i686-w64-mingw32/include/strato/
          cp build-mingw-x86/libstrato.a out/i686-w64-mingw32/lib/
          cp build-mingw-x86/strato.pc out/i686-w64-mingw32/lib/pkgconfig/
          cp build-mingw-x86/stratopack.pc out/i686-w64-mingw32/lib/pkgconfig/
          cp cmake/modules/FindStratoHAL.cmake out/i686-w64-mingw32/share/cmake/Modules/

          mkdir -p out/x86_64-w64-mingw32/include/strato
          mkdir -p out/x86_64-w64-mingw32/lib/
          mkdir -p out/x86_64-w64-mingw32/lib/pkgconfig
          mkdir -p out/x86_64-w64-mingw32/share/cmake/Modules
          cp include/strato/strato.h out/x86_64-w64-mingw32/include/strato/
          cp include/strato/c89compat.h out/x86_64-w64-mingw32/include/strato/
          cp build-mingw-x86_64/libstrato.a out/x86_64-w64-mingw32/lib/
          cp build-mingw-x86_64/strato.pc out/x86_64-w64-mingw32/lib/pkgconfig/
          cp build-mingw-x86_64/stratopack.pc out/x86_64-w64-mingw32/lib/pkgconfig/
          cp cmake/modules/FindStratoHAL.cmake out/x86_64-w64-mingw32/share/cmake/Modules/

          cd out
          tar czf ../strato-mingw-w64.tar.gz *
          cd ..

      - name: Upload artifact
        uses: actions/upload-artifact@v4
        with:
          name: mingw
          path: |
            strato-mingw-w64.tar.gz
          if-no-files-found: error
          retention-days: 7

  build-macos:
    name: Build for macOS and iOS
    runs-on: macos-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Build macOS
        run: |
          cmake --preset macos-arm64
          cmake --build --preset macos-arm64
          cmake --preset macos-x86_64
          cmake --build --preset macos-x86_64

      - name: Build Universal Binary 2
        run: |
          lipo -create -output libstrato.a build-macos-arm64/libstrato.a build-macos-x86_64/libstrato.a

      - name: Build iOS
        run: |
          cmake --preset ios-device
          cmake --build --preset ios-device
          cmake --preset ios-simulator
          cmake --build --preset ios-simulator

      - name: Build xcframework
        run: |
          xcodebuild -create-xcframework \
              -library libstrato.a -headers include \
              -library build-ios-device/libstrato.a -headers include \
              -library build-ios-simulator/libstrato.a -headers include \
              -output StratoHAL.xcframework
          zip -r StratoHAL.xcframework.zip StratoHAL.xcframework

      - name: Build tar.gz
        run: |
          mkdir -p out
          mkdir -p out/include/strato
          mkdir -p out/lib
          mkdir -p out/lib/pkgconfig
          mkdir -p out/share/cmake/Modules
          mkdir -p out/share/man/man1
          cp include/strato/strato.h out/include/strato/
          cp include/strato/c89compat.h out/include/strato/
          cp libstrato.a out/lib/
          cp build-macos-arm64/strato.pc out/lib/pkgconfig/
          cp build-macos-arm64/stratopack.pc out/lib/pkgconfig/
          cp cmake/modules/FindStratoHAL.cmake out/share/cmake/Modules/
          cd out
          tar czf ../strato-macos-universal.tar.gz *
          cd ..

      - name: Upload macOS
        uses: actions/upload-artifact@v4
        with:
          name: macos
          path: |
            StratoHAL.xcframework.zip
          if-no-files-found: error
          retention-days: 7

  build-linux:
    name: Build for Linux
    runs-on: ubuntu-24.04
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install deps
        run: |
          sudo apt-get update
          sudo apt-get install -y \
              git cmake ninja-build build-essential libasound2-dev \
              zlib1g-dev libpng-dev libjpeg-dev libwebp-dev libogg-dev \
              libvorbis-dev libfreetype-dev libgstreamer1.0-dev \
              libgstreamer-plugins-base1.0-dev libx11-dev libxpm-dev \
              libwayland-dev wayland-protocols libegl1-mesa-dev libegl-dev \
              libgles-dev libwayland-client0 libwayland-egl1 libdecor-0-dev

      - name: Build static
        run: |
          cmake --preset linux
          cmake --build --preset linux

      - name: Build shared
        run: |
          cmake --preset linux-debian
          cmake --build --preset linux-debian

      - name: Build tar.gz
        run: |
          mkdir -p out
          mkdir -p out/include/strato
          mkdir -p out/lib/x86_64-linux-gnu/
          mkdir -p out/lib/x86_64-linux-gnu/pkgconfig
          mkdir -p out/share/cmake/Modules
          cp include/strato/strato.h out/include/strato/
          cp include/strato/c89compat.h out/include/strato/
          cp build-linux/libstrato.a out/lib/x86_64-linux-gnu/
          cp build-linux/libstratopack.a out/lib/x86_64-linux-gnu/
          cp -d build-linux-debian/libstrato.so* out/lib/x86_64-linux-gnu/
          cp -d build-linux-debian/libstratopack.so out/lib/x86_64-linux-gnu/
          cp build-linux/strato.pc out/lib/x86_64-linux-gnu/pkgconfig/
          cp build-linux/stratopack.pc out/lib/x86_64-linux-gnu/pkgconfig/
          cp cmake/modules/FindStratoHAL.cmake out/share/cmake/Modules/
          cd out
          tar czf ../strato-linux-x86_64.tar.gz *
          cd ..

      - name: Upload artifact
        uses: actions/upload-artifact@v4
        with:
          name: linux
          path: |
            strato-linux-x86_64.tar.gz
          if-no-files-found: error
          retention-days: 7

  build-android:
    name: Build for Android
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install deps
        run: |
          sudo apt-get update
          sudo apt-get install -y cmake ninja-build

      - name: Setup for Android
        uses: nttld/setup-ndk@v1
        with:
          ndk-version: r28c

      - name: Build for Android
        run: |
          cmake --preset android-arm64
          cmake --build --preset android-arm64
          cmake --preset android-armv7
          cmake --build --preset android-armv7
          cmake --preset android-x86_64
          cmake --build --preset android-x86_64
          cmake --preset android-x86
          cmake --build --preset android-x86
          cmake --preset android-riscv64
          cmake --build --preset android-riscv64

      - name: Build class files
        run: |
          ANDROID_JAR="${ANDROID_SDK_ROOT}/platforms/android-35/android.jar"
          mkdir classes
          javac -d classes -cp $ANDROID_JAR src/MainActivity.java
          ls -l classes

      - name: Build AAR
        run: |
          mkdir -p aar_out/prefab/modules/strato/include
          mkdir -p aar_out/prefab/modules/strato/android.arm64-v8a
          mkdir -p aar_out/prefab/modules/strato/android.armeabi-v7a
          mkdir -p aar_out/prefab/modules/strato/android.x86_64
          mkdir -p aar_out/prefab/modules/strato/android.x86
          mkdir -p aar_out/prefab/modules/strato/android.riscv64

          cd classes
          jar cvf ../aar_out/classes.jar *
          cd ..

          cp -r include/* aar_out/prefab/modules/strato/include/
          cp build-android-arm64/libstrato.a aar_out/prefab/modules/strato/android.arm64-v8a/
          cp build-android-armv7/libstrato.a aar_out/prefab/modules/strato/android.armeabi-v7a/
          cp build-android-x86_64/libstrato.a aar_out/prefab/modules/strato/android.x86_64/
          cp build-android-x86/libstrato.a aar_out/prefab/modules/strato/android.x86/
          cp build-android-riscv64/libstrato.a aar_out/prefab/modules/strato/android.riscv64/

          echo '<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.noctvm.strato" />' > aar_out/AndroidManifest.xml
          echo '{"schema_version": 2, "name": "strato", "dependencies": []}' > aar_out/prefab/prefab.json
          echo '{"export_libraries": [], "library_name": "libstrato"}' > aar_out/prefab/modules/strato/module.json

          cd aar_out
          zip -r ../StratoHAL.aar *
          cd ..

      - name: Upload artifact
        uses: actions/upload-artifact@v4
        with:
          name: android
          path: |
            StratoHAL.aar
          if-no-files-found: error
          retention-days: 7

  build-openharmony:
    name: Build for OpenHarmony
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install deps
        run: |
          sudo apt-get update
          sudo apt-get install -y cmake ninja-build

      - name: Download OpenHarmony SDK
        run: |
          echo "Downloaing openharmony-native.tar.gz"
          wget -q https://noctvm.io/ci/openharmony-native.tar.gz
          tar xzf openharmony-native.tar.gz

      - name: Build for OpenHarmony
        run: |
          OH_NATIVE_SDK_ROOT="$PWD/openharmony-sdk-native" cmake --preset openharmony-arm64
          OH_NATIVE_SDK_ROOT="$PWD/openharmony-sdk-native" cmake --build --preset openharmony-arm64
          OH_NATIVE_SDK_ROOT="$PWD/openharmony-sdk-native" cmake --preset openharmony-x86_64
          OH_NATIVE_SDK_ROOT="$PWD/openharmony-sdk-native" cmake --build --preset openharmony-x86_64

      - name: Build tar.gz
        run: |
          mkdir -p out
          mkdir -p out/src/main/cpp/third_party/StratoHAL/include/strato
          mkdir -p out/src/main/cpp/third_party/StratoHAL/lib/arm64-v8a
          mkdir -p out/src/main/cpp/third_party/StratoHAL/lib/x86_64
          cp include/strato/strato.h out/src/main/cpp/third_party/StratoHAL/include/strato/
          cp include/strato/c89compat.h out/src/main/cpp/third_party/StratoHAL/include/strato/
          cp build-openharmony-arm64/libstrato.a out/src/main/cpp/third_party/StratoHAL/lib/arm64-v8a/
          cp build-openharmony-x86_64/libstrato.a out/src/main/cpp/third_party/StratoHAL/lib/x86_64/
          cp resources/openharmony/FindStratoHAL.cmake out/src/main/cpp/
          cd out
          tar czf ../strato-openharmony.tar.gz *
          cd ..

      - name: Upload artifact
        uses: actions/upload-artifact@v4
        with:
          name: openharmony
          path: |
            strato-openharmony.tar.gz
          if-no-files-found: error
          retention-days: 7

  build-wasm:
    name: Build for Wasm
    runs-on: ubuntu-24.04
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup for Wasm
        uses: mymindstorm/setup-emsdk@v14
        with:
          version: latest

      - name: Build for Wasm
        run: |
          cmake --preset wasm
          cmake --build --preset wasm
          cp build-wasm/libstrato.a libstrato-wasm.a

      - name: Build tar.gz
        run: |
          mkdir -p out
          mkdir -p out/include/strato
          mkdir -p out/lib
          cp include/strato/strato.h out/include/strato/
          cp include/strato/c89compat.h out/include/strato/
          cp build-wasm/libstrato.a out/lib/
          cd out
          tar czf ../strato-wasm.tar.gz *
          cd ..

      - name: Upload Wasm
        uses: actions/upload-artifact@v4
        with:
          name: wasm
          path: |
            strato-wasm.tar.gz
          if-no-files-found: error
          retention-days: 7

  build-unity:
    name: Build for Unity
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install apt deps
        run: |
          sudo apt-get update
          sudo apt-get install -y cmake ninja-build mingw-w64

      - name: Cache LLVM
        id: cache-llvm
        uses: actions/cache@v4
        with:
          path: llvm-21
          key: llvm-21

      - name: Install LLVM
        if: steps.cache-llvm.outputs.cache-hit != 'true'
        run: |
          curl -L -o llvm.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.8/LLVM-21.1.8-Linux-X64.tar.xz
          mkdir llvm-21 && tar -xJf llvm.tar.xz -C llvm-21 --strip-components=1

      - name: Setup PATH for LLVM
        run: |
          echo "`pwd`/llvm-21/bin" >> $GITHUB_PATH
          clang --version

      - name: Build for Unity
        run: |
          cmake --preset unity-win64
          cmake --build --preset unity-win64
          cmake --preset unity-switch
          cmake --build --preset unity-switch
          cmake --preset unity-ps5
          cmake --build --preset unity-ps5
          cmake --preset unity-xbox
          cmake --build --preset unity-xbox

      - name: Make a zip
        run: |
          mkdir -p out/include/strato/strato
          mkdir -p out/lib/x86_64
          mkdir -p out/lib/Switch
          mkdir -p out/lib/PS5
          mkdir -p out/lib/GameCoreXboxSeries
          mkdir -p out/lib/Common
          cp build-unity-win64/libstrato.a out/lib/x86_64/
          cp build-unity-switch/libstrato.a out/lib/Switch/
          cp build-unity-ps5/libstrato.a out/lib/PS5/
          cp build-unity-xbox/strato.lib out/lib/GameCoreXboxSeries/
          cd out
          zip -r ../strato-unity.zip *
          cd ..

      - name: Upload artifact
        uses: actions/upload-artifact@v4
        with:
          name: unity
          path: |
            strato-unity.zip
          if-no-files-found: error
          retention-days: 7

  build-pc98:
    name: Build for NEC PC-9801
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y cmake jlha-utils

      - name: Cache Watcom
        id: cache-watcom
        uses: actions/cache@v4
        with:
          path: openwatcom-1.9
          key: openwatcom-1.9

      - name: Configure OpenWatcom
        if: steps.cache-watcom.outputs.cache-hit != 'true'
        run: |
          wget https://noctvm.io/ci/openwatcom-1.9.tar.gz
          tar xzf openwatcom-1.9.tar.gz

      - name: Build
        run: |
          export WATCOM="$PWD/openwatcom-1.9"
          export INCLUDE="$WATCOM/h"
          export EDPATH="$WATCOM/eddat"
          export PATH="$WATCOM/binl:$WATCOM/binw:$PATH"
          echo "$WATCOM"
          ls -lha "$WATCOM/binl"
          command -v wcl386 || true
          command -v wlink || true
          cmake --preset pc98
          cmake --build --preset pc98

      - name: Make LZH
        run: |
          mkdir -p out/include/strato
          mkdir -p out/lib
          cp include/strato/strato.h out/include/strato/
          cp include/strato/c89compat.h out/include/strato/
          cp build-pc98/strato.lib out/lib/
          cd out
<<<<<<< HEAD
          jlha a ../strato-pc98.lzh *
=======
          jlha a ../strato-dos-pc98.lzh *
>>>>>>> 585da63aa9f4d975488b91cbea41ee405b6c178f
          cd ..

      - name: Upload binary
        uses: actions/upload-artifact@v4
        with:
          name: pc98
<<<<<<< HEAD
          path: strato-pc98.lzh
=======
          path: strato-dos-pc98.lzh

  build-pcat:
    name: Build for PC-AT
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y cmake jlha-utils

      - name: Cache Watcom
        id: cache-watcom
        uses: actions/cache@v4
        with:
          path: openwatcom-1.9
          key: openwatcom-1.9

      - name: Configure OpenWatcom
        if: steps.cache-watcom.outputs.cache-hit != 'true'
        run: |
          wget https://noctvm.io/ci/openwatcom-1.9.tar.gz
          tar xzf openwatcom-1.9.tar.gz

      - name: Build
        run: |
          export WATCOM="$PWD/openwatcom-1.9"
          export INCLUDE="$WATCOM/h"
          export EDPATH="$WATCOM/eddat"
          export PATH="$WATCOM/binl:$WATCOM/binw:$PATH"
          echo "$WATCOM"
          ls -lha "$WATCOM/binl"
          command -v wcl386 || true
          command -v wlink || true
          cmake --preset pcat
          cmake --build --preset pcat

      - name: Make ZIP
        run: |
          mkdir -p out/include/strato
          mkdir -p out/lib
          cp include/strato/strato.h out/include/strato/
          cp include/strato/c89compat.h out/include/strato/
          cp build-pcat/strato.lib out/lib/
          cd out
          zip -r ../strato-dos-pcat.zip *
          cd ..

      - name: Upload binary
        uses: actions/upload-artifact@v4
        with:
          name: pcat
          path: strato-dos-pcat.zip
>>>>>>> 585da63aa9f4d975488b91cbea41ee405b6c178f

  release:
    name: Create GitHub Release
    needs:
      - build-windows
      - build-mingw
      - build-linux
      - build-macos
      - build-wasm
      - build-android
      - build-openharmony
      - build-unity
      - build-pc98
<<<<<<< HEAD
=======
      - build-pcat
>>>>>>> 585da63aa9f4d975488b91cbea41ee405b6c178f
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Download Windows artifacts
        uses: actions/download-artifact@v4
        with:
          name: windows
          path: windows

      - name: Download mingw artifacts
        uses: actions/download-artifact@v4
        with:
          name: mingw
          path: mingw

      - name: Download macOS artifacts
        uses: actions/download-artifact@v4
        with:
          name: macos
          path: macos

      - name: Download Linux artifacts
        uses: actions/download-artifact@v4
        with:
          name: linux
          path: linux

      - name: Download wasm artifacts
        uses: actions/download-artifact@v4
        with:
          name: wasm
          path: wasm

      - name: Download Android artifacts
        uses: actions/download-artifact@v4
        with:
          name: android
          path: android

      - name: Download OpenHarmony artifacts
        uses: actions/download-artifact@v4
        with:
          name: openharmony
          path: openharmony

      - name: Download Unity artifacts
        uses: actions/download-artifact@v4
        with:
          name: unity
          path: unity

      - name: Download PC98 artifacts
        uses: actions/download-artifact@v4
        with:
          name: pc98
          path: pc98

      - name: Get current date
        id: date
        run: echo "DATE=$(date +'%Y%m%d')" >> $GITHUB_ENV

      - name: Short SHA
        run: echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV

      - name: Create GitHub Release
        uses: softprops/action-gh-release@v2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: nightly-${{ env.DATE }}-${{ env.SHORT_SHA }}
          name: StratoHAL-${{ env.DATE }}-${{ env.SHORT_SHA }}
          body: |
            StratoHAL 🌍🚀
            ==============
            
            `StratoHAL` is a portable hardware abstraction layer (HAL) for game applications.

            This is an automated nightly build. Not an official release.
            
<<<<<<< HEAD
            | OS          | File                             | Type             | Description                                  |
            |-------------|----------------------------------|------------------|----------------------------------------------|
            | Windows     | StratoHAL.1.0.0.nupkg            | NuGet Package    | Visual Studio 2022+                          |
            | Windows     | strato-mingw-w64.tar.gz          | Tarball          | MinGW-w64                                    |
            | macOS/iOS   | StratoHAL.xcframework.zip        | Xcode Framework  | macOS and iOS, Xcode                         |
            | macOS       | strato-macos-universal.tar.gz    | Tarball          | macOS (extract to /usr/local)                |
            | Linux       | strato-linux-x86_64.tar.gz       | Tarball          | Linux (extract to /usr/local)                |
            | Android     | StratoHAL.aar                    | AAR              | Android NDK                                  |
            | Wasm        | strato-wasm.tar.gz               | Tarball          | Emscripten                                   |
            | OpenHarmony | strato-openharmony.tar.gz        | Tarball          | OpenHarmony (HarmonyOS NEXT)                 |
            | PC-9801     | strato-pc98.lzh                  | Library          | PC-9801 MS-DOS DOS4GW                        |
=======
            | OS             | File                             | Type             | Description                            |
            |----------------|----------------------------------|------------------|----------------------------------------|
            | Windows        | StratoHAL.1.0.0.nupkg            | NuGet Package    | Visual Studio 2022+                    |
            | Windows        | strato-mingw-w64.tar.gz          | Tarball          | MinGW-w64                              |
            | macOS/iOS      | StratoHAL.xcframework.zip        | Xcode Framework  | macOS and iOS, Xcode                   |
            | macOS          | strato-macos-universal.tar.gz    | Tarball          | macOS (extract to /usr/local)          |
            | Linux          | strato-linux-x86_64.tar.gz       | Tarball          | Linux (extract to /usr/local)          |
            | Android        | StratoHAL.aar                    | AAR              | Android NDK                            |
            | Wasm           | strato-wasm.tar.gz               | Tarball          | Emscripten                             |
            | OpenHarmony    | strato-openharmony.tar.gz        | Tarball          | OpenHarmony (HarmonyOS NEXT)           |
            | MS-DOS PC-9801 | strato-dos-pc98.lzh              | LHA              | OpenWatcom, DOS4GW, GDC 640x400 4-bpp  |
            | MS-DOS PC/AT   | strato-dos-pcat.zip              | ZIP              | OpenWatcom, DOS4GW, VBE 640x480 24-bpp |
>>>>>>> 585da63aa9f4d975488b91cbea41ee405b6c178f

          files: |
            windows/StratoHAL.1.0.0.nupkg
            mingw/strato-mingw.tar.gz
            macos/StratoHAL.xcframework.zip
            macos/strato-macos-universal.tar.gz
            linux/strato-linux-x86_64.tar.gz
            android/StratoHAL.aar
            wasm/strato-wasm.tar.gz
            openharmony/strato-openharmony.tar.gz
<<<<<<< HEAD
            pc98/strato-pc98.lzh
=======
            pc98/strato-dos-pc98.lzh
            pcat/strato-dos-pcat.zip
>>>>>>> 585da63aa9f4d975488b91cbea41ee405b6c178f
