cmake:add_dependencies、add_test、add_link_options
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目标属性。
还没有评论,来说两句吧...