From b8c5f31a5fd9501001a561056dd5467f99e57536 Mon Sep 17 00:00:00 2001 From: Peter Feerick <5500713+pfeerick@users.noreply.github.com> Date: Mon, 12 Oct 2026 04:16:16 +0000 Subject: [PATCH] docs(windows): pass build options space-separated, not semicolon-joined The Windows build scripts joined -D options with ';' inside one quoted value. That only worked because CollectCommandLineArgs forwarded the value unescaped and ExternalProject split it back on ';'. Since fbae71964a the ';' is escaped so multi-path values stay intact, and the joined options now reach the sub-builds as a single value (e.g. "Unknown PCB 'X10 -DPCBREV=T16'"). Use space-separated options, as tools/build-common.sh does, for BUILD_OPTIONS and BUILD_TYPE, and note how to update older scripts. Also add the missing asciitree and typing_extensions to the Python package list to match pyproject.toml. Fixes #7900 Co-Authored-By: Claude Opus 5.5 --- docs/building/windows.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/building/windows.md b/docs/building/windows.md index d79e2ca186e..7baf3ed5c0f 100644 --- a/docs/building/windows.md +++ b/docs/building/windows.md @@ -91,9 +91,9 @@ REM cd %EDGETX_REPO% if %BUILD_DEBUG%=="yes" ( - set BUILD_TYPE="-DDEBUG=YES;-DCMAKE_BUILD_TYPE=Debug" + set "BUILD_TYPE=-DDEBUG=YES -DCMAKE_BUILD_TYPE=Debug" ) else ( - set BUILD_TYPE="-DCMAKE_BUILD_TYPE=Release" + set "BUILD_TYPE=-DCMAKE_BUILD_TYPE=Release" ) cd %EDGETX_MAIN_DIR% @@ -163,7 +163,7 @@ Install Python package manager uv according to the installation instructions at: Continue on the command prompt at `C:\edgetx\build-tools`: ``` uv venv -uv pip install clang lz4 jinja2 pillow pyelftools aqtinstall pydantic +uv pip install asciitree clang jinja2 lz4 pillow pydantic pyelftools typing_extensions aqtinstall ``` ### Qt development framework @@ -201,7 +201,7 @@ set EDGETX_REPO=C:\edgetx\edgetx set EDGETX_BUILD_TOOLS=C:\edgetx\build-tools set BUILD_RADIO="TX16s" -set BUILD_OPTIONS="-DPCB=X10;-DPCBREV=TX16S" +set "BUILD_OPTIONS=-DPCB=X10 -DPCBREV=TX16S" set BUILD_LANGUAGE="EN" set BUILD_DEBUG="no" set BUILD_FW="yes" @@ -215,4 +215,6 @@ and start it. After the build finishes, you can find the binaries under `C:\edgetx\build-output-` (firmware binary under subfolder `arm-none-eabi`, Companion and Simulator binaries together with simulator library under folder `native` and Companion installer under subfolder `native\companion`). Note! Be sure to wipe the `C:\edgetx\build-output-` content every time you change the build options. -See https://github.com/EdgeTX/edgetx/blob/main/tools/build-common.sh for BUILD_OPTIONS to use for various EdgeTX supported radios. Note that whereas the shell script at GitHub has spaces as delimeters between the keys, then in the Windows batch file, you neet to use semicolon as a delimeter. +See https://github.com/EdgeTX/edgetx/blob/main/tools/build-common.sh for BUILD_OPTIONS to use for various EdgeTX supported radios. Separate the options with spaces, exactly as in that script, and keep the quotes around the whole `"BUILD_OPTIONS=..."` assignment so that cmake receives each option as a separate argument. + +Note! Do not separate the options with semicolons, e.g. `set BUILD_OPTIONS="-DPCB=X10;-DPCBREV=TX16S"`. This older form of the script passes all options to cmake as a single value and the build fails with an error such as `Unknown PCB 'X10 -DPCBREV=TX16S'`. If you have an existing build script written this way, change it to the form shown above, and do the same for any other variable holding more than one `-D` option (e.g. `PATHS` or `BUILD_TYPE`), then wipe the build output folder.