cmake - 避免在 CMake add_custom_command 中引用

标签 cmake quotes

我正在尝试创建一个简单的批处理程序,它在一组文件上运行一个脚本。

因此,在 globbed 文件之后,我创建了以下自定义命令来执行脚本:

add_custom_command(OUTPUT ${RESOURCE_GFX} COMMAND ${EXE_GFX_EXPORT} ${GFX_EXPORT_PARAMETERS} ${RESOURCE_SWF})

哪里EXE_GFX_EXPORT是脚本程序,类似于C:\Program Files (x86)\Scaleform\GFx SDK 3.1\Bin\gfxexport.exe ; RESOURCE_SWF是运行脚本的文件;和 GFX_EXPORT_PARAMETERS是脚本的参数,形式为 -i DDS -share_images -qp .

CMake 将这个自定义命令“翻译”为:
"C:\Program Files (x86)\Scaleform\GFx SDK 3.1\Bin\gfxexport.exe" "-i DDS -share_images -qp" "C:\path\to\file.swf"

但是 gfxexport.exe无法处理双引号括起来的参数。有没有办法避免 CMake 自动将它们放在 GFX_EXPORT_PARAMETERS 周围多变的?

谢谢你们,
拉斐尔。

最佳答案

尝试使用 separate_arguments参数 GFX_EXPORT_PARAMETERS 上的函数在调用之前 add_custom_command :

separate_arguments(GFX_EXPORT_PARAMETERS_LIST WINDOWS_COMMAND "${GFX_EXPORT_PARAMETERS}")
add_custom_command(OUTPUT ${RESOURCE_GFX} COMMAND ${EXE_GFX_EXPORT} ${GFX_EXPORT_PARAMETERS_LIST} ${RESOURCE_SWF})

关于cmake - 避免在 CMake add_custom_command 中引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9870162/

相关文章:

CMake 找不到 X11 包

python - 使用CUDA安装opencv时出错-opencv_cudaarithm错误

linux - 来自外部 Parquet 项目静态库的 "undefined reference"错误

mysql - MySQL 中何时使用单引号、双引号和反引号

postgresql - 无法使用bindValue、Postgresql 绑定(bind)Doctrine DBAL 中的字符串值

mysql - MySQL 中何时使用单引号、双引号和反引号

c++ - 如何使用 CMake 对库的私有(private)特性 (TDD) 进行单元测试

c++ - 无法在 netbeans 中运行 C++ CMake 项目

javascript - 允许在 PEG.js 语法定义中使用引号和 unicode

mysql - MySQL 中何时使用单引号、双引号和反引号