CMakelist - if(DEFINED)语法

时间:2017-04-06 11:47:25

标签: c++ bash unix makefile cmake

我正在浏览一个CMakelist.txt文件,该文件包含一个包含 src tests 文件夹的C ++项目条目。 我需要知道以下语法的含义是什么?

if(DEFINED BUILD_TESTS)
    add_subdirectory(tests)
endif(DEFINED BUILD_TESTS)

由于 了rG

1 个答案:

答案 0 :(得分:3)

您可以随时查看manual,不过我认为这里很清楚:

if(DEFINED BUILD_TESTS)

检查是否在环境中定义了变量BUILD_TESTS。如果是这样,:

add_subdirectory(tests)

add_subdirectory是一个built in function(cmake有那些),它将一个名为tests(surprise)的目录添加到需要构建/编译的东西列表中。

BUILD_TESTS本身就是一个CMAKE变量,它将决定是否测试'将成为Makefile的一部分。感谢@Tsyvarev指出这一点。