2017-10-17 117 views
0

我想在生成器表达式 中使用cmake选项以打开某个编译标志。从documentation我不清楚如何实现这一点。在生成器表达式中使用cmake选项

我想写点东西像

option(MYOPTION " ... " OFF) 
... 
add_compile_options($<$<MYOPTION>:-lblas>) 

不工作。

有没有办法做到这一点?

回答

1

您的示例并未真正为此指定一个用例,我认为还有其他方法可以解决此问题(以及-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满足还有,你可以使用文档中列出的其他逻辑表达式

+2

CMake的文档[add_compiler_options](https://cmake.org/cmake/help/v3.9/command/add_compile_options .html)命令明确地说,它可以使用生成器表达式。一般来说,只要CMake文档都这么说,就可以使用生成器表达式。 – Tsyvarev

+0

谢谢你指出,@Tsyvarev。我会纠正我的答案。 –

+1

@饼干饼干谢谢你的回答。 -lblas的例子确实被严重挑选了。我的用例最终用于制定特定于选项的定义。 $ :...>完美无缺! – Wentzell