添加测试项目以补充现有项目

时间:2013-06-27 17:34:44

标签: cmake

我目前正在帮助迁移一组Visual Studio项目以使用CMake。目前,所有项目都已迁移并正在建设中。但是,我们还没有重新整合我们的单元测试。

有没有办法为单元测试创​​建单独的可执行文件而无需重新编译依赖项目的所有源文件?换句话说,是否有一种简单的方法可以让测试项目链接到依赖项目生成的目标文件?

以下是两个项目的示例结构:应用程序和测试:

Foo
  bar.cpp
  baz.cpp
  main.cpp // entry for app executable

TestFoo
  test-bar.cpp // requires linking to bar
  test-baz.cpp // requires linking to baz
  main.cpp // entry for test executable

1 个答案:

答案 0 :(得分:4)

如果使用CMake版本> = 2.8.8,则可以使用Objects Library:

add_library(bar OBJECT a.c)

然后链接(事实上并没有真正链接)它到foo:

add_executable(foo main.cpp $<TARGET_OBJECTS:bar>)

和bar:

add_executable(testfoo main.cpp $<TARGET_OBJECTS:bar>)

对象库不会创建库文件,而是以某种方式作为共享对象。您可以在此处找到更多信息:http://www.cmake.org/Wiki/CMake/Tutorials/Object_Library