Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 52 additions & 29 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,60 +29,55 @@ on:

env:
__1K_CXXSTD: '${{ inputs.cxxstd }}'
GH_XCODE_VER: '16.4'

run-name: 'build@c++${{ inputs.cxxstd || 20 }}'

jobs:
win32:
win32-ogl:
runs-on: windows-latest
steps:
- uses: actions/checkout@v6

- name: Build
shell: pwsh
run: |
.\tools\cmdline\axmol -p win32 -a x64
.\tools\cmdline\axmol run -p win32 -a x64 -t unit-tests
.\tools\cmdline\axmol -p win32 -a x64 -O3
.\tools\cmdline\axmol run -p win32 -a x64 -t unit-tests -O3
- name: Check prebuilt workflow
shell: pwsh
run: |
./setup.ps1
axmol new HelloCpp
axmol -d .\HelloCpp -xc '-DAX_PREBUILT_DIR=build'
- uses: actions/upload-artifact@v4
axmol -d .\HelloCpp -xc '-DAX_PREBUILT_DIR=build' -O3
- uses: actions/upload-artifact@v6
with:
name: windows_x64
name: windows_ogl_x64
path: |
build/bin/cpp-tests/**/*
win32-dll:
winuwp-ogl:
runs-on: windows-latest
steps:
- uses: actions/checkout@v6

- name: Build
shell: pwsh
run: .\tools\cmdline\axmol -p win32 -a x64 -dll
winuwp:
# build uwp debug avoid github CI fail with memory issue
run: .\tools\cmdline\axmol -p winuwp -a x64 -O3
win32-clang-ogl:
runs-on: windows-latest
steps:
- uses: actions/checkout@v6

- name: Build
shell: pwsh
run: .\tools\cmdline\axmol -p winuwp -a x64 -O3
win32-clang:
run: .\tools\cmdline\axmol -p win32 -a 'x64' -cc clang -O3
win32-dll-ogl:
runs-on: windows-latest
env:
# Test winsdk < 10.0.22000.0 (missing C11 standard stdalign.h), axmol will auto fallback to C99 for resolving compiling issue.
WINSDK_VER: '10.0.19041.0'
steps:
- uses: actions/checkout@v6

- name: Build
shell: pwsh
run: .\tools\cmdline\axmol -p win32 -a 'x64' -cc clang -sdk $env:WINSDK_VER -O3
linux:
run: .\tools\cmdline\axmol -p win32 -a x64 -dll
linux-ogl:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
Expand All @@ -96,22 +91,28 @@ jobs:
shell: pwsh
run: ./tools/cmdline/axmol -p linux -a x64 -t 'cpp-tests,lua-tests' && ./tools/cmdline/axmol run -p linux -a x64 -t unit-tests -wait
osx-arm64:
runs-on: macos-latest
runs-on: ${{ vars.GH_MACOS_VER }}
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 && ./tools/cmdline/axmol run -p osx -t unit-tests
run: ./tools/cmdline/axmol -p osx -a arm64 && ./tools/cmdline/axmol run -p osx -a arm64 -t unit-tests
osx-x64:
runs-on: macos-latest
runs-on: ${{ vars.GH_MACOS_VER }}-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
android:
android-ogl:
runs-on: ubuntu-latest
strategy:
matrix:
Expand All @@ -130,14 +131,14 @@ jobs:
run: |
$AX_ROOT = $(Get-Location).Path
./tools/cmdline/axmol -p android -a $env:BUILD_ARCH
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v6
with:
name: android_${{ matrix.arch }}
path: |
templates/**/*.apk
tests/**/*.apk
ios-sim-x64:
runs-on: macos-latest
runs-on: ${{ vars.GH_MACOS_VER }}
strategy:
matrix:
target_os:
Expand All @@ -147,10 +148,32 @@ jobs:
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'
ios-sim-arm64:
runs-on: ${{ vars.GH_MACOS_VER }}
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'
wasm:
runs-on: ubuntu-latest
steps:
Expand All @@ -159,7 +182,7 @@ jobs:
- name: Build
shell: pwsh
run: ./tools/cmdline/axmol -p wasm -O3 -xc '-DAX_ENABLE_EXT_EFFEKSEER=ON,-DAX_WASM_THREADS=8' -j2 -t 'cpp-tests,fairygui-tests,lua-tests'
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v6
with:
name: wasm
path: build_wasm/bin/**/*
Expand Down
27 changes: 18 additions & 9 deletions .github/workflows/verify-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@ on:
inputs:
pr_id:
# actions run ID
description: 'Please input release version, example: 2426'
description: 'Please input PR number, example: 2426'
# Default value if no value is explicitly provided
default: ''
# Input has to be provided for the workflow to run
required: false

run-name: verify-app-pr${{ inputs.pr_id }}

# env:
# pr_id: '${{ inputs.pr_id }}'
env:
GH_XCODE_VER: '16.4'

jobs:
win32:
Expand Down Expand Up @@ -45,9 +45,6 @@ jobs:
axmol -d HelloCpp -p winuwp
win32-clang:
runs-on: windows-latest
env:
# Test winsdk < 10.0.22000.0 (missing C11 standard stdalign.h), axmol will auto fallback to C99 for resolving compiling issue.
WINSDK_VER: '10.0.19041.0'
steps:
- uses: actions/checkout@v6
with:
Expand All @@ -73,23 +70,31 @@ jobs:
axmol new HelloCpp
axmol -d HelloCpp
osx-arm64:
runs-on: macos-latest
runs-on: ${{ vars.GH_MACOS_VER }}
steps:
- uses: actions/checkout@v6
with:
ref: 'refs/pull/${{ inputs.pr_id }}/merge'
- uses: maxim-lobanov/setup-xcode@v1
id: setup-xcode
with:
xcode-version: '${{ env.GH_XCODE_VER }}'
- name: Build
shell: pwsh
run: |
./setup.ps1
axmol new HelloCpp
axmol -d HelloCpp
osx-x64:
runs-on: macos-13
runs-on: ${{ vars.GH_MACOS_VER }}-intel
steps:
- uses: actions/checkout@v6
with:
ref: 'refs/pull/${{ inputs.pr_id }}/merge'
- uses: maxim-lobanov/setup-xcode@v1
id: setup-xcode
with:
xcode-version: '${{ env.GH_XCODE_VER }}'
- name: Build
shell: pwsh
run: |
Expand All @@ -109,7 +114,7 @@ jobs:
axmol new HelloCpp
axmol -p android -d HelloCpp
ios:
runs-on: macos-latest
runs-on: ${{ vars.GH_MACOS_VER }}
strategy:
matrix:
target_os:
Expand All @@ -121,6 +126,10 @@ jobs:
- uses: actions/checkout@v6
with:
ref: 'refs/pull/${{ inputs.pr_id }}/merge'
- uses: maxim-lobanov/setup-xcode@v1
id: setup-xcode
with:
xcode-version: '${{ env.GH_XCODE_VER }}'
- name: Build
shell: pwsh
run: |
Expand Down
51 changes: 45 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,42 @@
# axmol-2.11.0 ?? 2025

## Bug fixes

- Fix audio stop blocking on iOS during active phone calls by @halx99 in [#2950](https://github.com/axmolengine/axmol/pull/2950)
- Fix WebSocket close code byte order for [#2889](https://github.com/axmolengine/axmol/issues/2889) by @halx99
- Fix Xcode 14.2 compatibility linking issue by @halx99
- Fix `build-docs.ps1` failing to build 2.10.x by @halx99
- Fix `AX_USE_ALSOFT` definition by @halx99 in [#2912](https://github.com/axmolengine/axmol/pull/2912)
- Fix compile error when `AX_CORE_PROFILE` is defined by @crazyhappygame in [#2910](https://github.com/axmolengine/axmol/pull/2910)
- Fix luabinding generator not working due to missing `clang-ver.ps1` by @halx99
- Fix isolated Axmol apps unable to find NuGet program for [#2926](https://github.com/axmolengine/axmol/issues/2926) by @halx99
- Fix various Particle System bugs by @WUCJ638 in [#2935](https://github.com/axmolengine/axmol/pull/2935)

## Improvements

- Allow overriding `FileUtils::getWritablePath()` on Linux by @j-jorge in [#2906](https://github.com/axmolengine/axmol/pull/2906)
- CI: Stop generating Axmol BS package by @halx99
- CI: Relax map-diff CHECK condition in unit-tests to avoid flaky CI failures by @halx99
- CI: Improve macOS runners and build commands by @halx99
- Add `Node::getHashOfName()` by @j-jorge in [#2907](https://github.com/axmolengine/axmol/pull/2907)
- Lock `axslcc` version to `1.9.6` for Axmol 2.x by @halx99
- Minor performance-related improvements in FontFreeType by @j-jorge
- Delete pending `AsyncStruct`s when `TextureCache` loading thread is destroyed by @j-jorge in [#2911](https://github.com/axmolengine/axmol/pull/2911)

## SDK & Tools updates

- cmake: 4.2.0 => 4.2.1
- jdk: 17.0.15 => 17.0.17
- webview2: 1.0.3595.46 => 1.0.3650.58

## 3rdparty updates

- c-ares: 1.34.5 => 1.34.6
- jpeg-turbo: 3.1.2 => 3.1.3
- libpng: 1.6.50 => 1.6.53
- luajit: 2.1-68354f4 => 2.1-7152e15


# axmol-2.10.0 Nov.27 2025

## Significant changes relative to 2.9.1
Expand Down Expand Up @@ -29,14 +68,14 @@

## SDK & Tools updates

- cmake: 4.1.1 4.2.0 (required for VS2026 support)
- gradle: 9.2.0 9.2.1
- webview2: 1.0.3537.50 1.0.3595.46
- cmake: 4.1.1 => 4.2.0 (required for VS2026 support)
- gradle: 9.2.0 => 9.2.1
- webview2: 1.0.3537.50 => 1.0.3595.46

## 3rdparty updates

- curl: 8.16.0 8.17.0
- luajit: 2.1-871db2c 2.1-68354f4
- curl: 8.16.0 => 8.17.0
- luajit: 2.1-871db2c => 2.1-68354f4

## Community News

Expand Down Expand Up @@ -441,7 +480,7 @@ across different devices and orientations.

## 3rdparty updates

- cares: 1.34.4 => 1.34.5
- c-ares: 1.34.4 => 1.34.5
- Clipper2: 1.5.2 => 1.5.3
- doctest: 2.4.11 => 2.4.12
- fmtlib: 11.1.4 => 11.2.0
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

# build engine library and all tests

cmake_minimum_required(VERSION 3.22...4.1)
cmake_minimum_required(VERSION 3.22...4.2)

project(axmol)

Expand Down
2 changes: 1 addition & 1 deletion core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
# include_guard (GLOBAL)

# The version number
set(_AX_VERSION 2.8)
set(_AX_VERSION 2.11)

if(NOT DEFINED _AX_CORE_LIB)
set(_AX_CORE_LIB axmol CACHE INTERNAL "The axmol core lib name")
Expand Down
2 changes: 1 addition & 1 deletion core/axmolver.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// 0x00 HI ME LO
// 00 03 08 00
#define AX_VERSION_MAJOR 2
#define AX_VERSION_MINOR 10
#define AX_VERSION_MINOR 11
#define AX_VERSION_PATCH 0

/* Define axmol version helper macros */
Expand Down
14 changes: 7 additions & 7 deletions docs/DevSetup.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,16 +62,16 @@ The `axmol build` command will auto-setup the general toolsets, so you'll be abl
- To just generate project: `axmol build -p winuwp -c`
- Linux: `axmol build`
- OSX:
- for Intel (x64): `axmol build -p osx -a x64 -c` (generate a xcodeproj, open with XCode to setup the code sign cert and build)
- for Apple Silicon (arm64): `axmol build -p osx -a arm64 -c` (generate a xcodeproj, open with XCode to setup the code sign cert and build)
- for Intel (x64): `axmol build -p osx -a x64 -c` (generate a xcodeproj, open with Xcode to setup the code sign cert and build)
- for Apple Silicon (arm64): `axmol build -p osx -a arm64 -c` (generate a xcodeproj, open with Xcode to setup the code sign cert and build)
- Android: `axmol build -p android -a arm64` (can run on Windows, Linux and macOS, and script will auto setup Android SDK)
- iOS:
- for devices: `axmol build -p ios -a arm64 -c` (generate a xcodeproj, open with XCode to setup the code sign cert and build)
- for devices: `axmol build -p ios -a arm64 -c` (generate a xcodeproj, open with Xcode to setup the code sign cert and build)
- for simulators:
- for Intel (x64): `axmol build -p ios -a x64 -sdk simulator -c`
- for Apple Silicon (arm64): `axmol build -p ios -a arm64 -sdk simulator -c`
- tvOS:
- for devices: `axmol build -p tvos -a arm64 -c` (generate a xcodeproj, open with XCode to setup code sign cert and build)
- for devices: `axmol build -p tvos -a arm64 -c` (generate a xcodeproj, open with Xcode to setup code sign cert and build)
- for simulator: `axmol build -p tvos -a x64 -sdk simulator`
- WASM: `axmol build -p wasm` (it can run on Windows 8.1+, Linux and macOS, it requires a preinstalled [python3](https://www.python.org/) in env `PATH`)

Expand Down Expand Up @@ -224,12 +224,12 @@ Note: if you use non-SDK provided CMake, you will need to download `ninja` from

### iOS, tvOS and macOS

1. Ensure that XCode 13+ is installed.
1. Ensure that Xcode 13+ is installed.
2. Create a new project as shown [here](#creating-a-new-project).
3. In a console window, navigate into the root directory of the project you created in the previous step.
4. Execute the following command:
```sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer```
5. Generate the relevant XCode project using one of the following commands:
5. Generate the relevant Xcode project using one of the following commands:
- for iOS arm64:
```axmol build -p ios -a arm64 -c```
- for iOS simulator arm64:
Expand All @@ -245,7 +245,7 @@ Note: if you use non-SDK provided CMake, you will need to download `ninja` from
- for macOS arm64(M1)
```axmol build -p osx -a arm64 -c```

6. After CMake finishes generating, you can open the XCode project at `build_${plat}_${arch}` folder and run cpp-tests or other test targets. For OSC x64 should be `build_x64`.
6. After CMake finishes generating, you can open the Xcode project at `build_${plat}_${arch}` folder and run cpp-tests or other test targets. For OSC x64 should be `build_x64`.
7. Notes:
- **Code signing is required to run the iOS / tvOS app on your device. Just change the bundle identifier until the auto manage signing is solved.**
- **Axmol only provides arm64, x86_64 prebuilt libraries for iOS / tvOS.**
Expand Down
Loading