一尘不染

下载tar.gz软件包时不支持的协议

linux

我刚刚将CMake从2.8版本升级到了3.2版本。

在CMake 2.8中,它的工作方式像一个魅力,但是,升级后,它失败了。

我正在尝试使用ExternalProject_Add()CMake函数构建第三方库。

ExternalProject_Add(
  luacov
  URL https://github.com/keplerproject/luacov/archive/v0.7.tar.gz
  DOWNLOAD_DIR ${EXTERNAL_PROJECT_DOWNLOAD_DIR}
  CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${MY_TOOLCHAIN_FILE}
  SOURCE_DIR ${EXTERNAL_PROJECT_SRC_DIR}/luacov
  BINARY_DIR ${EXTERNAL_PROJECT_BUILD_DIR}/luacov
  UPDATE_COMMAND ""
  PATCH_COMMAND ""
)

我的观察:

  1. 使用GIT_REPOSITORY选项,ExternalProject_Add()允许httphttps协议下载外部项目。
  2. 使用URL选项,ExternalProject_Add()仅允许http,但不允许https协议下载外部项目。

问题:

有什么办法可以使用https协议下载和构建外部项目?

错误:

[ 16%] Performing download step (download, verify and extract) for 'luacov'
-- downloading...
 src='https://github.com/keplerproject/luacov/archive/v0.7.tar.gz'
 dst='/home/build/my_build/external_projects/downloads/v0.7.tar.gz'
 timeout='none'
CMake Error at /home/build/my_build/luacov-prefix/src/luacov-stamp/download-luacov.cmake:21 (message):
 error: downloading
'https://github.com/keplerproject/luacov/archive/v0.7.tar.gz' failed

status_code: 1
status_string: "Unsupported protocol"
log: Protocol "https" not supported or disabled in libcurl

Closing connection -1

make[3]: *** [luacov-prefix/src/luacov-stamp/luacov-download] Error 1
make[2]: *** [CMakeFiles/luacov.dir/all] Error 2
make[1]: *** [CMakeFiles/luacov.dir/rule] Error 2
make: *** [luacov] Error 2

阅读 431

收藏
2020-06-07

共1个答案

一尘不染

在我的文档中ExternalProject_Add(),我使用了GIT_REPOSITORYinsted URL选项。

#URL https://github.com/keplerproject/luacov/archive/v0.7.tar.gz
GIT_REPOSITORY https://github.com/keplerproject/luacov.git

luacov下载并成功构建。

对于任何https协议,请使用功能DOWNLOAD_COMMAND选项ExternalProject_Add()

DOWNLOAD_COMMAND wget https://github.com/keplerproject/luacov/archive/v0.7.tar.gz

并按预期工作。

谢谢。

2020-06-07