According to https://github.com/rust-lang/cc-rs/#external-configuration-via-environment-variables spaces nor escapes for spaces are not supported in e.g. C(XX)FLAGS. In xbuild we use CFLAGS to set a --sysroot path, and this can occasionally contain spaces on Windows machines (because the toolchain is unpacked to a user folder, and users like to have Firstname Surname as username and profile directory).
A likable solution is new CARGO_ENCODED_RUSTFLAGS-like variables, where spaces within individual args are supported by requiring the user to replace space delimiters in between separate arguments with the \x1f ASCII Unit Separator: https://doc.rust-lang.org/cargo/reference/environment-variables.html, to allow more mechanical piecing-together of these variables without messing around with nested quotes or backslash-escapes.
Referencing rust-mobile/xbuild#124, where this is one of the deciding factors to build our Android compiler support differently.
According to https://github.com/rust-lang/cc-rs/#external-configuration-via-environment-variables spaces nor escapes for spaces are not supported in e.g.
C(XX)FLAGS. Inxbuildwe useCFLAGSto set a--sysrootpath, and this can occasionally contain spaces on Windows machines (because the toolchain is unpacked to a user folder, and users like to haveFirstname Surnameas username and profile directory).A likable solution is new
CARGO_ENCODED_RUSTFLAGS-like variables, where spaces within individual args are supported by requiring the user to replace space delimiters in between separate arguments with the\x1fASCII Unit Separator: https://doc.rust-lang.org/cargo/reference/environment-variables.html, to allow more mechanical piecing-together of these variables without messing around with nested quotes or backslash-escapes.Referencing rust-mobile/xbuild#124, where this is one of the deciding factors to build our Android compiler support differently.