我试图使用CMake在C++项目和它使用的库之间建立一些简单的依赖关系。
设置如下
- Project
- Dependency
项目本身包含源文件,这些源文件包含Dependency
的头文件,并且在生成可执行文件时,需要将其链接到Dependency
的静态库。
到目前为止,我可以做到这一点,但我必须手动在Project
的CMakeLists.txt
文件中指定Dependency
包含目录。我希望它能自动退出,并且我已经探索了使用find_package()
命令这样做的选项,但成功率有限,而且会使事情变得更加复杂。
我所想做的就是在Project
之前构建Dependency
,并使Project
链接到库及其包含目录。有没有一种简单简洁的方法可以做到这一点?
我当前的CMake文件:
项目
,文件CMakeLists.txt
:
cmake_minimum_required (VERSION 2.6)
project (Project)
include_directories ("${PROJECT_SOURCE_DIR}/Project")
add_subdirectory (Dependency)
add_executable (Project main.cpp)
target_link_libraries (Project Dependency)
add_dependencies(Project Dependency)
依赖项
,文件CMakeLists.txt
:
project(Dependency)
add_library(Dependency SomethingToCompile.cpp)
target_link_libraries(Dependency)