name: Build on: push: branches: - "**" pull_request: branches: - "**" types: [opened, synchronize, reopened] jobs: build-win: name: Build Windows runs-on: windows-latest strategy: fail-fast: false matrix: configuration: - debug - release arch: - x86 - x64 include: - arch: x86 platform: Win32 - arch: x64 platform: x64 steps: - name: Check out files uses: actions/checkout@v3.3.0 with: submodules: true fetch-depth: 0 lfs: false - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.3.1 - name: Generate project files run: cmd /C call prebuild-windows.bat - name: Set up problem matching uses: ammaraskar/msvc-problem-matcher@master - name: Build ${{matrix.configuration}} ${{matrix.arch}} binaries run: msbuild /m /v:minimal /p:Configuration=${{matrix.configuration}} /p:Platform=${{matrix.platform}} build/gsc-tool.sln - name: Upload ${{matrix.configuration}} ${{matrix.arch}} binaries uses: actions/upload-artifact@v3.1.2 with: name: Windows ${{matrix.configuration}} ${{matrix.arch}} binaries path: | build/bin/${{matrix.arch}}/${{matrix.configuration}}/gsc-tool.exe build/bin/${{matrix.arch}}/${{matrix.configuration}}/gsc-tool.pdb build-mac: name: Build macOS runs-on: macos-latest strategy: fail-fast: false matrix: configuration: - debug - release arch: - x64 - ARM64 include: - configuration: debug config: debug - configuration: release config: release - arch: x64 platform: x64 - arch: ARM64 platform: arm64 steps: - name: Check out files uses: actions/checkout@v3.3.0 with: submodules: true fetch-depth: 0 lfs: false - name: Generate project files run: ./prebuild-macos.sh - name: Set up problem matching uses: ammaraskar/gcc-problem-matcher@master - name: Build ${{matrix.configuration}} ${{matrix.arch}} binaries run: | pushd build make config=${{matrix.config}}_${{matrix.platform}} -j$(sysctl -n hw.logicalcpu) - name: Upload ${{matrix.configuration}} ${{matrix.arch}} binaries uses: actions/upload-artifact@v3.1.2 with: name: macOS ${{matrix.configuration}} ${{matrix.arch}} binaries path: | build/bin/${{matrix.platform}}/${{matrix.configuration}}/gsc-tool build-lin: name: Build Linux runs-on: ubuntu-latest strategy: fail-fast: false matrix: configuration: - debug - release arch: - x64 include: - configuration: debug config: debug - configuration: release config: release - arch: x64 platform: x64 steps: - uses: rui314/setup-mold@staging - name: Check out files uses: actions/checkout@v3.3.0 with: submodules: true fetch-depth: 0 lfs: false - name: Generate project files run: ./prebuild-linux.sh - name: Set up problem matching uses: ammaraskar/gcc-problem-matcher@master - name: Build ${{matrix.configuration}} ${{matrix.arch}} binaries run: | pushd build make config=${{matrix.config}}_${{matrix.arch}} -j$(nproc) env: CC: clang CXX: clang++ - name: Upload ${{matrix.configuration}} ${{matrix.arch}} binaries uses: actions/upload-artifact@v3.1.2 with: name: Linux ${{matrix.configuration}} ${{matrix.arch}} binaries path: | build/bin/${{matrix.platform}}/${{matrix.configuration}}/gsc-tool