aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorspicyjpeg <88942473+spicyjpeg@users.noreply.github.com>2022-02-07 01:06:33 +0100
committerspicyjpeg <88942473+spicyjpeg@users.noreply.github.com>2022-02-07 02:35:02 +0100
commit40b7d95e9b16252d1aebb0706f3bba885f6e67cf (patch)
treeec7604008134f312c403f895661c4c4d6caa96b6 /doc
parent57cda18641d16ba4e4fec52b5514e48db8ee4593 (diff)
downloadpsn00bsdk-40b7d95e9b16252d1aebb0706f3bba885f6e67cf.tar.gz
Add LIBPSN00B_GENERATOR option, fix .incbin alignment
Diffstat (limited to 'doc')
-rw-r--r--doc/dev_notes.md21
-rw-r--r--doc/installation.md14
2 files changed, 30 insertions, 5 deletions
diff --git a/doc/dev_notes.md b/doc/dev_notes.md
index 4873a59..a96d6ef 100644
--- a/doc/dev_notes.md
+++ b/doc/dev_notes.md
@@ -164,7 +164,24 @@ _- spicyjpeg_
toolchain script has options that can be set via custom variables (like
`PSN00BSDK_TC` and `PSN00BSDK_TARGET` in PSn00bSDK), you'll have to set
`CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` to a list of variable names to be
- exported to generated dummy projects.
+ exported to generated dummy projects. Additionally you may need to set
+ `CMAKE_TRY_COMPILE_TARGET_TYPE` to `STATIC_LIBRARY` to prevent CMake from
+ invoking the linker.
+
+- When `project()` is called, CMake uses the value of `CMAKE_SYSTEM_NAME` to
+ determine default values for several variables and properties. Most of these
+ defaults are undocumented: e.g. setting the system name to `Generic` (as
+ suggested by the docs for bare metal targets) will result in CMake assuming
+ that the target platform does not support dynamic linking, so you'll have to
+ turn it back on by setting the `TARGET_SUPPORTS_SHARED_LIBS` global property
+ *after* invoking `project()`.
+
+- It is not possible to use custom toolchains (through toolchain files or by
+ setting `CMAKE_*_COMPILER` manually) with any of the Xcode or VS generators,
+ as their respective build systems handle compiler selection internally rather
+ than relying on variables passed by CMake. Ninja or `make` is thus always
+ required to build PSn00bSDK and any projects made with it, even if the
+ host-side tools are built using Xcode or MSVC.
- There is no way to use multiple toolchains (PS1 + host) in a single project,
even if you use `add_subdirectory()` to execute multiple project files
@@ -263,4 +280,4 @@ _- spicyjpeg_
space.
-----------------------------------------
-_Last updated on 2022-01-30 by spicyjpeg_
+_Last updated on 2022-02-06 by spicyjpeg_
diff --git a/doc/installation.md b/doc/installation.md
index 1646653..c766fd9 100644
--- a/doc/installation.md
+++ b/doc/installation.md
@@ -1,6 +1,14 @@
# Getting started with PSn00bSDK
+**IMPORTANT**: due to a bug in `libflac` (used by `mkpsxiso`), building using
+MinGW on Windows is currently broken. You'll have to install Visual Studio and
+pass `-G "Visual Studio <version>"` to CMake when configuring PSn00bSDK to use
+MSVC instead. Due to MSBuild limitations *you'll still need to install Ninja*
+in order to build the SDK, as MSBuild is not compatible with custom toolchains.
+This guide will be updated with detailed MSVC build instructions in the near
+future.
+
## Building and installing
The instructions below are for Windows and Linux. Building on macOS hasn't been
@@ -79,8 +87,8 @@ and installed properly.
**NOTE**: Ninja is used by default to build the SDK. If you can't get it to
work or don't have it installed, pass `-G "Unix Makefiles"` (or
- `-G "MSYS Makefiles"` on Windows) to the first command to build using `make`
- instead.
+ `-G "MinGW Makefiles"` on Windows) to the first command to build using
+ `make` instead.
6. Install the SDK to the path you chose (add `sudo` or run it from a command
prompt with admin privileges if necessary):
@@ -150,4 +158,4 @@ The toolchain script defines a few CMake macros to create PS1 executables, DLLs
and CD images. See the [reference](cmake_reference.md) for details.
-----------------------------------------
-_Last updated on 2021-12-29 by spicyjpeg_
+_Last updated on 2022-02-06 by spicyjpeg_