wire mars/parse + mars/text into host and shim builds; ctest; readme status
This commit is contained in:
parent
43852ed041
commit
afb1532d7a
2 changed files with 18 additions and 4 deletions
|
|
@ -17,6 +17,10 @@ string(REGEX REPLACE "^// " "" SOTS_ADDR_PROVENANCE "${_addr_provenance}")
|
||||||
add_library(sots_addresses INTERFACE)
|
add_library(sots_addresses INTERFACE)
|
||||||
target_include_directories(sots_addresses INTERFACE ${CMAKE_SOURCE_DIR}/include)
|
target_include_directories(sots_addresses INTERFACE ${CMAKE_SOURCE_DIR}/include)
|
||||||
|
|
||||||
|
# ---- engine modules (host + cross): pure, oracle-verified code accrues here ----
|
||||||
|
add_subdirectory(src/mars/parse) # brace-block + .effect readers (lib mars_parse)
|
||||||
|
add_subdirectory(src/mars/text) # flat-kv, id-manifest, csv (lib mars_text)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# ---- shim: proxy binkw32.dll that the original game loads (Phase 2 frontend) ----
|
# ---- shim: proxy binkw32.dll that the original game loads (Phase 2 frontend) ----
|
||||||
add_library(minhook STATIC
|
add_library(minhook STATIC
|
||||||
|
|
@ -34,9 +38,14 @@ if(WIN32)
|
||||||
# Must be exactly binkw32.dll (no "lib" prefix); export names come solely from the .def.
|
# Must be exactly binkw32.dll (no "lib" prefix); export names come solely from the .def.
|
||||||
set_target_properties(binkw32 PROPERTIES PREFIX "" OUTPUT_NAME "binkw32")
|
set_target_properties(binkw32 PROPERTIES PREFIX "" OUTPUT_NAME "binkw32")
|
||||||
else()
|
else()
|
||||||
# ---- host: nothing to build yet; keep the preset alive with a header smoke test ----
|
# ---- host: engine module tests (ctest) + a header smoke test ----
|
||||||
enable_testing()
|
enable_testing()
|
||||||
add_executable(addr_smoke tests/addr_smoke.cpp)
|
add_executable(addr_smoke tests/addr_smoke.cpp)
|
||||||
target_link_libraries(addr_smoke PRIVATE sots_addresses)
|
target_link_libraries(addr_smoke PRIVATE sots_addresses)
|
||||||
add_test(NAME addr_smoke COMMAND addr_smoke)
|
add_test(NAME addr_smoke COMMAND addr_smoke)
|
||||||
|
foreach(_t mars_parse mars_text)
|
||||||
|
if(EXISTS ${CMAKE_SOURCE_DIR}/tests/${_t}/CMakeLists.txt)
|
||||||
|
add_subdirectory(tests/${_t})
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
11
README.md
11
README.md
|
|
@ -9,9 +9,14 @@ the original binaries are never included; tests and tools read an owner-supplied
|
||||||
`$SOTS_DATA_DIR`. See `CONTRIBUTING.md` for the clean-room rules.
|
`$SOTS_DATA_DIR`. See `CONTRIBUTING.md` for the clean-room rules.
|
||||||
|
|
||||||
## Status
|
## Status
|
||||||
Phase 2 / M0 — the shim frontend (`src/shim/`): a proxy DLL the original game loads, used to
|
Phase 2. **M0 done** — the shim frontend (`src/shim/`, a proxy `binkw32.dll` the original game
|
||||||
verify each reimplemented function against the original before it displaces it. Engine code
|
loads) builds, deploys, hooks, and logs from a real game launch. Engine code accrues under
|
||||||
accrues under `src/mars/` (engine) and `src/game/` (game logic) as milestones land.
|
`src/mars/` and `src/game/`; each module is oracle-verified against the owner's game data before merge:
|
||||||
|
- `mars/parse` — brace-block + `.effect` readers (1,531/1,531 files agree with the reference)
|
||||||
|
- `mars/text` — flat key/value tables, id manifests, CSV (64/64 files agree)
|
||||||
|
|
||||||
|
Build: `cmake --preset host && cmake --build --preset host && ctest --preset host` (Linux);
|
||||||
|
`tools/sync-build.sh` cross-builds the shim on the lab box and stages it for deployment.
|
||||||
|
|
||||||
## Layout (grows with the work)
|
## Layout (grows with the work)
|
||||||
- `src/shim/` — binkw32 proxy + hooks + old-vs-new compare harness (frontend #1)
|
- `src/shim/` — binkw32 proxy + hooks + old-vs-new compare harness (frontend #1)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue