feat: godot-cpp as the C++23 module godot_cpp
#1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| name: mcpp (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 90 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-15, windows-latest] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install Xlings | |
| shell: bash | |
| env: | |
| XLINGS_NON_INTERACTIVE: 1 | |
| run: | | |
| curl -fsSL https://raw.githubusercontent.com/openxlings/xlings/refs/heads/main/tools/other/quick_install.sh | bash | |
| echo "$HOME/.xlings/subos/current/bin" >> "$GITHUB_PATH" | |
| - name: Install project tools | |
| shell: bash | |
| run: | | |
| xlings update | |
| xlings install | |
| # Same transition step as ffmpeg-m / imgui-m: pin the glibc gcc | |
| # toolchain explicitly until mcpp's bootstrap default settles. | |
| - name: Set default toolchain | |
| shell: bash | |
| run: | | |
| mcpp toolchain install gcc 16.1.0 | |
| mcpp toolchain default gcc@16.1.0 | |
| mcpp --version | |
| # Cold: compat.godot-cpp builds 1022 TUs from source underneath this. | |
| - name: Build the module layer | |
| shell: bash | |
| run: mcpp build | |
| # tests/godot_cpp_module.cpp -- the import surface | |
| # tests/godot_cpp_macros.cpp -- GDCLASS next to the import | |
| - name: Run tests | |
| shell: bash | |
| run: mcpp test | |
| # A real GDExtension shared library -- the shape this package exists for, | |
| # and what caught the missing -fPIC in compat.godot-cpp. | |
| - name: Build the summator GDExtension example | |
| shell: bash | |
| run: | | |
| cd examples/summator | |
| mcpp build |