cmake:add_dependencies、add_test、add_link_options 小鱼儿 2022-10-11 13:48 166阅读 0赞 # add\_dependencies # 在顶层目标之间添加依赖关系。 add_dependencies(<target> [<target-dependency>]...) 使顶层< target >依赖于其他顶层目标,以确保它们在< target >之前构建。顶层目标是由add\_executable()、add\_library()或add\_custom\_target()命令之一创建的目标(但不是由CMake生成的类似于install的目标)。 添加到导入的目标或接口库中的依赖项在其位置上被传递,因为目标本身不构建。 3.3新版功能:允许向接口库添加依赖项。 请参阅add\_custom\_target()和add\_custom\_command()命令的DEPENDS选项,以便在自定义规则中添加文件级依赖项。请参阅OBJECT\_DEPENDS源文件属性,将文件级依赖项添加到对象文件。 # add\_test # 向要由ctest运行的项目添加测试(1)。 add_test(NAME <name> COMMAND <command> [<arg>...] [CONFIGURATIONS <config>...] [WORKING_DIRECTORY <dir>] [COMMAND_EXPAND_LISTS]) 添加名为< name >的测试。测试名称可以包含任意字符,如果需要,可以用引号参数或括号参数表示。参见政策CMP0110。选项包括: * `COMMAND`:指定测试命令行。如果< command >指定了一个可执行目标(由add\_executable()创建),它将自动被构建时创建的可执行文件的位置所取代。 * `CONFIGURATIONS`:将测试的执行限制在指定的配置上 * `WORKING_DIRECTORY`: * 设置WORKING\_DIRECTORY测试属性以指定要在其中执行测试的工作目录。 * 如果未指定,则运行测试时将当前工作目录设置为与当前源目录对应的构建目录。 * `COMMAND_EXPAND_LISTS`: * 3.16新版功能。 * 命令参数中的列表将被展开,包括那些使用生成器表达式创建的列表。 如果设置了WILL\_FAIL测试属性,则给定的测试命令将退出,代码0表示通过,非0表示失败,反之亦然。任何写入到stdout或stderr的输出都将被ctest(1)捕获,但不会影响通过/失败状态,除非使用了PASS\_REGULAR\_EXPRESSION、FAIL\_REGULAR\_EXPRESSION或SKIP\_REGULAR\_EXPRESSION测试属性。 看个例子: add_test(NAME mytest COMMAND testDriver --config $<CONFIG> --exe $<TARGET_FILE:myexe>) 这将创建一个测试mytest,它的命令运行一个testDriver工具,传递配置名和目标myexe生成的可执行文件的完整路径。 注意,只有在调用了enable\_testing()命令时,CMake才会生成测试。CTest模块会自动调用该命令,除非BUILD\_TESTING选项被关闭。 add_test(<name> <command> [<arg>...]) 使用给定的命令行添加一个名为< name >的测试。与上面的NAME签名不同,没有在命令行上执行转换以支持目标名称或生成器表达式。 # add\_link\_options # 3.13新版功能。 为当前目录下的可执行库、共享库或模块库目标添加选项到链接步骤,这些选项是在调用此命令后添加的 add_link_options(<option> ...) 此命令可用于添加任何链接选项,但也有其他命令用于添加库(target\_link\_libraries()或者link\_libraries())。请参阅目录和目标LINK\_OPTIONS属性的文档。 注意:此命令不能用于为静态库目标添加选项,因为它们不使用链接器。要添加archiver或MSVC LIBRARY标志,请参见STATIC\_LIBRARY\_OPTIONS目标属性。
还没有评论,来说两句吧...