我想为我的项目添加一个外部依赖项。我要添加的是Leptonica库作为子模块。
我的项目具有以下目录结构:
|root
CMakeLists.txt
|
-bin
|-build |-buildsystem |
-executable
|-leptonica
|--CMakeLists.txt
|--cmake
|---Configure.cmake
|-production
在我的根CMakeLists.txt
文件中,我添加了
ADD_SUBDIRECTORY(${ROOT_DIR}/leptonica)
不幸的是,CMake 没有在Configure.cmake
正确的目录中搜索:
CMake Error at leptonica/CMakeLists.txt:107 (include):
include could not find load file:
Configure
CMake Error: File
<root>/cmake/templates/LeptonicaConfig-version.cmake.in does not exist.
CMake Error at leptonica/CMakeLists.txt:113 (configure_file):
configure_file Problem configuring file
当我自己构建项目时,一切都很顺利。在我看来,问题出在CMAKE_SOURCE_DIR
. 当使用add_subdirectory
它时,它具有ROOT
CMake的值ROOT/leptonica
,因此它正在搜索错误的路径 - 正如您在 Leptonica CMake 中看到的那样,它用于确定其文件的路径。
解决这个问题的正确方法应该是什么 - 我应该在CMAKE_SOURCE_DIR
调用ROOT/leptonica
之前add_subdirectory
设置并在完成后将其设置回来,还是存在其他一些更优雅的解决方案?