conan入门(三十一):在命令行(shell)中从profile中读取配置参数

最近使用conan来执行本地或交叉编译时,我发现我需要知道当前profile定义的编译器的类型和版本以及平台,希望用profile中定义的os,arch,compier生成安装路径名如windows-msvc-x86_64,该怎么实现呢?

conan profile show

基本的思路就是用 conan profile show命令获取profile中的配置参数,(参见 https://docs.conan.io/2/reference/commands/profile.html,
执行 conan profile show --format=json可以以json 格式输出当前profile(host及build)中定义所有的参数
如下:

{"host": {"settings": {"arch": "x86_64","build_type": "Release","compiler": "gcc","compiler.cppstd": "gnu11","compiler.libcxx": "libstdc++11","compiler.version": "5.2","os": "Windows"},"package_settings": {},"options": {"boost/*:without_stacktrace": "True"},"tool_requires": {},"conf": {},"build_env": ""},"build": {"settings": {"arch": "x86_64","build_type": "Release","compiler": "gcc","compiler.cppstd": "gnu11","compiler.libcxx": "libstdc++11","compiler.version": "5.2","os": "Windows"},"package_settings": {},"options": {"boost/*:without_stacktrace": "True"},"tool_requires": {},"conf": {},"build_env": ""}
}

有了这个json,就可以用python的json工具来读取其中的内容了

示例一

如下命令读取host profile的编译类型字段(host.settings.compiler)

conan profile show --format=json | python -c "import sys, json; print(json.load(sys.stdin)['host']['settings']['compiler'])"

输出

gcc

示例二

如下读取compiler,arch,os字段拼写生成完整的类machine描述

conan profile show --format=json | python -c "import sys, json; j=json.load(sys.stdin)['host']['settings'];m=j['os']+'-'+j['compiler']+'-'+j['arch']; print(m.lower())"

输出

windows-gcc-x86_64

参考资料

《profile》
《Parse JSON using Python?》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/184831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI】【工具】五个推荐的AI视频制作工具

【详细视频介绍】 https://www.bilibili.com/video/BV1aH4y11752/ 【DESCRIPT】 直接在线使用 用修改文档的方法来编辑视频。 导入视音频文件后Descript会生成相应的描述文档,通过修改此文档你就可以实时获得修改后的视频和音频。 自动加字幕当然也很方便。 还带…

行业研究:2023年建筑涂料市场需求及发展方向分析

目前绿色化经济成为社会经济主旋律,涂料行业作为高污染行业,国家层面出台了一系列政策规划引导行业向绿色、安全、环保发展。例如,禁止使用高VOCs含量的溶剂型涂料,推广水性涂料等低VOCs含量涂料,鼓励外商投资高性能涂…

14.docker部署应用的两种企业实践

1.介绍 1.1 说明 这里仅仅说明一下在企业应用的两种简单实践,并不包含自动化这套东西。这里说的两种实践,是我在工作中不同公司使用的两种部署方式,仅供大家参考。 1.2 两种部署方式 第一种:是把环境和app都一起打成一个镜像&…

说说和的区别。

&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。 &&还…

软考知识点介绍--Redis数据库

软考知识点介绍--Redis数据库 一、公务员考试报考条件 在2018年的数据库系统工程师的考试中,出现了下面这道选择题: Redis是一种NoSQL数据库,具体地说,是________________存储数据库。 (A)键-值 &#…

MongoDB快速入门及其SpringBoot实战

MongoDB快速入门及其SpringBoot实战 MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库。由 C 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展&am…

单体架构demo

idea 新建maven项目 1、外层pom.xml 2、jar 包pom.xml 3、主要pom.xml 这个打包插件放在有main 启动模块中 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifact…

跨境独立站是什么?跨境电商独立站的作用又是什么?

跨境独立站是一种面向海外消费者的跨境电商交易模式&#xff0c;由卖家自己搭建或使用第三方平台搭建的网站进行交易&#xff0c;不需要依赖任何中介或平台。具体而言&#xff0c;跨境电商独立站是独立于其他大型电商平台存在的网站&#xff0c;通常是通过建立自己的电商平台来…

Windows系统IIS服务配置与网站搭建,结合内网穿透实现公网访问

文章目录 1.前言2.Windows网页设置2.1 Windows IIS功能设置2.2 IIS网页访问测试 3. Cpolar内网穿透3.1 下载安装Cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5.结语 1.前言 在网上各种教程和介绍中&#xff0c;搭建网页都会借助各种软件的帮助&#xf…

玻色量子企业荣誉

2023年 2023.7 玻色量子创始人&COO马寅荣获“优秀共产党员”荣誉称号 2023.4 斩获“双金”&#xff01;玻色量子在中国移动第七届创客马拉松大赛脱颖而出 2023.1 再创佳绩&#xff01;玻色量子荣膺2022年德勤中国“朝阳明日之星” 2023.1 玻色量子荣为第二届朝阳区“…

如何实现快速排序

1 问题 在我们学习Python过程中&#xff0c;会经常遇到很多数值&#xff0c;在一些题目中会让我们进行简单的排序&#xff0c;但如果数值变多&#xff0c;那么我们如何用更简单的方法实现这些数值快速排序呢&#xff1f; 2 方法 快速排序主要思想为取数组中一个数作为基准值&am…

Vue基本使用(一)

&#x1f4d1;前言 本文主要是【Vue】——Vue基本使用的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&#x…

SSH基础和高级用法

SSH基础和高级用法 SSH&#xff08;Secure Shell&#xff09;是一种安全协议&#xff0c;用于在不安全的网络上提供安全的远程登录和数据传输。以下是一些SSH的用法和高级用法&#xff1a; 基本用法&#xff1a; 远程登录&#xff1a;使用ssh命令可以实现在本地计算机上远程…

网站域名前出现小锁标志是什么情况?有什么影响吗?

在浏览网页时&#xff0c;我们经常会在某些网站域名前面发现小锁标志&#xff0c;而有的网站则没有&#xff0c;这是什么原因造成的呢&#xff1f;这两种情况有什么区别吗&#xff1f; 网站域名前出现小锁是什么情况&#xff1f; 如果仔细观察就会发现域名前面有小锁的网站是…

Spring的事务传播行为

文章目录 说一下Spring的事务传播行为 今天来和大家聊聊spring中使用的事务传播行为&#xff0c; 说一下Spring的事务传播行为 spring事务的传播行为说的是&#xff0c;当多个事务同时存在的时候&#xff0c;spring如何处理这些事务的行为。 ① PROPAGATION_REQUIRED&#xf…

CVE-2023-25573:MeterSphere 任意文件下载漏洞复现[附POC]

文章目录 MeterSphere 任意文件下载&#xff08;CVE-2023-25573&#xff09;漏洞复现[附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 MeterSphere 任意文件下载&#xff08;CVE-2023-25573&#xff09;漏洞…

图扑软件受邀出席高交会-全球清洁能源创新博览会

“相聚鹏城深圳&#xff0c;共享能源盛宴” 第二十五届中国国际高新技术成果交易会(简称“高交会”)于 11 月 15-18 日在深圳盛大开幕。高交会由商务部、科学技术部、工业和信息化部、国家发展改革委、农业农村部、国家知识产权局、中国科学院、中国工程院和深圳市人民政府共同…

OpenCV4.x图像处理实例-常见图像滤镜特效实现

常见20多种图像滤镜特效实现 文章目录 常见20多种图像滤镜特效实现0、准备1、亮度调节2、细节强化3、底片效果4、卡通效果5、浮雕效果6、铅笔素描效果7、夏季或温色滤镜8、冬季或冷色滤波9、Splash滤镜10、双色调(Duo-Tone)滤镜11、日光(Daylight)滤镜12、60sTVs效果13、高…

Android性能优化- 从SharedPreferences到MMKV

前言 前面Android性能优化 - 从SharedPreferences跨越到DataStore一文主要介绍了DataStore的实现原理&#xff0c;以及DataStore相对于SharedPreferences的提升&#xff0c;本文主要简述MMKV相对于SharedPreferences存储的使用及优劣势&#xff0c;以及MMKV原理&#xff0c;以…

Handler系列-IdleHandler

1.IdleHandler是一个interface public final class MessageQueue {public static interface IdleHandler {boolean queueIdle();} } 2.当MessageQueue无Message 如果mIdleHandlers有IdleHandler需要执行&#xff0c;则触发IdleHandler public final class MessageQueue {pr…