我在代理后面工作,我必须使用一些第三方工具。我不能假定在将使用此脚本的每台计算机上都设置了代理。
尽管在脚本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?