cmake 无法正确解析命令行参数中的空格
cmake doesn't correctly parse whitespace in command line parameter
当我这样调用 cmake 时,一切正常:
cmake -G'Android Gradle - Ninja' ..
但是,我正在设置一个 bash 脚本,让我指定目标平台,动态更改 -G
参数。
#!/usr/bin/env bash
CMAKE_GENERATOR="Ninja"
if [[ $TARGET_PLATFORM == "android" ]] ; then
CMAKE_GENERATOR="'Android Gradle - Ninja'"
fi
cmake -G$CMAKE_GENERATOR ..
这给了我以下错误:
CMake Error: Could not create named generator 'Android
显然 cmake 在空格处拆分生成器名称并将其解释为多个参数。我已经尝试了多种转义 single/double 引号和空格的组合,但无法使其正常工作。我什至不确定这是 cmake 还是 bash 问题。有什么想法吗?
以下命令中缺少引号:
cmake -G$CMAKE_GENERATOR ..
应该是
cmake -G"$CMAKE_GENERATOR" ..
因为分词发生在参数展开之后more information in bash documentation
当我这样调用 cmake 时,一切正常:
cmake -G'Android Gradle - Ninja' ..
但是,我正在设置一个 bash 脚本,让我指定目标平台,动态更改 -G
参数。
#!/usr/bin/env bash
CMAKE_GENERATOR="Ninja"
if [[ $TARGET_PLATFORM == "android" ]] ; then
CMAKE_GENERATOR="'Android Gradle - Ninja'"
fi
cmake -G$CMAKE_GENERATOR ..
这给了我以下错误:
CMake Error: Could not create named generator 'Android
显然 cmake 在空格处拆分生成器名称并将其解释为多个参数。我已经尝试了多种转义 single/double 引号和空格的组合,但无法使其正常工作。我什至不确定这是 cmake 还是 bash 问题。有什么想法吗?
以下命令中缺少引号:
cmake -G$CMAKE_GENERATOR ..
应该是
cmake -G"$CMAKE_GENERATOR" ..
因为分词发生在参数展开之后more information in bash documentation