我正在使用自定义的clang / llvm来构建我的项目。定制基本上是添加优化过程。在使用clang进行编译时,要将选项传递给我的通道,我正在使用:
clang [..] -mllvm -MyOption [..]
现在,我需要以这种方式传递多个选项:
clang [..] -mllvm -MyOption -mllvm -MyOption2=value [..]
结合CMake的
target_compile_options()
停止工作,CMake删除了第二个-mllvm
,因为它似乎认为它是重复的。target_compile_options(vslib INTERFACE -mllvm -MyOption)
target_compile_options(vslib INTERFACE -mllvm -MyOption2=val)
我尝试将
"
放在这两个选项周围,但不起作用。有没有办法用CMake做到这一点?
最佳答案
https://cmake.org/cmake/help/v3.12/command/target_compile_options.html:
因此,在您的情况下,将是:
target_compile_options(vslib INTERFACE "SHELL:-mllvm -MyOption" "SHELL:-mllvm -MyOption2=val")