在单个cmake
项目中拥有一些相互依赖的库和一些可执行文件的惯用方法是什么,并且cmake
计算馆际依赖关系,并生成非递归的makefile,以便空编译会很快(至少对于unix)。
这个example似乎过时了,在最近的cmake中并没有真正起作用,似乎生成了递归的makefile。
答案 0 :(得分:1)
根据CMake FAQ生成的递归Makefile是必要的设计:
CMake实际上并不生成遵循目录结构的真正递归的makefile。它生成一个固定的3级makefile结构,其中每个级别都有一个定义的目的:
- Makefile:命令行界面入口点。将“make”调用映射到对2级makefile的调用:
make -f CMakeFiles/Makefile2 ...
- CMakeFiles / Makefile2:目标间依赖关系。以依赖顺序评估目标,为每个目标调用3级中的依赖和构建步骤:
make -f CMakeFiles/$(target).dir/build.make .../depend
make -f CMakeFiles/$(target).dir/build.make .../build
- CMakeFiles / .dir / build.make:文件级依赖关系和规则:
醇>
depend:
评估自定义命令(生成生成源文件),然后扫描源以获取隐式依赖项。build:
加载上一步的依赖项扫描结果。编译和链接。