0
我想在生成器表达式 中使用cmake选项以打开某个编译标志。从documentation我不清楚如何实现这一点。在生成器表达式中使用cmake选项
我想写点东西像
option(MYOPTION " ... " OFF)
...
add_compile_options($<$<MYOPTION>:-lblas>)
不工作。
有没有办法做到这一点?
我想在生成器表达式 中使用cmake选项以打开某个编译标志。从documentation我不清楚如何实现这一点。在生成器表达式中使用cmake选项
我想写点东西像
option(MYOPTION " ... " OFF)
...
add_compile_options($<$<MYOPTION>:-lblas>)
不工作。
有没有办法做到这一点?
您的示例并未真正为此指定一个用例,我认为还有其他方法可以解决此问题(以及-lblas
作为链接器标记而不是编译选项)。仅提供您提供的信息,它看起来像什么,你可能想的是:。
option(MYOPTION "My Option" OFF)
...
add_compile_options($<BOOL:${MYOPTION}>:-lblas>)
#(or maybe you want?)
target_compile_definitions(YOUR_TARGET PRIVATE $<BOOL:${MYOPTION}>:-lblas>)
$<BOOL:...>
需要一个变量来协助评估(其中MYOPTION
满足还有,你可以使用文档中列出的其他逻辑表达式
CMake的文档[add_compiler_options](https://cmake.org/cmake/help/v3.9/command/add_compile_options .html)命令明确地说,它可以使用生成器表达式。一般来说,只要CMake文档都这么说,就可以使用生成器表达式。 – Tsyvarev
谢谢你指出,@Tsyvarev。我会纠正我的答案。 –
@饼干饼干谢谢你的回答。 -lblas的例子确实被严重挑选了。我的用例最终用于制定特定于选项的定义。 $:...>完美无缺! –
Wentzell