Cmake 使FetchContent与find_包兼容
我尝试添加我的项目在CMake上编译所需的所有依赖项。这将减少其他人在第一次编译项目时的开销 为了实现这一点,我尝试使用FetchContent。到目前为止还不错,当我链接生成的目标时,这根本不是问题。但现在我有了一个依赖于annother lib的库,它不作为子模块包含。lib尝试查找find_包上的依赖项。我怎样才能找到图书馆 到目前为止,我尝试的是:Cmake 使FetchContent与find_包兼容,cmake,Cmake,我尝试添加我的项目在CMake上编译所需的所有依赖项。这将减少其他人在第一次编译项目时的开销 为了实现这一点,我尝试使用FetchContent。到目前为止还不错,当我链接生成的目标时,这根本不是问题。但现在我有了一个依赖于annother lib的库,它不作为子模块包含。lib尝试查找find_包上的依赖项。我怎样才能找到图书馆 到目前为止,我尝试的是: 添加别名目标并定义find_包设置的所有变量 将LIB_DIR设置为build目录并调用find_package 下面是我的CMake代
- 添加别名目标并定义find_包设置的所有变量
- 将LIB_DIR设置为build目录并调用find_package
cmake_minimum_required(VERSION 3.14)
find_package(ZLIB)
if (NOT ZLIB_FOUND)
FetchContent_Declare(zlib_fetch
GIT_REPOSITORY https://github.com/madler/zlib.git
GIT_TAG cacf7f1d4e3d44d871b605da3b647f07d718623f
)
FetchContent_MakeAvailable(zlib_fetch)
set(ZLIB_DIR ${zlib_fetch_BINARY_DIR})
message(${zlib_fetch_BINARY_DIR})
#simulates the call in the other library:
find_package(ZLIB REQUIRED)
endif (NOT ZLIB_FOUND)
你找到解决办法了吗?我目前也遇到了同样的问题。覆盖
find\u包
功能的黑客攻击相当多。但是kitware已经开始将Fetch_内容集成到CMake中