diff options
| author | spicyjpeg <88942473+spicyjpeg@users.noreply.github.com> | 2021-10-17 00:32:59 +0200 |
|---|---|---|
| committer | spicyjpeg <88942473+spicyjpeg@users.noreply.github.com> | 2021-10-20 16:54:44 +0200 |
| commit | 7a2e6dd9550376f7a0511e73b33194170d712384 (patch) | |
| tree | 25c3e1f61176767753e0566bc0685ab52c50504a /doc/dev notes.txt | |
| parent | 0a7f59de1eb079930e7c25ad35adc39c9946958c (diff) | |
| download | psn00bsdk-7a2e6dd9550376f7a0511e73b33194170d712384.tar.gz | |
CMake fixes, improved CPack support, Windows instructions
Diffstat (limited to 'doc/dev notes.txt')
| -rw-r--r-- | doc/dev notes.txt | 20 |
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 |
