mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-08-13 04:29:30 -04:00
Add soh-torch, rebuild ExtractAssets on it
soh links torch as a static library, which compiles out torch's own CLI, so build-time extraction needs an entry point. soh-torch supplies one around the same SohTorch::Extract the game calls -- one implementation, so the CLI and the in-game path can't drift. ExtractAssets keeps its old contract: SOH_ROM_PATH accepts roms and/or directories of roms and defaults to roms/, so dropping a vanilla and a master quest rom in produces oot.o2r and oot-mq.o2r in one run, and chaining GenerateSohOtr keeps soh.o2r coming out of it too. Extract now returns the archive name torch chose rather than deriving it from IsMasterQuest(), so config.yml is the only thing naming archives. The name comes from Companion::GetOutputPath(): scanning the destination for *.o2r picks up an unrelated soh.o2r when extracting into the build directory, which is only invisible in the game because it extracts into an empty temp dir. ExtractAssetHeaders stays as a target that explains why it can't run -- torch registers no OoT header exporter and emits no #define d<sym>, which soh source references ~24k times. Documented in BUILDING.md alongside it. This removes the last ZAPD dependency from the build.
This commit is contained in:
+14
-2
@@ -80,6 +80,10 @@ C:\Program Files\CMake\bin\cmake.exe --build build-cmake --target clean
|
||||
```
|
||||
|
||||
#### Regenerate Asset Headers
|
||||
> **Currently unavailable.** The Torch migration removed the ZAPD-based header
|
||||
> generator, and Torch does not emit OoT asset headers yet. The checked-in headers
|
||||
> under `soh/assets` are unaffected; only regenerating them is.
|
||||
|
||||
```powershell
|
||||
# If you need to regenerate the asset headers to check them into source
|
||||
C:\Program Files\CMake\bin\cmake.exe --build build-cmake --target ExtractAssetHeaders
|
||||
@@ -221,6 +225,10 @@ cpack -G External (creates appimage)
|
||||
cmake --build build-cmake --target clean
|
||||
```
|
||||
#### Regenerate Asset Headers
|
||||
> **Currently unavailable.** The Torch migration removed the ZAPD-based header
|
||||
> generator, and Torch does not emit OoT asset headers yet. The checked-in headers
|
||||
> under `soh/assets` are unaffected; only regenerating them is.
|
||||
|
||||
```bash
|
||||
# If you need to regenerate the asset headers to check them into source
|
||||
cmake --build build-cmake --target ExtractAssetHeaders
|
||||
@@ -278,6 +286,10 @@ cmake --build build-cmake --target clean
|
||||
```
|
||||
|
||||
#### Regenerate Asset Headers
|
||||
> **Currently unavailable.** The Torch migration removed the ZAPD-based header
|
||||
> generator, and Torch does not emit OoT asset headers yet. The checked-in headers
|
||||
> under `soh/assets` are unaffected; only regenerating them is.
|
||||
|
||||
```bash
|
||||
# If you need to regenerate the asset headers to check them into source
|
||||
cmake --build build-cmake --target ExtractAssetHeaders
|
||||
@@ -287,7 +299,7 @@ cmake --build build-cmake --target ExtractAssetHeaders
|
||||
1. Requires that your build machine is setup with the tools necessary for your platform above
|
||||
2. Requires that you have the switch build tools installed
|
||||
3. Clone the Ship of Harkinian repository
|
||||
4. Place one or more [compatible](#compatible-roms) roms in the `OTRExporter` directory with namings of your choice
|
||||
4. Place one or more [compatible](#compatible-roms) roms in the `roms` directory with namings of your choice
|
||||
|
||||
```bash
|
||||
cd Shipwright
|
||||
@@ -308,7 +320,7 @@ cmake --build build-switch --target soh_nro
|
||||
1. Requires that your build machine is setup with the tools necessary for your platform above
|
||||
2. Requires that you have the Wii U build tools installed
|
||||
3. Clone the Ship of Harkinian repository
|
||||
4. Place one or more [compatible](#compatible-roms) roms in the `OTRExporter` directory with namings of your choice
|
||||
4. Place one or more [compatible](#compatible-roms) roms in the `roms` directory with namings of your choice
|
||||
|
||||
```bash
|
||||
cd Shipwright
|
||||
|
||||
Reference in New Issue
Block a user