一些使用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的源码实现使用代理的下载命令相关推荐

  1. JDK源码解析 Runable是一个典型命令模式,Runnable担当命令的角色,Thread充当的是调用者,start方法就是其执行方法

    JDK源码解析 Runnable是一个典型命令模式, Runnable担当命令的角色,Thread充当的是调用者,start方法就是其执行方法 /命令接口(抽象命令角色) public interfa ...

  2. Spring AOP 源码分析 - 创建代理对象

    1.简介 在上一篇文章中,我分析了 Spring 是如何为目标 bean 筛选合适的通知器的.现在通知器选好了,接下来就要通过代理的方式将通知器(Advisor)所持有的通知(Advice)织入到 b ...

  3. 新年UI的拆红包源码/5级代理功能/会员中心充值接口完善

    简介: [新年红包]2021新年UI的拆红包源码/5级代理功能/会员中心充值接口完善 网盘下载地址: http://kekewangLuo.net/USezepORogT0 图片:

  4. 知识付费阅读小程序源码,前端+后台+代理+分销

    介绍: 知识付费阅读小程序源码,前端+后台源码,带有代理,分销,课程资源更新等等功能. 没有安装教程,微擎的就不多说了. 网盘下载地址: http://kekewangLuo.net/R9cbFxmn ...

  5. GDAL源码剖析(四)之命令行程序说明二

    接博客GDAL源码剖析(四)之命令行程序说明一http://blog.csdn.net/liminlu0314/article/details/6978589 其中有个nearblack,gdalbu ...

  6. 小程序源码:全新动态视频壁纸下载支持多种分类短视频另外也有静态壁纸

    这是一款主打动态视频壁纸的一款微信小程序源码 当然啦,里面也是有静态壁纸的 其实这款小程序也可以说是短视频小程序都可以 该款小程序全采集,另外支持多种流量主 大家应该知道小编之前也发过一款动态壁纸的小 ...

  7. 2020大数据学习资料,全套源码无加密网盘下载

    点击上方蓝字"优派编程"选择"加为星标",第一时间关注原创干货 前言--–2020最新大数据完整版,全套源码无加密网盘下载 java大数据: 大数据(big d ...

  8. Mybatis源码学习-动态代理

    Mybatis源码学习-动态代理 binding包下面是mybatis的mapper动态代理 // Mybatis官方手册建议通过mapper对象访问mybatis,因为使用mapper看起来更优雅 ...

  9. 帝国CMS虚拟商城源码自动发货网盘下载俄罗斯源码博客风格

    帝国CMS虚拟商城源码自动发货网盘下载俄罗斯源码博客风格 支持游客下单,无需登录,发货为网盘下载形式 系统版本:帝国CMS7.5 UTF-8 服务器:win/linux 语言:PHP 数据库:MYSQ ...

  10. CPython入门----Fork源码到自己github并下载配置本地git

    更多信息请关注 个人网站 一.基础准备工作 (1)首先在github注册一个自己的账号 (2)在windows上安装git,可参考 Git安装----Windows10系统 二.Fork源码 (1)打 ...

最新文章

  1. Cluster 注册表操作方法
  2. mysql 磁盘组_AIX使用LV创建ASM磁盘组
  3. python中uniform randint_python生成随机数:uniform(), randint(), gauss(), expovariate()
  4. 在上位计算机控制时不能将s7-200,plc控制系统编程题库.doc
  5. iOS开发实战小知识点(五)——获取JS meta异常
  6. 深度学习--Matlab使用LSTM长短期记忆网络对负荷进行分类
  7. python 相关系数函数会产生无穷大吗_python 求相关系数
  8. 追踪盗窃12亿用户登录数据的网络犯罪团伙
  9. 10种进阶方法让你快速测试端口连通性
  10. 让Fckeditor支持中文——解决“Error loading /fckeditor/fckstyles.xml ”
  11. MFC获取当前应用程序实例句柄的三种方法
  12. 在手机相册(ios设备相册)中创建相册
  13. TSC条码打印机 条形码ActiveXbarcode()方法参数详解
  14. html5 调用本地街景,H5案例分享:在移动端调用腾讯街景
  15. 互联网快讯:极米Z6X Pro、极米H3S音画表现出众;快狗打车赴港IPO;vivo回应造车传闻
  16. 「镁客早报」苹果将在德国停售iPhone 7&8;“刘强东事件”正式结案...
  17. Galaxy S III是史上最强的Android手机?
  18. 企业网络及应用层安全防护技术精要
  19. C语言调用 free 函数释放内存后指针指向及内存中的值是否改变的问题
  20. 利用python将json数据转换为csv格式

热门文章

  1. ukey其他错误_关于税务UKey使用常见问题解答
  2. 无盘服务器pnp,锐起无盘PNP有哪些配置类型
  3. 基于大数据的舆情分析系统架构 - 架构篇
  4. android 如何解锁屏幕,2解锁屏幕破裂Android手机的方法(自由方式)
  5. 电梯远程监控维护系统方案
  6. JavaEE中级.20190615.易买网项目(一).隐藏域.
  7. (转)2012年度最佳Web前端开发工具和框架
  8. 叹服,华为高工手写344页高性能Java架构核心原理实战架构手册
  9. Linux快速入门教程
  10. 测试驱动开发(TDD)开发思路