在CMakeLists.txt中打开或关闭BII_IMPLICIT_RULES_ENABLED时会怎么做?

时间:2014-12-25 18:08:25

标签: biicode

我想知道我在我的一个CMakeLists.txt文件中关闭的BII_IMPLICIT_RULES_ENABLED标志,以便根据biicode的建议获得在Mac上编译的OpenGL相关块。此设置仍然存在,一切正常,但我想了解更多相关信息。有人可以解释它究竟做了什么吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

BII_IMPLICIT_RULES_ENABLED激活系统库添加到包含某些标头的目标。例如,如果您的代码包含:

#include "math.h"

你在* nix系统,然后是图书馆" m" (libm)将通过TARGET_LINK_LIBRARIES添加到您的目标中。 您可以在HANDLE_SYSTEM_DEPS

中查看cmake / biicode.cmake文件中处理的标头

我的建议:尽可能将其置于假,并自行处理所需的系统库,正是您所做的。它很快就会被弃用,或者至少默认设置为False到新项目。如果出现问题或者biicode.cmake中存在错误,这个选项有时会引起麻烦,例如:在过去,它试图在windows中将libm添加到目标。它将逐渐被弃用,并可能由托管的一些CMake宏(如http://www.biicode.com/biicode/cmake中)替代,如果用户决定使用它们,可以由用户使用,但不会像现在那样自动完成。