我已经非常成功地使用CMake使用ExternalProject_Add
函数执行构建,但我的公司最近放入了一个代理服务器......这打破了上述构建脚本。
下载步骤在提取阶段失败,因为下载的tarball只是来自代理服务器的重定向请求(至少我认为这是它获取的微小tarball中包含的内容)。
我在CMake邮件列表上找到了这个post。我想也许如果它适用于file()
命令它可能适用于ExternalProject_Add()
命令。我设置了http_proxy
和HTTP_PROXY
个环境变量,但仍然收到了相同的错误。我曾考虑用DOWNLOAD_COMMAND
调用覆盖wget
参数,因为此命令似乎与代理设置有关。但是,我想知道是否有更好的方法。
UPDATE 1:我检查了小tarball的内容,它确实包含HTML;但是,这是一个需要身份验证的通知。我不确定为什么要求身份验证,因为我没有输入wget
的任何登录信息。
wget
显示以下输出:
Resolving webproxy... 10.0.1.50
Connecting to webproxy|10.0.1.50|:80... connected.
Proxy request sent, awaiting response... 200 OK
Download begins here...
更新2 :我还注意到apt-get
和svn
都失败了这个新的代理设置,但git
没有...... {{ 1}}抱怨“服务器发送了意外的返回值(307代理重定向)......”非常令人困惑......
谢谢!
答案 0 :(得分:2)
您使用的是什么版本的CMake?该文件(DOWNLOAD命令使用版本2.8.2中的follow redirect标志启动,由以下提交引入:
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ef491f78218e255339278656bf6dc26073fef264
使用自定义DOWNLOAD_COMMAND无疑是一种合理的解决方法。