文件下载将忽略CMakeLists中设置的HTTP_PROXY

时间:2018-08-16 19:01:29

标签: curl cmake http-proxy

我在代理后面工作,我必须使用一些第三方工具。我不能假定在将使用此脚本的每台计算机上都设置了代理。 尽管在脚本file(DOWNLOAD)中设置了代理,并且ExternalProject_Add也不起作用。仅在运行此脚本之前设置了环境变量http_proxy(或Windows上的HTTP_PROXY)时,它才起作用。

cmake_minimum_required(VERSION 3.8.0)
project(external VERSION 0.1.0 LANGUAGES CXX)
include(ExternalProject)

set(ENV{HTTP_PROXY}  "myproxyx:8080")

ExternalProject_Add(
  catch-external
  PREFIX ${CMAKE_BINARY_DIR}/Catch
  URL https://github.com/philsquared/Catch/archive/v1.10.0.tar.gz
  CONFIGURE_COMMAND ""
  BUILD_COMMAND ""
  INSTALL_COMMAND ""
  LOG_DOWNLOAD ON
)

ExternalProject_Get_Property(catch-external source_dir)
include_directories(${source_dir}/single_include)

# It also fails:
# file(DOWNLOAD https://github.com/philsquared/Catch/archive/v1.10.0.tar.gz ./catch.tar.gz)

add_executable(main main.cpp)
add_dependencies(main catch-external)

例如。在Windows上,这对我有用(当然有正确的地址): 设置HTTP_PROXY =“ http:// myproxy:8080”并设置HTTPS_PROXY =“ http:// myproxy:8080”和cmake。

受影响的cmake版本是3.12.0。

有没有办法在cmake中将代理地址传递给libcurl?

0 个答案:

没有答案