我尝试使用cmake在本地构建ORTools github包,它构建时没有任何错误。然而,我们计划最终使用的环境没有出站网络连接。我看到的问题是,https://github.com/google/or-tools/blob/v9.4/cmake/dependencies/CMakeLists.txt执行一个Git来下载依赖项并添加它们。由于没有出站网络访问,此步骤失败,我无法构建依赖项。为了避免这种情况,我们计划手动下载依赖项并将它们添加到https://github.com/google/or-tools/blob/v9.4/cmake/dependencies/文件夹中。我对CMake非常陌生,我不知道需要做什么更改才能适应这种情况。
例如,如果我克隆了Zlib v1.2.11存储库并将其添加到https://github.com/google/or-tools/blob/v9.4/cmake/dependencies/中,那么需要将以下代码片段更改为什么?
# ##############################################################################
# ZLIB
# ##############################################################################
if(BUILD_ZLIB)
message(CHECK_START "Fetching ZLIB")
list(APPEND CMAKE_MESSAGE_INDENT " ")
FetchContent_Declare(
zlib
GIT_REPOSITORY "https://github.com/madler/ZLIB.git"
GIT_TAG "v1.2.11"
PATCH_COMMAND git apply --ignore-whitespace "${CMAKE_CURRENT_LIST_DIR}/../../patches/ZLIB.patch")
FetchContent_MakeAvailable(zlib)
list(POP_BACK CMAKE_MESSAGE_INDENT)
message(CHECK_PASS "fetched")
endif()
可以使用FetchContent_Declare指向已经包含源文件的目录吗?还有别的选择吗?
发布于 2022-10-19 15:19:58
您可以为SOURCE_DIR
指定FetchContent_Declare
参数并省略下载选项:
FetchContent_Declare(
zlib
SOURCE_DIR <path/to/existing/directory>
PATCH_COMMAND git apply --ignore-whitespace "${CMAKE_CURRENT_LIST_DIR}/../../patches/ZLIB.patch"
)
这与添加命令的工作方式相同,FetchContent_Declare
接受该命令的选项。
https://stackoverflow.com/questions/74123491
复制相似问题