Skip to content

Commit ef5f821

Browse files
committed
#75 wip: xboxビルドテスト v73
1 parent 2c38a65 commit ef5f821

2 files changed

Lines changed: 21 additions & 8 deletions

File tree

.github/workflows/xbox-host-ci.yml

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
name: RasterCore tests + V8 syntax check (Linux)
3434
runs-on: ubuntu-latest
3535
steps:
36-
- uses: actions/checkout@v4
36+
- uses: actions/checkout@v6
3737
- name: Fetch V8 headers (${{ env.V8_TAG }})
3838
run: |
3939
git clone --depth 1 --branch "$V8_TAG" --filter=blob:none --sparse \
@@ -48,7 +48,7 @@ jobs:
4848
# VS2022 (v143) 世代に固定 — GDK ビルドの実ターゲットと同じ toolset で検証する
4949
runs-on: windows-2022
5050
steps:
51-
- uses: actions/checkout@v4
51+
- uses: actions/checkout@v6
5252
- uses: ilammy/msvc-dev-cmd@v1
5353

5454
- name: Build & run RasterCore tests
@@ -83,18 +83,23 @@ jobs:
8383
name: Game Core API partition audit (WINAPI_FAMILY_GAMES)
8484
runs-on: windows-2022
8585
steps:
86-
- uses: actions/checkout@v4
86+
- uses: actions/checkout@v6
8787
- uses: ilammy/msvc-dev-cmd@v1
8888

89-
# ホストがコンソールでも使う API: 全て GAMES パーティションに必要 (欠落は fail)
89+
# ホストがコンソールでも使う API: 全て GAMES パーティションに必要 (欠落は fail)。
90+
# 事前のローカル監査 (SDK 22621/26100/28000 のヘッダ解析) では全て GAMES 可視の
91+
# はずなので、失敗時はエラー全文を出して原因 (SDK 差異/ヘッダ問題) を特定する。
9092
- name: Host APIs must exist in GAMES partition
9193
shell: cmd
9294
working-directory: templates/xbox
9395
run: |
96+
echo SDK: %WindowsSDKVersion%
9497
cl /nologo /std:c++17 /W3 /c /DWINAPI_FAMILY=WINAPI_FAMILY_GAMES ^
95-
tests\gamecore_api_probe.cpp
96-
if errorlevel 1 (
97-
echo ::error::ホストが使用する Win32 API に Game Core 非対応のものがある (上のエラー参照)
98+
tests\gamecore_api_probe.cpp > host_probe.log 2>&1
99+
set CL_EXIT=%errorlevel%
100+
type host_probe.log
101+
if not "%CL_EXIT%"=="0" (
102+
echo ::error::ホスト使用 API のプローブが失敗 (全文は上の host_probe.log 出力)
98103
exit /b 1
99104
)
100105
echo OK: host APIs are all present in the GAMES partition
@@ -120,7 +125,7 @@ jobs:
120125
# VS2022 (v143) 世代に固定 — GDK ビルドの実ターゲットと同じ toolset で検証する
121126
runs-on: windows-2022
122127
steps:
123-
- uses: actions/checkout@v4
128+
- uses: actions/checkout@v6
124129
- uses: ilammy/msvc-dev-cmd@v1
125130

126131
- name: Fetch V8 headers (${{ env.V8_TAG }})

templates/xbox/tests/gamecore_api_probe.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,21 @@
1515
//
1616
// 注意: これは「宣言がパーティションに含まれるか」の静的検査。実機での挙動
1717
// (リンク先 lib の有無・実行時の権限) は devkit での検証が別途必要。
18+
//
19+
// WIN32_LEAN_AND_MEAN は必須: GAMES ファミリではフル Windows.h が引き込む
20+
// 周辺ヘッダ (mmsystem/ole2/winsock 等) に GAMES 非対応部分があり
21+
// コンパイルが壊れる (vcpkg の Xbox トリプレットも同様の前提)。
22+
// 必要なヘッダは個別に include する。
23+
#define WIN32_LEAN_AND_MEAN
24+
#define NOMINMAX
1825
#include <Windows.h>
1926

2027
#include <objbase.h> // CoInitializeEx (DecodeQueue のスレッド COM 初期化)
2128
#include <bcrypt.h> // BCryptGenRandom (crypto.getRandomValues)
2229
#include <xaudio2.h> // XAudio2Create (音声出力)
2330

2431
#ifdef PROBE_V8
32+
#include <timeapi.h> // timeGetTime (V8 time.cc — GAMES 外の想定 = TODO 検出対象)
2533
#include <psapi.h> // GetProcessMemoryInfo (V8 OS::GetPeakMemoryUsageKb)
2634
#include <process.h> // _beginthreadex (V8 Thread)
2735
#endif

0 commit comments

Comments
 (0)