我正在使用自定义的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")

10-08 01:05