Skip to content

build@c++23

build@c++23 #4262

Workflow file for this run

name: build
on:
push:
branches:
- dev*
- release/*
paths-ignore:
- '**.md'
- '**/*.md.in'
- 'docs/**'
- '.github/workflows/publish.yml'
- '.github/workflows/debian.yml'
- '.github/workflows/source-tidy.yml'
pull_request:
types: [opened, synchronize, reopened]
paths-ignore:
- '**.md'
- '**/*.md.in'
- 'docs/**'
workflow_dispatch:
inputs:
cxxstd:
# actions run ID
description: 'Please input cxxstd, example: 23'
# Default value if no value is explicitly provided
default: '23'
# Input has to be provided for the workflow to run
required: false
env:
__1K_CXXSTD: '${{ inputs.cxxstd }}'
GH_XCODE_VER: '16.4'
run-name: 'build@c++${{ inputs.cxxstd || 23 }}'
jobs:
source-check:
uses: ./.github/workflows/source-tidy.yml
with:
lint_mode: check_only
win32:
needs: [source-check]
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- name: Build
shell: pwsh
run: |
.\tools\cmdline\axmol -p win32 -a x64 -xc '-DAX_RENDER_API=d3d11;d3d12;gl;vk,-DAX_ENABLE_VR=ON,-DAX_ENABLE_OPENXR=ON' -O3 -t cpp-tests
- name: Check prebuilt workflow
shell: pwsh
run: |
./setup.ps1
axmol new HelloCpp
axmol -d .\HelloCpp -xc '-DAX_PREBUILT_DIR=build' -O3
- uses: actions/upload-artifact@v6
with:
name: windows_x64
path: |
build/bin/cpp-tests/**/*
win32-arm64:
needs: [source-check]
runs-on: windows-11-arm
steps:
- uses: actions/checkout@v6
- name: Build
shell: pwsh
run: |
.\tools\cmdline\axmol -p win32 -a arm64 -xc '-DAX_RENDER_API=d3d11;d3d12;gl;vk' -O3 -t cpp-tests
.\tools\cmdline\axmol run -p win32 -a arm64 -t unit-tests -O3
- name: Check prebuilt workflow
shell: pwsh
run: |
./setup.ps1
axmol new HelloCpp
axmol -d .\HelloCpp -xc '-DAX_PREBUILT_DIR=build' -O3
winuwp:
needs: [source-check]
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- name: Build
shell: pwsh
run: .\tools\cmdline\axmol -p winuwp -a x64 -O3 -xc '-DAX_RENDER_API=d3d11;d3d12;gl' -t cpp-tests
win32-clang:
needs: [source-check]
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- name: Build
shell: pwsh
run: .\tools\cmdline\axmol -p win32 -a 'x64' -cc clang -O3 -xc '-DAX_RENDER_API=d3d11;d3d12;gl;vk' -t cpp-tests
win32-dll:
needs: [source-check]
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- name: Build
shell: pwsh
run: .\tools\cmdline\axmol -p win32 -a x64 -dll -xc '-DAX_RENDER_API=d3d11;d3d12;gl;vk' -t cpp-tests
linux:
needs: [source-check]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install dependencies
run: |
AX_ROOT=`pwd`
echo -e "y" | pwsh $AX_ROOT/setup.ps1
- name: Build
shell: pwsh
run: ./tools/cmdline/axmol -p linux -a x64 -t 'cpp-tests,lua-tests' -xc '-DAX_RENDER_API=vk;gl' && ./tools/cmdline/axmol run -p linux -a x64 -t unit-tests -wait
linux-arm64:
needs: [source-check]
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v6
- name: Install dependencies
run: |
AX_ROOT=`pwd`
echo -e "y" | pwsh $AX_ROOT/setup.ps1
- name: Build
shell: pwsh
run: ./tools/cmdline/axmol -p linux -a arm64 -t 'cpp-tests,lua-tests' -xc '-DAX_RENDER_API=vk;gl' && ./tools/cmdline/axmol run -p linux -a arm64 -t unit-tests -wait
osx-arm64:
needs: [source-check]
runs-on: macos-15
steps:
- uses: actions/checkout@v6
- uses: maxim-lobanov/setup-xcode@v1
id: setup-xcode
with:
xcode-version: '${{ env.GH_XCODE_VER }}'
- name: Build
shell: pwsh
run: ./tools/cmdline/axmol -p osx -a arm64 -t cpp-tests && ./tools/cmdline/axmol run -p osx -a arm64 -t unit-tests
osx-x64:
needs: [source-check]
runs-on: macos-15-intel
steps:
- uses: actions/checkout@v6
- uses: maxim-lobanov/setup-xcode@v1
id: setup-xcode
with:
xcode-version: '${{ env.GH_XCODE_VER }}'
- name: Build
shell: pwsh
run: ./tools/cmdline/axmol -p osx -a x64 -t cpp-tests
android:
needs: [source-check]
runs-on: ubuntu-latest
strategy:
matrix:
arch:
- armv7
- arm64
- x86
- x64
env:
BUILD_ARCH: ${{ matrix.arch }}
steps:
- uses: actions/checkout@v6
- name: Build
shell: pwsh
run: |
$AX_ROOT = $(Get-Location).Path
./tools/cmdline/axmol -p android -a $env:BUILD_ARCH -xc "-DAX_RENDER_API=vk;gl" -t cpp-tests
- uses: actions/upload-artifact@v6
with:
name: android_${{ matrix.arch }}
path: |
templates/**/*.apk
tests/**/*.apk
ios-sim-x64:
needs: [source-check]
runs-on: macos-15
strategy:
matrix:
target_os:
- ios
- tvos
env:
TARGET_OS: ${{ matrix.target_os }}
steps:
- uses: actions/checkout@v6
- uses: maxim-lobanov/setup-xcode@v1
id: setup-xcode
with:
xcode-version: '${{ env.GH_XCODE_VER }}'
- name: Build
shell: pwsh
run: ./tools/cmdline/axmol -p $env:TARGET_OS -a 'x64' -t cpp-tests
ios-sim-arm64:
needs: [source-check]
runs-on: macos-15
strategy:
matrix:
target_os:
- ios
- tvos
env:
TARGET_OS: ${{ matrix.target_os }}
steps:
- uses: actions/checkout@v6
- uses: maxim-lobanov/setup-xcode@v1
id: setup-xcode
with:
xcode-version: '${{ env.GH_XCODE_VER }}'
- name: Build
shell: pwsh
# axmol cmdline can't guess ios arm64 as simulator, so need specify by option '-sdk'
run: ./tools/cmdline/axmol -p $env:TARGET_OS -a 'arm64' -sdk 'simulator' -t cpp-tests
wasm:
needs: [source-check]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Build
shell: pwsh
run: ./tools/cmdline/axmol -p wasm -O3 -xc '-DAX_ENABLE_EXT_EFFEKSEER=ON,-DAX_WASM_THREADS=8,-DAX_ENABLE_VR=ON' -j2 -t 'cpp-tests,fairygui-tests,lua-tests'
- uses: actions/upload-artifact@v6
with:
name: wasm
path: build_wasm/bin/**/*
if-no-files-found: error
wasm64:
needs: [source-check]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Build
shell: pwsh
run: ./tools/cmdline/axmol -p wasm64 -xc '-DAX_ENABLE_EXT_EFFEKSEER=ON,-DAX_WASM_THREADS=8' -j2 -t 'cpp-tests,fairygui-tests,lua-tests'