aboutsummaryrefslogtreecommitdiff
path: root/doc/dev_notes.md
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/dev_notes.md
parent57cda18641d16ba4e4fec52b5514e48db8ee4593 (diff)
downloadpsn00bsdk-40b7d95e9b16252d1aebb0706f3bba885f6e67cf.tar.gz
Add LIBPSN00B_GENERATOR option, fix .incbin alignment
Diffstat (limited to 'doc/dev_notes.md')
-rw-r--r--doc/dev_notes.md21
1 files changed, 19 insertions, 2 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_