在我的库代码中,我有一堆 static_asserts。我想测试它们是否在预期条件下开火。
我想编写一系列测试文件和
有谁知道如何用cmake做到这一点?
AFAICT,try_compile 不是答案,因为它是在运行 cmake 时执行的。我需要在 make 期间执行这些检查。
最佳答案
您可以为这些测试设置一个“嵌套”项目,将其配置为 CMake 运行的一部分,然后使用 cmake --build
构建它。 ;像这样:
你正常的 CMakeLists.txt:
# ...
execute_process(
COMMAND ${CMAKE_COMMAND} path/to/test/project
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/TestProject
)
add_test(
NAME StaticAsserts
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/TestProject
COMMAND ${CMAKE_COMMAND} --build .
)
# ...
当然,测试命令实际上可以是一个运行
cmake --build
的包装脚本。在内部并处理其输出。作为替代方案,您也可以将嵌套项目的配置移动到测试中,也许使用 CTest 来驱动配置和构建。
关于c++11 - 如何使用 cmake 测试我的库中的 static_assert?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24692820/