通过更改cmake的源码实现使用代理的下载命令
一些使用cmake构建的项目,使用file(download)
file(download)
命令拉取网上资源构建,通过查询资料,可以通过设置系统环境变量指定cmake使用的crul使用代理,该crul是在项目源码上编译嵌入的,而非外部shell调用.如果设置的代理不生效,则需要更改源码实现.
0.具有vs ide环境
1.上cmake官网下载源码
2.使用cmake构建cmake,并生成vs项目
3.找到cmake-3.18.4\cmake-3.18.4\Source\cmFileCommand.cxx
其中cmake-3.18.4\cmake-3.18.4需要更改为自己的版本
找到以下函数添加注释标注的代码即可
bool HandleDownloadCommand(std::vector<std::string> const& args,cmExecutionStatus& status)
{
.......cURLEasyGuard g_curl(curl);::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_URL, url.c_str());check_curl_result(res, "DOWNLOAD cannot set url: ");///curl_easy_setopt(curl, CURLOPT_PROXY, "http://127.0.0.1:port");curl_easy_setopt(curl, CURLOPT_HTTPPROXYTUNNEL, 1L);///.......
更改端口
因为cmake的下载命令是属于阻塞的命令,cmake会把这里阻塞的函数异步化,提早返回,同时会先建立文件,该文件长度大小为0,然后在下载数据,如果出现一些情况,比如crul的异常状态,构建脚本与cmake没有识别,而继续往下执行,则会出现后续的处理脚本出现上下文对不上的错误,例如找不到函数,使用未知函数.
另一方面,如果设置代理不通,或者对一部分,一些文件的链接不同也会出现上述的错误.
通过更改cmake的源码实现使用代理的下载命令相关推荐
- JDK源码解析 Runable是一个典型命令模式,Runnable担当命令的角色,Thread充当的是调用者,start方法就是其执行方法
JDK源码解析 Runnable是一个典型命令模式, Runnable担当命令的角色,Thread充当的是调用者,start方法就是其执行方法 /命令接口(抽象命令角色) public interfa ...
- Spring AOP 源码分析 - 创建代理对象
1.简介 在上一篇文章中,我分析了 Spring 是如何为目标 bean 筛选合适的通知器的.现在通知器选好了,接下来就要通过代理的方式将通知器(Advisor)所持有的通知(Advice)织入到 b ...
- 新年UI的拆红包源码/5级代理功能/会员中心充值接口完善
简介: [新年红包]2021新年UI的拆红包源码/5级代理功能/会员中心充值接口完善 网盘下载地址: http://kekewangLuo.net/USezepORogT0 图片:
- 知识付费阅读小程序源码,前端+后台+代理+分销
介绍: 知识付费阅读小程序源码,前端+后台源码,带有代理,分销,课程资源更新等等功能. 没有安装教程,微擎的就不多说了. 网盘下载地址: http://kekewangLuo.net/R9cbFxmn ...
- GDAL源码剖析(四)之命令行程序说明二
接博客GDAL源码剖析(四)之命令行程序说明一http://blog.csdn.net/liminlu0314/article/details/6978589 其中有个nearblack,gdalbu ...
- 小程序源码:全新动态视频壁纸下载支持多种分类短视频另外也有静态壁纸
这是一款主打动态视频壁纸的一款微信小程序源码 当然啦,里面也是有静态壁纸的 其实这款小程序也可以说是短视频小程序都可以 该款小程序全采集,另外支持多种流量主 大家应该知道小编之前也发过一款动态壁纸的小 ...
- 2020大数据学习资料,全套源码无加密网盘下载
点击上方蓝字"优派编程"选择"加为星标",第一时间关注原创干货 前言--–2020最新大数据完整版,全套源码无加密网盘下载 java大数据: 大数据(big d ...
- Mybatis源码学习-动态代理
Mybatis源码学习-动态代理 binding包下面是mybatis的mapper动态代理 // Mybatis官方手册建议通过mapper对象访问mybatis,因为使用mapper看起来更优雅 ...
- 帝国CMS虚拟商城源码自动发货网盘下载俄罗斯源码博客风格
帝国CMS虚拟商城源码自动发货网盘下载俄罗斯源码博客风格 支持游客下单,无需登录,发货为网盘下载形式 系统版本:帝国CMS7.5 UTF-8 服务器:win/linux 语言:PHP 数据库:MYSQ ...
- CPython入门----Fork源码到自己github并下载配置本地git
更多信息请关注 个人网站 一.基础准备工作 (1)首先在github注册一个自己的账号 (2)在windows上安装git,可参考 Git安装----Windows10系统 二.Fork源码 (1)打 ...
最新文章
- Cluster 注册表操作方法
- mysql 磁盘组_AIX使用LV创建ASM磁盘组
- python中uniform randint_python生成随机数:uniform(), randint(), gauss(), expovariate()
- 在上位计算机控制时不能将s7-200,plc控制系统编程题库.doc
- iOS开发实战小知识点(五)——获取JS meta异常
- 深度学习--Matlab使用LSTM长短期记忆网络对负荷进行分类
- python 相关系数函数会产生无穷大吗_python 求相关系数
- 追踪盗窃12亿用户登录数据的网络犯罪团伙
- 10种进阶方法让你快速测试端口连通性
- 让Fckeditor支持中文——解决“Error loading /fckeditor/fckstyles.xml ”
- MFC获取当前应用程序实例句柄的三种方法
- 在手机相册(ios设备相册)中创建相册
- TSC条码打印机 条形码ActiveXbarcode()方法参数详解
- html5 调用本地街景,H5案例分享:在移动端调用腾讯街景
- 互联网快讯:极米Z6X Pro、极米H3S音画表现出众;快狗打车赴港IPO;vivo回应造车传闻
- 「镁客早报」苹果将在德国停售iPhone 7&8;“刘强东事件”正式结案...
- Galaxy S III是史上最强的Android手机?
- 企业网络及应用层安全防护技术精要
- C语言调用 free 函数释放内存后指针指向及内存中的值是否改变的问题
- 利用python将json数据转换为csv格式