2012-10-01 129 views
1

在ROOT文件夹中,我有一个CMakeFiles.txt,其中包含:add_subdirectory(gtest)。问题是,ROOT构建了一个名为API的文件,这是gtest正确构建所需的。CMake依赖关系 - 如何在构建子目录之前构建根目录

API依赖于由ROOT生成的文件。我如何获得它,以便在执行API的CMakeList之前API等待ROOT完全完成构建?我可以添加什么样的延迟?

谢谢!

回答

0

没有看到你的文件很难提供细节,但你只需告诉CMake gtest取决于API。有了这些信息,CMake会按照适当的顺序生成事物。

+0

命令是什么?我有项目(根)和项目(gtest),我只需在gtest的CMake中添加add_dependencies(gtest root)? – user1607549

+0

我基本上希望在开始构建gtest之前在ROOT中完成所有工作......我该怎么做?我真的被卡住了:( – user1607549

+2

这是错误的想法,CMake不明白“做这个,然后做这个,然后做这个”,而是告诉它什么取决于什么,并且找出一个序列构建一些能够确保在开始构建其他部分之前需要的所有部分的东西,如果gtest依赖于根中的所有内容,那么可以设置依赖关系,并且您将获得所需的内容。 gtest不依赖于,不要试图强迫CMake在根中构建所有东西;它将确保所有内容都能及时生成并被使用。 –