Skip to content

Commit 2aeecdc

Browse files
committed
Merge branch 'dev'
2 parents 7350ab6 + d903cb1 commit 2aeecdc

413 files changed

Lines changed: 49662 additions & 3996 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/settings.local.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
"permissions": {
33
"allow": [
44
"Bash(xargs grep:*)",
5-
"Bash(grep -n \"__dprint\" /x/Document/GitHub/PgEngine/src/Engine/Compiler/*.cpp)"
5+
"Bash(grep -n \"__dprint\" /x/Document/GitHub/PgEngine/src/Engine/Compiler/*.cpp)",
6+
"Bash(find:*)",
7+
"Bash(make -j8 GameDevJs2026)"
68
]
79
}
810
}
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Regenerate Generated Sources
2+
3+
# Rebuilds the committed generated-code seeds when their inputs change:
4+
# - src/Engine/Components/generated/ (from src/Engine/Components/*.pgcomp
5+
# via tools/component_generator.pg, snapshotted by SnapshotComponents)
6+
# - src/Engine/Compiler/generated/ (from tools/vm_ops_def.pg via
7+
# tools/gen_vm_ops.pg, regenerated in place by the stage-0 bootstrap)
8+
# Any drift is committed back with [skip ci].
9+
10+
on:
11+
push:
12+
branches: [main, dev]
13+
paths:
14+
- 'src/Engine/Components/*.pgcomp'
15+
- 'tools/component_generator.pg'
16+
- 'tools/gen_vm_ops.pg'
17+
- 'tools/vm_ops_def.pg'
18+
- '.github/workflows/regen_generated.yml'
19+
workflow_dispatch: # Allow manual trigger
20+
21+
jobs:
22+
regenerate:
23+
runs-on: ubuntu-latest
24+
permissions:
25+
contents: write # Required for pushing commits
26+
27+
steps:
28+
- name: Checkout repository
29+
uses: actions/checkout@v4
30+
with:
31+
token: ${{ secrets.GITHUB_TOKEN }}
32+
33+
- name: Install prerequisites
34+
run: |
35+
sudo apt-get update
36+
sudo apt-get install -y \
37+
build-essential cmake ccache git \
38+
libgl1-mesa-dev libglu1-mesa-dev \
39+
libx11-dev libxrandr-dev libxi-dev libxinerama-dev libxcursor-dev libxss-dev libxxf86vm-dev \
40+
libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev \
41+
libglew-dev libfreetype6-dev
42+
43+
- name: Configure with CMake
44+
run: |
45+
mkdir -p build
46+
cd build
47+
cmake -DCMAKE_BUILD_TYPE=Release ..
48+
49+
- name: Regenerate components
50+
run: |
51+
cd build
52+
# SnapshotComponents chains: ColumbaEngineMinimal -> PgCompilerBootstrap
53+
# -> component generation -> seed snapshot
54+
cmake --build . --target SnapshotComponents -- -j$(nproc || echo 2)
55+
56+
- name: Regenerate VM ops
57+
run: |
58+
cd build
59+
# On a fresh build dir AutoGenVmOps has no stage-0 bootstrap and keeps
60+
# the committed .inc files; GenerateVmOps regenerates them for real
61+
# with the bootstrap that was just built.
62+
cmake --build . --target GenerateVmOps -- -j$(nproc || echo 2)
63+
64+
- name: Check for drift
65+
id: check_changes
66+
run: |
67+
git add -N src/Engine/Components/generated src/Engine/Compiler/generated
68+
git diff --exit-code --stat \
69+
src/Engine/Components/generated \
70+
src/Engine/Compiler/generated || echo "changed=true" >> $GITHUB_OUTPUT
71+
72+
- name: Commit and push if changed
73+
if: steps.check_changes.outputs.changed == 'true'
74+
run: |
75+
git config --local user.email "github-actions[bot]@users.noreply.github.com"
76+
git config --local user.name "github-actions[bot]"
77+
git add src/Engine/Components/generated src/Engine/Compiler/generated
78+
git commit -m "chore: Regenerate component and VM op seeds [skip ci]" || exit 0
79+
git push

.gitignore

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,17 @@ CMakeCache.txt
1818
/clang*
1919
save/*
2020
res/**/*.pgc
21+
res/ext/*
2122
profile_data.csv
2223
global.sz
2324
*.generated.*
2425
*.serialization.cpp
25-
src/**/temp.pgc
26+
temp.pgc
2627
test/pgcompiler/scripts/*compiled.pgc
2728
.vscode/.intellisense-cache
28-
graph.dot
29+
graph.dot
30+
.wrangler
31+
asan/
32+
# Committed component seed: base files for CI / Emscripten builds that cannot run the bootstrap
33+
!src/Engine/Components/generated/*.generated.*
34+
!src/Engine/Components/generated/*.serialization.cpp

.vscode/launch.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,5 +211,30 @@
211211
"program": "${workspaceFolder}/debug/GameOff.exe"
212212
}
213213
},
214+
{
215+
"name": "GameDevJs",
216+
"type": "cppdbg",
217+
"request": "launch",
218+
"args": [],
219+
"stopAtEntry": false,
220+
"cwd": "${workspaceFolder}",
221+
"environment": [],
222+
"externalConsole": false,
223+
"linux": {
224+
"MIMode": "gdb",
225+
"miDebuggerPath": "gdb",
226+
"program": "${workspaceFolder}/build/GameDevJs2026"
227+
},
228+
"osx": {
229+
"MIMode": "lldb",
230+
"miDebuggerPath": "lldb-mi",
231+
"program": "${workspaceFolder}/debug/main"
232+
},
233+
"windows": {
234+
"MIMode": "gdb",
235+
"miDebuggerPath": "gdb.exe",
236+
"program": "${workspaceFolder}/debug/GameOff.exe"
237+
}
238+
},
214239
]
215240
}

0 commit comments

Comments
 (0)