CMAKE:自动添加依赖项的依赖项
CMAKE: automatically add dependencies of dependencies
我正在尝试将boost构建构建系统迁移到cmake。
boost build的一个功能是自动链接依赖项的依赖项。
例如:
助推构建:
我正在构建一个可执行的app
。取决于lib2
exe app
: [ glob *.cpp ]
/proj/lib2//lib2
;
反过来,lib2
依赖于lib1
lib lib2
: [ glob *.cpp ]
/proj/lib1//lib1
;
并且CCD_ 5不具有依赖性
lib lib1
: [ glob *.cpp ]
;
lib1
和lib2
都是静态库。
boost build将自动将lib1.a
添加到app
的链接器行,因为它知道lib2.a
依赖于lib1.a
cmake:
明确在target_link_libraries
指令中声明lib1
和lib2
有效:
lib1:
add_library(lib1 STATIC ${SOURCES})
lib2:
add_library(lib2 STATIC ${SOURCES})
应用程序:
add_executable(app ${SOURCES})
target_link_libraries(app lib1 lib2)
随着库数量的增长,这变得很麻烦。
target_link_libraries(app lib1 lib2 lib3 lib4 lib5 lib6 lib7 lib8 lib9 ... libN)
问题:
- 有没有办法指定
lib2
依赖于lib1
- 有没有办法告诉
app
拉入lib2
以及lib2
依赖什么
只需将target_link_libraries
添加到lib2
lib1:
add_library(lib1 STATIC ${SOURCES})
lib2:
add_library(lib2 STATIC ${SOURCES})
target_link_libraries(lib2 lib1)
应用程序:
add_executable(app ${SOURCES})
target_link_libraries(app lib2)
相关文章:
- 如何添加依赖于类本身的模板成员变量
- 当 lib 已添加到其他依赖项时,如何在 VS 中调试未解析的外部符号错误
- 如何在不添加对库的依赖的情况下添加与库结构的兼容性
- 在生成文件中添加源文件并更新依赖项
- CMake:如何添加不是"link"依赖项的依赖项
- 添加卡萨布兰卡依赖项 VS2017
- 如何使用 cmake 添加仅编译依赖项
- 将依赖项添加到现有共享对象库
- 如何为依赖项目标添加 cmake 定义
- 使用CMAKE添加仅汇编依赖项
- C ++为编译添加了一个非CPP(例如TXT文件)依赖项
- CMAKE:自动添加依赖项的依赖项
- 依赖于参数的名称查找:添加要查找的额外命名空间
- 添加本机静态依赖项
- Visual Studio是否不知从何而来地添加依赖项
- 将 Shell32.lib 的依赖添加到 WDK makefile
- CLion添加依赖项标头和源
- 向安装项目Win32应用程序Visual Studio添加依赖项
- 向GNU依赖项列表中添加文件
- 在Makefile中添加对未编译文件的依赖