mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-12-21 23:58:51 -05:00
Windows Build Assets Tweak (#4486)
* Change CMake process to copy assets necessary for OTR creation to VS run directory. Remove reference to ExtractAssets target from Windows build instructions. * Unify build instructions where appropriate across PC platforms. Clarify commented parts of some commands. * PR feedback.
This commit is contained in:
parent
d6ebed59dc
commit
1df91890fe
@ -22,7 +22,7 @@ It is recommended that you install Python and Git standalone, the install proces
|
|||||||
|
|
||||||
_Note: Be sure to either clone with the ``--recursive`` flag or do ``git submodule update --init`` after cloning to pull in the libultraship submodule!_
|
_Note: Be sure to either clone with the ``--recursive`` flag or do ``git submodule update --init`` after cloning to pull in the libultraship submodule!_
|
||||||
|
|
||||||
2. Place one or more [compatible](#compatible-roms) roms in the `OTRExporter` directory with namings of your choice
|
2. After setup and initial build, use the built-in OTR extraction to make your oot.otr/oot-mq.otr files.
|
||||||
|
|
||||||
_Note: Instructions assume using powershell_
|
_Note: Instructions assume using powershell_
|
||||||
```powershell
|
```powershell
|
||||||
@ -30,22 +30,17 @@ _Note: Instructions assume using powershell_
|
|||||||
cd Shipwright
|
cd Shipwright
|
||||||
|
|
||||||
# Setup cmake project
|
# Setup cmake project
|
||||||
& 'C:\Program Files\CMake\bin\cmake' -S . -B "build/x64" -G "Visual Studio 17 2022" -T v143 -A x64 # -DCMAKE_BUILD_TYPE:STRING=Release (if you're packaging)
|
# Add `-DCMAKE_BUILD_TYPE:STRING=Release` if you're packaging
|
||||||
# Extract assets & generate OTR (run this anytime you need to regenerate OTR)
|
& 'C:\Program Files\CMake\bin\cmake' -S . -B "build/x64" -G "Visual Studio 17 2022" -T v143 -A x64
|
||||||
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target ExtractAssets # --config Release (if you're packaging)
|
|
||||||
# Compile project
|
|
||||||
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 # --config Release (if you're packaging)
|
|
||||||
|
|
||||||
# Now you can run the executable in .\build\x64
|
# Generate soh.otr
|
||||||
|
|
||||||
# If you need to clean the project you can run
|
|
||||||
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target clean
|
|
||||||
|
|
||||||
# If you need to regenerate the asset headers to check them into source
|
|
||||||
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target ExtractAssetHeaders
|
|
||||||
|
|
||||||
# If you need a newer soh.otr only
|
|
||||||
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target GenerateSohOtr
|
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target GenerateSohOtr
|
||||||
|
|
||||||
|
# Compile project
|
||||||
|
# Add `--config Release` if you're packaging
|
||||||
|
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64
|
||||||
|
|
||||||
|
# Now you can run the executable in .\build\x64 or run in Visual Studio
|
||||||
```
|
```
|
||||||
|
|
||||||
### Developing SoH
|
### Developing SoH
|
||||||
@ -76,6 +71,19 @@ cd "build/x64"
|
|||||||
& 'C:\Program Files\CMake\bin\cpack.exe' -G ZIP
|
& 'C:\Program Files\CMake\bin\cpack.exe' -G ZIP
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Additional CMake Targets
|
||||||
|
#### Clean
|
||||||
|
```powershell
|
||||||
|
# If you need to clean the project you can run
|
||||||
|
C:\Program Files\CMake\bin\cmake.exe --build build-cmake --target clean
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Regenerate Asset Headers
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
## Linux
|
## Linux
|
||||||
### Install dependencies
|
### Install dependencies
|
||||||
#### Debian/Ubuntu
|
#### Debian/Ubuntu
|
||||||
@ -124,13 +132,16 @@ cd Shipwright
|
|||||||
git submodule update --init
|
git submodule update --init
|
||||||
|
|
||||||
# Generate Ninja project
|
# Generate Ninja project
|
||||||
cmake -H. -Bbuild-cmake -GNinja # -DCMAKE_BUILD_TYPE:STRING=Release (if you're packaging) -DPython3_EXECUTABLE=$(which python3) (if you are using non-standard Python installations such as PyEnv)
|
# Add `-DCMAKE_BUILD_TYPE:STRING=Release` if you're packaging
|
||||||
|
# Add `-DPython3_EXECUTABLE=$(which python3)` if you are using non-standard Python installations such as PyEnv
|
||||||
|
cmake -H. -Bbuild-cmake -GNinja
|
||||||
|
|
||||||
# Generate soh.otr
|
# Generate soh.otr
|
||||||
cmake --build build-cmake --target GenerateSohOtr
|
cmake --build build-cmake --target GenerateSohOtr
|
||||||
|
|
||||||
# Compile the project
|
# Compile the project
|
||||||
cmake --build build-cmake # --config Release (if you're packaging)
|
# Add `--config Release` if you're packaging
|
||||||
|
cmake --build build-cmake
|
||||||
|
|
||||||
# Now you can run the executable in ./build-cmake/soh/soh.elf
|
# Now you can run the executable in ./build-cmake/soh/soh.elf
|
||||||
# To develop the project open the repository in VSCode (or your preferred editor)
|
# To develop the project open the repository in VSCode (or your preferred editor)
|
||||||
@ -153,11 +164,9 @@ cpack -G External (creates appimage)
|
|||||||
# If you need to clean the project you can run
|
# If you need to clean the project you can run
|
||||||
cmake --build build-cmake --target clean
|
cmake --build build-cmake --target clean
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Regenerate Asset Headers
|
#### Regenerate Asset Headers
|
||||||
```bash
|
```bash
|
||||||
# If you need to regenerate the asset headers to check them into source
|
# If you need to regenerate the asset headers to check them into source
|
||||||
cp <path to your ROM> OTRExporter
|
|
||||||
cmake --build build-cmake --target ExtractAssetHeaders
|
cmake --build build-cmake --target ExtractAssetHeaders
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -172,32 +181,24 @@ _Note: If you're using Visual Studio Code, the [cpack plugin](https://marketplac
|
|||||||
# Clone the repo
|
# Clone the repo
|
||||||
git clone https://github.com/HarbourMasters/Shipwright.git
|
git clone https://github.com/HarbourMasters/Shipwright.git
|
||||||
cd ShipWright
|
cd ShipWright
|
||||||
|
|
||||||
# Clone the submodule libultraship
|
# Clone the submodule libultraship
|
||||||
git submodule update --init
|
git submodule update --init
|
||||||
# Copy the baserom to the OTRExporter folder
|
|
||||||
cp <path to your ROM> OTRExporter
|
|
||||||
# Generate Ninja project
|
|
||||||
cmake -H. -Bbuild-cmake -GNinja # -DCMAKE_BUILD_TYPE:STRING=Release (if you're packaging)
|
|
||||||
# Extract assets & generate OTR (run this anytime you need to regenerate OTR)
|
|
||||||
cmake --build build-cmake --target ExtractAssets
|
|
||||||
# Compile the project
|
|
||||||
cmake --build build-cmake # --config Release (if you're packaging)
|
|
||||||
|
|
||||||
# Copy oot.otr into the Application Support directory
|
# Generate Ninja project
|
||||||
cp build-cmake/soh/oot.otr ~/Library/Application\ Support/com.shipofharkinian.soh/
|
# Add `-DCMAKE_BUILD_TYPE:STRING=Release` if you're packaging
|
||||||
|
cmake -H. -Bbuild-cmake -GNinja
|
||||||
|
|
||||||
|
# Generate soh.otr
|
||||||
|
cmake --build build-cmake --target GenerateSohOtr
|
||||||
|
|
||||||
|
# Compile the project
|
||||||
|
# Add `--config Release` if you're packaging
|
||||||
|
cmake --build build-cmake
|
||||||
|
|
||||||
# Now you can run the executable file:
|
# Now you can run the executable file:
|
||||||
./build-cmake/soh/soh-macos
|
./build-cmake/soh/soh-macos
|
||||||
# To develop the project open the repository in VSCode (or your preferred editor)
|
# To develop the project open the repository in VSCode (or your preferred editor)
|
||||||
|
|
||||||
# If you need to clean the project you can run
|
|
||||||
cmake --build build-cmake --target clean
|
|
||||||
|
|
||||||
# If you need to regenerate the asset headers to check them into source
|
|
||||||
cmake --build build-cmake --target ExtractAssetHeaders
|
|
||||||
|
|
||||||
# If you need a newer soh.otr only
|
|
||||||
cmake --build build-cmake --target GenerateSohOtr
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Generating a distributable
|
### Generating a distributable
|
||||||
@ -209,6 +210,19 @@ cd build-cmake
|
|||||||
cpack
|
cpack
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Additional CMake Targets
|
||||||
|
#### Clean
|
||||||
|
```bash
|
||||||
|
# If you need to clean the project you can run
|
||||||
|
cmake --build build-cmake --target clean
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Regenerate Asset Headers
|
||||||
|
```bash
|
||||||
|
# If you need to regenerate the asset headers to check them into source
|
||||||
|
cmake --build build-cmake --target ExtractAssetHeaders
|
||||||
|
```
|
||||||
|
|
||||||
## Switch
|
## Switch
|
||||||
1. Requires that your build machine is setup with the tools necessary for your platform above
|
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
|
2. Requires that you have the switch build tools installed
|
||||||
|
@ -606,6 +606,9 @@ endif()
|
|||||||
################################################################################
|
################################################################################
|
||||||
# Pre build events
|
# Pre build events
|
||||||
################################################################################
|
################################################################################
|
||||||
|
if (MSVC)
|
||||||
|
set(MSVC_CMD ${CMAKE_COMMAND} -E copy_directory $<TARGET_FILE_DIR:soh>/assets ${CMAKE_BINARY_DIR}/soh/assets)
|
||||||
|
endif()
|
||||||
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
|
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
TARGET ${PROJECT_NAME}
|
TARGET ${PROJECT_NAME}
|
||||||
@ -618,6 +621,7 @@ if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
|
|||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ActorList_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ActorList_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ObjectList_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ObjectList_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/SymbolMap_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/SymbolMap_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
|
||||||
|
COMMAND ${MSVC_CMD}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
################################################################################
|
################################################################################
|
||||||
|
Loading…
Reference in New Issue
Block a user