aboutsummaryrefslogtreecommitdiff
path: root/doc/dev notes.txt
diff options
context:
space:
mode:
authorspicyjpeg <88942473+spicyjpeg@users.noreply.github.com>2021-10-17 00:32:59 +0200
committerspicyjpeg <88942473+spicyjpeg@users.noreply.github.com>2021-10-20 16:54:44 +0200
commit7a2e6dd9550376f7a0511e73b33194170d712384 (patch)
tree25c3e1f61176767753e0566bc0685ab52c50504a /doc/dev notes.txt
parent0a7f59de1eb079930e7c25ad35adc39c9946958c (diff)
downloadpsn00bsdk-7a2e6dd9550376f7a0511e73b33194170d712384.tar.gz
CMake fixes, improved CPack support, Windows instructions
Diffstat (limited to 'doc/dev notes.txt')
-rw-r--r--doc/dev notes.txt20
1 files changed, 20 insertions, 0 deletions
diff --git a/doc/dev notes.txt b/doc/dev notes.txt
index 8fd8d7f..1bc9ccd 100644
--- a/doc/dev notes.txt
+++ b/doc/dev notes.txt
@@ -153,6 +153,26 @@ ignore -isystem completely). I eventually gave up and just set the include
directories manually for each target, and for some reason CMake actually
started passing -I instead of -isystem to GCC.
+* When using CPack with NSIS, all CPACK_NSIS_* variables are passed to NSIS
+verbatim, i.e. without the usual slash-to-backslash path conversion that CMake
+does on Windows. Most Windows programs accept paths with slashes without issue,
+unfortunately the NSIS builder is not one of those. To add insult to injury,
+CMake doesn't even escape backslashes by default when quoting strings in the
+generated CPack config file! So you have to convert the paths manually *and*
+tell CMake to enable escaping by setting CPACK_VERBATIM_VARIABLES, like this:
+
+ set(CPACK_VERBATIM_VARIABLES ON)
+ foreach(
+ _var IN ITEMS
+ CPACK_NSIS_MUI_ICON
+ CPACK_NSIS_MUI_UNIICON
+ CPACK_NSIS_MUI_HEADERIMAGE
+ CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP
+ CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP
+ )
+ cmake_path(NATIVE_PATH ${_var} ${_var})
+ endforeach()
+
* Not a CMake/CPack bug per se, but NSIS is picky about the banner and header
images shown in generated installers. They must be Windows BMP version 3 files
with no alpha channel, no compression and no metadata. They can either be