我需要括号转义字符来避免在将 make 命令解析为 add_custom_target 时在 CMake 中引用特殊字符。根据我的理解,这更像是一个语法问题,CMake 文档中没有涉及。
一个例子是:
add_custom_target ( defined_path ALL .exe <args1> | ( ! grep ... )
在此示例中,扩展名为 <args1>
解析为 | "(" grep ... ")"
.不幸的是,在方括号前附加反斜杠仅适用于字符串情况,即分配给带有集合的变量:set ( something "\(" )
.即使这样,变量本身也会在 build.make 中被引号包围。同样,使用 separate_arguments 解析预先格式化的列表也会使用引号解析。
没有make格式的完整命令执行成功。
最佳答案
Cmake 需要在目标命令中显式调用 shell
关于regex - 自定义目标命令的CMake括号转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31722618/