Fix the Linux build of the qt6 branch, compile QML to bytecode only
- Remove Core5Compat (unused, not part of the Steam Frame's system Qt). - Request GuiPrivate explicitly (required since Qt 6.10 for QRhi); temporary until rendering moves to public API. - Compile QML to bytecode only: C++ generated from QML uses private Qt API that only matches the exact Qt version it was built with. - Pick the OpenVR library per architecture (linux64, linuxarm64, win64) for linking and for the copy next to the binary; RPATH $ORIGIN. - Link libXtst, needed by input_sender_X11.cpp. - Include d3d11.h and handle QRhi::D3D11 only on Windows. - Replace leftover easylogging LOG(INFO) calls with qInfo(). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
aac3edf7e3
commit
266a2f9ce9
@@ -0,0 +1,28 @@
|
||||
# Steam Frame port: progress
|
||||
|
||||
## Iteration 1
|
||||
|
||||
### Step 1: build fixes, bytecode-only QML (2026-10-07)
|
||||
|
||||
**Changes:**
|
||||
- **`CMakeLists.txt`:**
|
||||
- `Core5Compat` removed (unused, not on the Frame).
|
||||
- `GuiPrivate` requested explicitly. This is temporary, until step 3 replaces QRhi.
|
||||
- `QT_QMLCACHEGEN_ARGUMENTS --only-bytecode`.
|
||||
- OpenVR library directory per architecture (`linux64` / `linuxarm64` / `win64`), for
|
||||
linking and for the copy next to the binary.
|
||||
- `RPATH $ORIGIN`.
|
||||
- `libXtst` linked.
|
||||
- **`overlaycontroller.cpp`:** `d3d11.h` and `case QRhi::D3D11` only under `_WIN32`.
|
||||
- **Logging:** 8 active easylogging `LOG(INFO)` calls became `qInfo()`
|
||||
(`overlaycontroller.cpp` 6, `ChaperoneTabController.cpp` 1,
|
||||
`MoveCenterTabController.cpp` 1). Commented-out `LOG` lines are left unchanged.
|
||||
- Only changed lines are formatted (`git clang-format`).
|
||||
|
||||
**Results (x86_64, Arch, Qt 6.11.1, GCC):**
|
||||
- The build succeeds, with 1463 compiler warnings, as in `qt6`.
|
||||
- `objdump -T`: 7 `Qt_6_PRIVATE_API` symbols, all `QRhi…` (step 3). The
|
||||
`QQmlPrivate::AOTCompiledContext` symbols are gone (bytecode-only QML).
|
||||
- `libopenvr_api.so` is resolved from the binary's directory (`ldd`).
|
||||
- Not started: without a running SteamVR the start hangs in OpenVR init (expected; tested
|
||||
on the Frame in step 5).
|
||||
Reference in New Issue
Block a user