CMakelist-如果(已定义)语法 我正在通过一个CMAKLIST.TXT文件,它有一个C++项目的条目,包含一个 SRC < /St>和一个测试文件夹。 我需要知道下面的语法是什么意思 if(DEFINED BUILD_TESTS) add_subdirectory(tests) endif(DEFINED BUILD_TESTS)

CMakelist-如果(已定义)语法 我正在通过一个CMAKLIST.TXT文件,它有一个C++项目的条目,包含一个 SRC < /St>和一个测试文件夹。 我需要知道下面的语法是什么意思 if(DEFINED BUILD_TESTS) add_subdirectory(tests) endif(DEFINED BUILD_TESTS),c++,bash,unix,makefile,cmake,C++,Bash,Unix,Makefile,Cmake,谢谢 rG您可以随时检查a,尽管我认为这里很清楚: if(DEFINED BUILD_TESTS) 检查环境中是否定义了变量BUILD_TESTS。如果是的话: add_subdirectory(tests) add_子目录是一个(cmake有这些)目录,它将一个名为tests(惊奇)的目录添加到需要构建/编译的内容列表中 BUILD\u TESTS本身是一个CMAKE变量,它将确定“TESTS”是否将成为Makefile的一部分。感谢@Tsyvarev指出这一点。您可以随时检查a,尽管我认

谢谢 rG

您可以随时检查a,尽管我认为这里很清楚:

if(DEFINED BUILD_TESTS)
检查环境中是否定义了变量BUILD_TESTS。如果是的话:

add_subdirectory(tests)
add_子目录
是一个(cmake有这些)目录,它将一个名为tests(惊奇)的目录添加到需要构建/编译的内容列表中

BUILD\u TESTS
本身是一个CMAKE变量,它将确定“TESTS”是否将成为Makefile的一部分。感谢@Tsyvarev指出这一点。

您可以随时检查a,尽管我认为这里很清楚:

if(DEFINED BUILD_TESTS)
检查环境中是否定义了变量BUILD_TESTS。如果是的话:

add_subdirectory(tests)
add_子目录
是一个(cmake有这些)目录,它将一个名为tests(惊奇)的目录添加到需要构建/编译的内容列表中


BUILD\u TESTS
本身是一个CMAKE变量,它将确定“TESTS”是否将成为Makefile的一部分。感谢@Tsyvarev指出这一点。

感谢您的快速回复。我不知道“构建测试”的定义是什么。这就是问题所在。我正在经历一个全新的项目,我知道的不多。这会检查“环境”,就像你在运行
make
之前/期间定义的那样。这可以在配置文件、Makefile本身或shell中完成。否则,Makefile将假定您不想构建测试。另一个选项是在运行
make
时放置
BUILD\u TESTS=1
。没有定义它是一个完全可行的选项。@kabanus:Expression
defined BUILD\u TESTS
只检查CMake变量,而不检查环境变量。@Tsyvarev感谢您指出这一点,我忽略了这一点-我会修正的。如果有人读到这篇文章,我之前的评论是错误的。谢谢你的快速回复。我不知道“构建测试”的定义是什么。这就是问题所在。我正在经历一个全新的项目,我知道的不多。这会检查“环境”,就像你在运行
make
之前/期间定义的那样。这可以在配置文件、Makefile本身或shell中完成。否则,Makefile将假定您不想构建测试。另一个选项是在运行
make
时放置
BUILD\u TESTS=1
。没有定义它是一个完全可行的选项。@kabanus:Expression
defined BUILD\u TESTS
只检查CMake变量,而不检查环境变量。@Tsyvarev感谢您指出这一点,我忽略了这一点-我会修正的。如果有人读到这篇文章,我之前的评论是错误的。