CMake:如何创建一次运行./configure的CMakeLists.txt?

时间:2011-10-17 06:52:39

标签: cmake googletest

如何为gmock创建CMakeLists.txt以仅配置一次?

我试过了:

ADD_CUSTOM_TARGET(gmock DEPENDS $ {CMAKE_CURRENT_LIST_DIR} /gmock-1.6.0/lib/.libs/libgmock.a COMMAND cd $ {CMAKE_CURRENT_LIST_DIR} /gmock-1.6.0&& ./configure&& make )

但是每次都会执行./configure,即使我真的只需要运行一次。

顺便说一句,我很乐意使用FIND_PACKAGE()等...从长远来看,所以我不需要在更新gtest时进行更改,但此时,我只是想获取它无需每次配置即可构建。

2 个答案:

答案 0 :(得分:2)

你想对gtets或gmock源有构建依赖吗?如果是这样,gtest邮件列表上的这个thread可能有所帮助。简而言之,只需使用您的gtest或gmock源代码ADD_DIRECTORY,然后就可以依赖于那里定义的公共库目标。

答案 1 :(得分:1)

将gmock的configure和make调用拆分为两个单独的custom_targets,不要忘记为每个都添加一个依赖项。

对于configure-target,可能是configure.in或来自gmock的任何其他文件,这使得有必要重新运行configure和configure-target到make-target。

然后make-target应该依赖于你的一个目标,而不是libgmock.a(由make调用生成)。

HTH