我有一个这样组织的大型预编译c ++代码库:
Project0/
libA/
include/
libA.so
libADependencies.txt -> depends on libB
libB/
include/
libB.so
libBDependencies.txt -> depends on libC
Project1/
libC/
include/
libC.so
libCDependencies.txt
...
这些项目都不是使用cmake构建的。
我正在编写使用cmake构建的新代码,该代码取决于其中的某些库。
我知道我的依赖项(在这里假设libA),每个依赖项也知道自己的依赖项(例如libA依赖于libB,libB依赖于libC)。请注意,没有外部依赖性。一切都在这里,在这些文件夹中。
我正在考虑编写一堆FindProjectX.cmake脚本,该脚本将为每个项目创建一个cmake包,每个库包含一个导入的目标。我最终会导入诸如Project0::libA
,Project0::libB
,Project1::libC
等的目标。
这很好,但是我不确定如何处理FindProjectX.cmake文件中依赖项的依赖项。我可以只从FindProject0.cmake调用find_package(Project1 REQUIRED COMPONENTS libC)
吗?
请注意,我有许多此类库和项目。我打算编写一个python脚本来自动生成这些FindProjectX.cmake脚本。