Estou tentando definir a CMAKE_CROSSCOMPILING_EMULATOR
variável em meu arquivo de conjunto de ferramentas cmake para que ele execute o wine com o WINEPATH
ambiente definido como WINEPATH="/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix"
.
Aqui está o que tentei até agora:
set(CMAKE_CROSSCOMPILING_EMULATOR WINEPATH="/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix" wine)
produz
WINEPATH=\"/usr/x86_64-w64-mingw32/lib /usr/lib/gcc/x86_64-w64-mingw32/9.3-posix" wine
Não funciona porque o ponto e vírgula foi substituído por um espaço e a aspa inicial foi escapada.
Tentei escapar do ponto e vírgula:
set(CMAKE_CROSSCOMPILING_EMULATOR WINEPATH="/usr/x86_64-w64-mingw32/lib\;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix" wine)
Mas isso produz o mesmo resultado. Eu li essa pergunta: Como passo corretamente a lista de sinalizadores do CMake (ponto e vírgula-set) para set_target_properties? e tentei isso:
set(CMAKE_CROSSCOMPILING_EMULATOR WINEPATH="/usr/x86_64-w64-mingw32/lib\\\;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix" wine)
Ele produz um ponto e vírgula, mas toda a parte WINEPATH da string agora está entre aspas, o que falha na execução:
"WINEPATH=\"/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix\"" wine
Então minha dúvida é: como faço para definir a variável CMAKE_CROSSCOMPILING_EMULATOR para que ela produza:
WINEPATH="/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix" wine
Você precisa citar a palavra, não parte da palavra.
WINEPATH=
não é um programa.env
é um programa.Consulte https://cmake.org/cmake/help/latest/manual/cmake-language.7.html#unquoted-argument as seções ao redor e a
note
seção.Uma maneira muito mais simples é apenas criar um script de shell (jump).