I am trying to set the CMAKE_CROSSCOMPILING_EMULATOR
variable in my cmake toolchain file so that it runs wine with the WINEPATH
environment set to WINEPATH="/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix"
.
Here is what I tried so far:
set(CMAKE_CROSSCOMPILING_EMULATOR WINEPATH="/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix" wine)
produces
WINEPATH="/usr/x86_64-w64-mingw32/lib /usr/lib/gcc/x86_64-w64-mingw32/9.3-posix" wine
It does not work because the semicolon was replaced by a space, and the initial quote is escaped.
I tried to escape the semicolon:
set(CMAKE_CROSSCOMPILING_EMULATOR WINEPATH="/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix" wine)
But that produces the same result. I read that question: How do I correctly pass CMake list (semicolon-sep) of flags to set_target_properties?, and tried this:
set(CMAKE_CROSSCOMPILING_EMULATOR WINEPATH="/usr/x86_64-w64-mingw32/lib\;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix" wine)
It does produce a semicolon, but the whole WINEPATH part of the string is now quoted, which fails to run:
"WINEPATH="/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix"" wine
So my question is: how do I set the CMAKE_CROSSCOMPILING_EMULATOR variable so that it produces:
WINEPATH="/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix" wine