【发布时间】:2013-04-17 05:45:47
【问题描述】:
我正在尝试使用 ADD_CUSTOM_COMMAND 将一些自定义构建命令添加到我的 vc2010 项目中。但是:
[1] 我只是发现 CMAKE 会自动插入比我预期更多的代码。
例如,我希望命令完全是:
"c:\Some Folder\MyTool.exe" -arg0 -arg1
CMakeLists.txt中对应的代码如下:
add_custom_command( OUTPUT ${outfile}
COMMAND "c:\Some Folder\MyTool.exe" ARGS "-arg0 -arg1"
# COMMAND "\"c:\Some Folder\MyTool.exe\"" will FAIL to be parsed!
MAIN_DEPENDENCY ${infile}
VERBATIM)
但实际上我得到了:
setlocal
c:\Some Folder\MyTool.exe "-arg0 -arg1"
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
这不是我想要的。我也尝试过字符串:COMMAND "\"${MYTOOL_PATH}\" -arg0 -arg1",但 CMake 只是未能解析它,因为字符串前面有一个引号。
所以很糟糕,我不能引用命令字符串,因为路径 c:\Some Folder\MyTool.exe 包含空格。
[2] 我还注意到 CMake 会自动扩展我的依赖路径。
如果我在命令中添加DEPENS "$(PATH_MACRO)",最终会得到CMake自动扩展的依赖路径:C:\MySolutionDir\$(PATH_MACRO);但我只想要$(PATH_MACRO),因为我会确保visual studio 理解$(PATH_MACRO) 所指的内容。
这是我的问题:
CMake 如何只接受我的原始输入,而不自动扩展路径或插入我不期望的代码?我将确保我的输入对 Visual Studio 有效。谢谢!
PS。我的 CMake 版本:2.8.10.2。 VS版本:visual studio 2010 Ultimate
【问题讨论】:
标签: cmake