如何在CMakeList中构建相互依赖的库

如何在CMakeList中构建相互依赖的库,cmake,Cmake,在项目的根目录中,有两个库文件夹,一个是lib1,另一个是lib2 在lib1文件夹中,有如下文件: lib1Config.cmake.in + lib1ConfigVersion.cmake.in + CMakeList.txt lib2Config.cmake.in + lib2ConfigVersion.cmake.in + CMakeList.txt 在lib2文件夹中,有如下文件: lib1Config.cmake.in + lib1ConfigVersion.cmake.in +

在项目的根目录中,有两个库文件夹,一个是lib1,另一个是lib2

在lib1文件夹中,有如下文件:

lib1Config.cmake.in + lib1ConfigVersion.cmake.in + CMakeList.txt
lib2Config.cmake.in + lib2ConfigVersion.cmake.in + CMakeList.txt
在lib2文件夹中,有如下文件:

lib1Config.cmake.in + lib1ConfigVersion.cmake.in + CMakeList.txt
lib2Config.cmake.in + lib2ConfigVersion.cmake.in + CMakeList.txt
在lib2中,CMakeList.txt包含一个FIND_包(lib1必需)。当我尝试在根目录中运行cmake时,它只调用add_子目录(lib1)和add_子目录(lib2),lib2中的CMakeList.txt会抱怨找不到lib1Config.cmake。那么,我的问题是:我如何才能做出适当的调整,使其发挥作用


仅供参考:这里,lib1实际上是,lib2是。我正在尝试将它们包含在项目的lib文件夹中。有可能做到这一点吗?

这里的问题是,osgBullet试图在osgWorks上使用
find_package
,但在配置osgBullet时,osgWorks尚未构建和安装

这可以通过以下方式解决(在osgBullet和您的项目中)


那么,我应该将什么样的库放入项目的lib文件夹中呢。我不知道这里的区别。通过阅读配置模块,我认为OSGWWorks创建了以下目标:osgwTools、osgwQuery、osgwMx和osgwControls。因此,其中任何一个都可以用来检查osgWorks是否添加了
add\u子目录
cmake -H<my-source> -Bb -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=$PWD/install \
    "-DCMAKE_PREFIX_PATH=$PWD/install;<other-deps-install-dirs>"