abh*_*jit 4 git dependencies build cmake or-tools
我尝试使用 cmake 在本地构建 ORTools github 包,并且构建没有任何错误。然而,我们计划最终使用的环境没有出站网络连接。我看到的问题是https://github.com/google/or-tools/blob/v9.4/cmake/dependency/CMakeLists.txt执行 Git 克隆来下载依赖项并添加它们。由于没有出站网络访问,此步骤失败,我无法构建依赖关系。为了避免这种情况,我们计划手动下载依赖项并将其添加到https://github.com/google/or-tools/blob/v9.4/cmake/dependency/文件夹中。我对 CMake 还很陌生,我不确定需要进行哪些更改才能适应这一点。
例如,如果我克隆 Zlib v1.2.11 存储库并将其添加到https://github.com/google/or-tools/blob/v9.4/cmake/dependency/,则以下代码片段需要更改为什么?
# ##############################################################################
# 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()
Run Code Online (Sandbox Code Playgroud)
FetchContent_Declare 可用于指向已包含源文件的目录吗?还有什么选择呢?
您可以指定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"
)
Run Code Online (Sandbox Code Playgroud)
这与ExternalProject_Add命令的工作方式相同,. 接受这些选项FetchContent_Declare。