The build environment resolved ICU 78 headers while the host environment
had ICU 75 libraries (constrained by xerces-c, qt6-main, etc.). This
caused libFreeCADBase.so to contain icu_78 mangled symbols that couldn't
be found in the bundled ICU 75 libs at runtime:
undefined symbol: _ZN6icu_7813UnicodeString8fromUTF8ENS_11StringPieceE
Pin ICU explicitly in both recipe.yaml host deps and pixi.toml to ensure
headers and libs always match.
- remove build directory override, use build directory from CMakePresets.json
without this VSCode cannot use builddir created by pixi
- add *-debug and *-release commands everywhere
clang uses considerably less memory on Linux allowing more concurrent instances than with g++.
Using clang reduced build times on a machine from 63m to 32m.
pixi sets a variety of environment variables, which unfortunately includes compiler optimization flags.
This PR unsets the compiler flags for parity with other environments.
A consequence of this is that debug builds are no longer build with high optimization, which is a desirable outcome.
Windows requires running from an installed FreeCAD, not simply the build environment. This
commit performs the install and execution from the installation environment.