首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我可以为conanfile中的每个包指定不同的文件夹吗?

是的,您可以为conanfile中的每个包指定不同的文件夹。

在conanfile.py文件中,您可以使用package_folder属性来指定每个包的文件夹路径。package_folder属性是一个字符串,表示包的输出路径。

例如,假设您有一个名为my_package的包,您可以在conanfile.py中指定不同的文件夹路径如下:

代码语言:txt
复制
from conans import ConanFile

class MyPackageConan(ConanFile):
    name = "my_package"
    version = "1.0"
    settings = "os", "compiler", "build_type", "arch"

    def package(self):
        self.output.info("Packaging my_package...")
        self.copy("*.h", dst="include", src="src")
        self.copy("*.lib", dst="lib", keep_path=False)
        self.copy("*.dll", dst="bin", keep_path=False)
        self.copy("*.so", dst="lib", keep_path=False)
        self.copy("*.dylib", dst="lib", keep_path=False)
        self.copy("*.a", dst="lib", keep_path=False)

        # 指定包的文件夹路径
        self.package_folder = "path/to/package/folder"

在上面的示例中,self.package_folder被设置为path/to/package/folder,这将是my_package包的输出路径。

请注意,package_folder属性必须在package()方法中设置,以确保在打包过程中正确地指定文件夹路径。

关于Conan的更多信息和使用方法,您可以参考腾讯云的Conan产品文档:Conan产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

应该提交 vendor 目录依赖

vendor 目录(或者你安装依赖其它目录)都应该被添加进 .gitignore/svn:ignore/等等。最好这么做,然后让所有开发人员使用 Composer 来安装依赖。...在你自己 VCS(代码管理工具) 中将产生与你依赖资源重复历史记录。通过 git 一个 git 仓库安装添加依赖,将把它们视作子模块。...在每一个依赖安装后删除其下 .git 文件夹,然后你就可以添加它们到你 git repo 。...但这意味着你在运行 composer update 命令前需要先删除磁盘依赖文件。...通过上面的文字内容,我们知道在使用 Composer 项目的时候,我们不要把 vendor 内容也提交到代码管理库,而应该使用 Composer 自己在运行时候下载。

7910

conan入门(六):conanfile.txt conanfile.py区别

conan conanfile.txt conanfile.py区别 在之前博客《conan入门(四):conan 引用第三方库示例》我们以cJSON为例说明了如何在项目中引用一个conan 。...conanfile.txt 在这篇博客我们为了引用cjson/1.7.13库,创建了一个conanfile.txt文件用于指定json_test.c程序依赖库cjson [requires] cjson...conanfile.py 在《conan入门(三):上传预编译库(artifact)》,我们用到了create new创建一个新: 使用conan new命令创建基本配置: $ cd cjson.build...这些问题把刚conan入门搞糊涂了。...: conanfile.txt是一种简单conan配置定义方式,并不是每个程序员都懂python脚本(就不懂),对于开发人员如果只是作为一个消费者角色(consumer),想使用conan简化第三方库引用方式

72820

conan入门(二十五):imports将安装到本地项目或其他指定位置

conan imports将安装到本地项目或其他指定位置 在嵌入式平台开发想将conan用作包管理器。...例如,想运行conan install将依赖库安装在在本地项目目录,最好是直接安装到嵌入式平台供应商提供SDK框架,这样就可以直接利用SDK现成编译架构完成最终程序编译生成镜像。...否则每次编译后都要手工复制库文件到SDK文件夹或要创建软连接,这都太麻烦了。 imports可以实现这个要求。imports将文件从 ~/.conan 目录复制到指定位置。.../deps/lib include,lib为复制文件文件夹,必须是个相对路径,即为所有依赖库在本地仓库相对文件夹 *为指定要复制文件通配符,如*.h,*.a ./deps/include,..../deps/lib为文件复制目标文件夹,可以是个绝对路径,如果不是绝对路径,那么视为相对于当前项目文件夹相对路径 上面的例子,将项目的所有依赖库(cjson)include,lib下所有文件分别复制到项目文件夹

87840

conan入门(四):conan 引用第三方库示例

通过完整二进制包管理,它可以为任意数量不同版本创建和重用任意数量不同二进制文件(用于不同配置,如架构、编译器版本等),在所有平台上使用完全相同过程。...conan 命名约定 标准conan 名引用(reference)格式是:package_name/version@user/channel,用于在制品仓库唯一识别一个 package_name...,package_name/version是必须要有的字段.user,channel都是可选字段,上传用户在上传时可以不指定。...详细说明参见Conan官方文档《conanfile.txt》 conan search 创建conanfile.txt过程我们可以通过conan search cjson -r conancenter...在上面的执行conan install时指定..作为路径参数,即指定下载../conanfile.txt[requires]定义所有依赖库。

2.5K30

conan入门(一):conan 及 JFrog Artifactory 安装

Conan 可以为不同构建配置管理任意数量不同二进制文件,包括不同架构、编译器、编译器版本、运行时、C++ 标准库等。当二进制文件不适用于一种配置时,它们可以根据需要从源构建。...Conan 可以在每个平台上使用相同命令和流程创建、上传和下载二进制文件,从而节省大量开发和持续集成时间。二进制兼容性甚至可以在每个基础上进行配置和定制。...,执行上面的conan new命令后会生成如下文件: conanfile.py:在根文件夹中有一个conanfile.py,它是主要配置文件,负责定义构建和使用方式。...文件夹内容test_package现在对于理解包是如何创建并不重要,重要是: test_package文件夹不同于单元测试或集成测试。...它本身是一个小型柯南项目,它包含自己conanfile.py,以及它源代码,包括构建脚本,这取决于正在创建,并构建和执行一个需要小应用程序。 它不属于

4.1K41

conan入门(十九):封装第三方开源库cpp_redis示例

conan: 封装第三方开源库cpp_redis示例 在之前关于conan系列博客,已经介绍过如何引用Conan中央仓库(conan-center)预定义第三库(《conan入门(五):conan...cpp_redis是一个C++11实现redis client库,项目中需要使用它,但它目前并没有被Conan中央仓库收录,所以本文以cpp_redis为例介绍将第三方库封装为Conan过程。...conan create .根据配置文件 (同级文件夹conanfile.py) 构建二进制 conan create 命令行用法参见Conan官方文档《conan create》 执行conan.../4.3.1 -r ${repo} --all # ${repo}为私有制品库名字 –all 指定上传所有内容(配置文件conanfile.py,源码和二进制),如果不指定些选项,只上传除二进制之外所有文件...测试代码文件夹,这就需要根据不同第三方库来自己设计,关于cpp_redistest_package参见码云仓库 https://gitee.com/l0km/cpp_redis.build/tree

1.2K30

conan入门(九):NDK交叉编译自己conan项目塈profile定义

,jsonlib.c,只实现了一个功能从JSON字符串解析name指定字段内容,结果保存到输出缓冲区,JSON解析工作实际上是调用cJSON来实现。...profile 上一篇博客《conan入门(八):交叉编译自己conan项目》我们是以如下指定来执行交叉编译。...conanfile.py) 构建二进制 –test-folder None 参数指定不执行测试命令 -pr:h android_21_arm_clang 指定目标设备profile交叉编译配置文件...,如果配置文件不在Conan专门保存profile文件文件夹$HOME/.conan/profiles下,需要准确指定路径 -pr:b default 指定使用名为defaultprofile文件作为当前主机配置文件...-r ${repo} --all # ${repo}为私有制品库名字 –all 指定上传所有内容(配置文件conanfile.py,源码和二进制),如果不指定些选项,只上传除二进制之外所有文件

1.2K30

配置文件数据库连接串加密了,你以为就挖不出来

讲故事 前几天在调试物联柜终端上一个bug时发现 app.config 数据库连接串是加密,因为调试要切换数据库,需要将密文放到专门小工具上解密,改完连接串上数据库名,还得再加密贴到 app.config...私以为搞这么麻烦也就防防君子,像我这样 晓人,加不加密都是等于没加密,照样给你脱库。。。 二:使用 ILSpy 去脱库 1....从DAL/Repository层去反编译代码 要想得到明文数据库连接串,可以从代码反推,比如从 DAL 或者 Repository 找连接串字段 ConnectionString,这边终端程序是用...这些FCL类你是没法混淆从这些类上反推可以很轻松就能找到明文 ConnectionString ,所以这条路觉得是走不通。...从上图中可以看到,静态字段是在 Manager 类型对象 ,实例字段都是在 Manager 对象 ,对照这张图,只需要通过 windbg 找到 OleDbHelper 类型对象,也就是所谓 EEClass

61020

conan入门(三):上传预编译库(artifact)

所以以下情况我们可以考虑直接将本地已经编译好二进制文件生成conan: 当您无法从源代码构建时(当只有预编译库可用时)。...–bare -b 创建不需要编译配置文件 conan new会在当前文件夹下生成conanfile.py,修改了其中description,url,license,author,topics改为有意义值...1.7.15@cjson/1.7.15: Created package revision 86d7c021c2a785a1b8ea1fd00af1893c -pf --package-folder 指定要打包文件夹...-f --force 强制上传,如果指定参数,会强制覆盖原来存在。...os,compiler,compiler.version,arch参数用于指定交叉编译环境,如果未指定这些参数,则从$HOME/.conan/profiles/default读取默认值 这些字段不是随便填

2.8K20

conan入门(二十六):使用make编译erpcerpcgen(makefile)

,meson,本文以NXPEmbedded RPC为例说明conan如何使用make来构建项目。...目前只支持make构建,一个项目中用到了它,因为访问github比较慢,fork了一份代码到国内码云仓库:https://gitee.com/l0km/erpc.git 以下python脚本是为编译...文件夹添加到INCLUDE环境变量,否则会使用系统安装flexinclude os.environ['INCLUDES'] = self.deps_cpp_info["flex...在Windows编译时需要依赖MSYS2提供bash shell环境,而msys2/cci.latest本身也提供了默认MinGW编译器,这有可能与你当前系统安装编译版本不同,所以需要要通过环境变量...CC,CXX等强制指定使用你自己MinGW编译器,你可以在执行conan create命令时使用-e 参数来定义CC,CXX环境变量,但用起来挺麻烦,所以为了简化在Windows下编译时需要在$HOME

92230

conan入门(七):将自己项目生成conan

conan 将自己项目生成conan 在之前博客《conan入门(四):conan 引用第三方库示例》我们以cJSON为例说明了如何在项目中引用一个conan 。...,jsonlib.c,只实现了一个功能从JSON字符串解析name指定字段内容,结果保存到输出缓冲区,JSON解析工作实际上是调用cJSON来实现。...如果你看过上一篇博客《conan入门(六):conanfile.txt conanfile.py区别》以及《conan入门(一):conan 及 JFrog Artifactory 安装》就差不多可以知道...但是要手写一个conanfile.py好像还挺麻烦对python也是只知皮毛。 显然手写是不可能,conan new 命令就是用于创建一个新conan配置文件模板。...–all 指定上传所有内容(配置文件conanfile.py,源码和二进制),如果不指定些选项,只上传除二进制之外所有文件 关于 conan upload命令详细说明参见Conan官方文档:

1.3K10

conan入门(十):Windows下Android NDK交叉编译Boost

conan Windows下Android NDK交叉编译Boost 上一篇博客《conan入门(九):NDK交叉编译自己conan项目塈profile定义》我们以jsonlib为例说明了如何NDK...项目塈profile定义》android_21_arm_clang略有不同: 并且[options]增加了addr2line_location定义,否则交叉编译boost时候会报错: addr2line_location...profile交叉编译配置文件,如果配置文件不在Conan专门保存profile文件文件夹$HOME/.conan/profiles下,需要准确指定路径 -pr:b default 指定使用名为default...profile文件作为当前主机配置文件[这个参数不是必须] –build missing 如果依赖没有找到预编译二进制则从源码编译 conan install 命令行用法详细说明参见Conan...,而且会导致编译结束后报错,需要分析boostconanfile.py脚本才能找到原因. conan install执行成功后,就会将生成二进制保存在本地仓库$HOME/.conan/data/boost

1.7K20

conan入门(二十):封装只包含头文件(header_only)库示例

conan: 封装只包含头文件(header_only)库示例 有的C/C++项目只包含头文件,不需要编译,对于这种情况如何封装为Conan呢?...C++头文件形式为主,本文就以common_source_cpp为例说明如何实现conanfile.py将它封装为一个不需要编译只有头文件Conan。...has no build step conan create .根据配置文件 (同级文件夹conanfile.py) 构建二进制 conan create 命令行用法参见Conan官方文档《...–all 指定上传所有内容(配置文件conanfile.py,源码和打包文件–package),如果不指定些选项,只上传除package之外所有文件 执行conan upload上传到私有制品库了...保持与远程端同步最新代码,所以这里没有使用–all 指定上传所有内容(配置文件conanfile.py,源码和package),只上传了conanfile.py,引用该项目时执行conan install

56450

conan入门(八):交叉编译自己conan项目

在使用conan来管理C/C++(制品库)环境下,如何实现对conan封装项目实现交叉编译支持呢?因为工作涉及不少嵌入式平台开发,conan对交叉编译支持是最关心部分。...,jsonlib.c,只实现了一个功能从JSON字符串解析name指定字段内容,结果保存到输出缓冲区,JSON解析工作实际上是调用cJSON来实现。...conanfile.py) 构建二进制 -s os=Linux -s arch=armv7 -s compiler=gcc -s compiler.version=4.8 指定交叉编译目标平台编译器及版本...-pr:b default 指定使用名为defaultprofile文件 –build missing 如果依赖没有找到预编译二进制则从源码编译 –build 可选值(可多个组合):...–all 指定上传所有内容(配置文件conanfile.py,源码和二进制),如果不指定些选项,只上传除二进制之外所有文件 关于 conan upload命令详细说明参见Conan官方文档

1.9K40

conan入门(五):conan 交叉编译引用第三方库示例

通过完整二进制包管理,它可以为任意数量不同版本创建和重用任意数量不同二进制文件(用于不同配置,如架构、编译器版本等),在所有平台上使用完全相同过程。...在使用conan来管理C/C++(制品库)环境下,如何实现对交叉编译支持呢?因为工作涉及不少嵌入式平台开发,conan对交叉编译支持是最关心部分。...cjson 指定编译cjson库 –build 可选值(可多个组合): ​ --build never 禁止编译依赖,只下载预编译二进制,如果没找到预编译则报错[不可与其他可选值组合]...​ --build missing 如果依赖没有找到预编译二进制则从源码编译 ​ --build outdated 如果依赖没有找到预编译二进制或过期(日期旧于源码)则从源码编译 ​...[pattern] 编译名匹配[pattern]之外所有 本示例--build json 是[pattern] 用法,所以--build json 也是一样效果 --build=json也是有效写法

1.4K30

cmake-conan 2.0 接入指南

cmake-conan 新特性 如果你尚未使用过 Conan 与 CMake 组合,请参考历史编写一篇关于 cmake-conan v1 版本文章,该文章描述了 Conan + CMake 在跨平台项目中实战应用场景...通过 CMake 初始化指定配置文件方式来与 Conan 交互解决了以前我们业务 CMake 代码包含了大部分对于 Conan 处理逻辑,以前使用场景下如果脱离 Conan 业务 CMake...但新版本可能考虑到这个问题,首先你脚本是可以独立通过指定一些三方库 prefix 来进行编译,通过 Conan 关联编译只是一种渠道。...集成效果 我们在 GitHub 提交了一个简单 Sample 用以演示集成效果,访问:https://github.com/nmgwddj/conan-cmake-v2-example 查看示例代码...,以下为各类主流 IDE 工具集成效果,使用指定工具打开文件夹即可直接编译使用,无需敲入复杂导入三方库指令: Visual Studio Code 图片 Visual Studio IDE 图片 Qt

97410

conan入门(十一):Linux下Android NDK交叉编译Boost

在定义AR,AS,RANLIB,LD,STRIP环境变量时并没有使用$target_host-XX格式,因为对armv7ar,as,ranlib,ld,strip程序文件名定义规则与armv8不同...profile交叉编译配置文件,如果配置文件不在Conan专门保存profile文件文件夹$HOME/.conan/profiles下,需要准确指定路径 -pr:b default 指定使用名为default...profile文件作为当前主机配置文件[这个参数不是必须] –build missing 如果依赖没有找到预编译二进制则从源码编译 conan install 命令行用法详细说明参见Conan...,而且会导致编译结束后报错,需要分析boostconanfile.py脚本才能找到原因. conan install执行成功后,就会将生成二进制保存在本地仓库$HOME/.conan/data/boost...–all 指定上传所有内容(配置文件conanfile.py,源码和二进制),如果不指定些选项,只上传除二进制之外所有文件 关于 conan upload命令详细说明参见Conan官方文档

2.9K30

conan入门(十五):AttributeError: ‘CMake‘ object has no attribute ‘definitions‘

cmake_exe生成构建exe程序conan定义脚本(参见我上一篇博客《conan new 命令新特性–模板功能(–template)》). conanfile.py from conans...(如cjson conanfile.py)中都是这么用啊?...如果不指定--template参数使用 create new pkgname/version生成conanfile.py是引用是conans.CMake 如果指定--template参数使用 create...new pkgname/version生成conanfile.py是引用是conan.tools.cmake.CMake 解决方案一 改回传统引用conans.CMake,这需要较多修改conanfile.py...conan.tools.cmake这个实验应该会在conan 2.0变为正式,如果你和我一样也是刚conan入门,建议使用解决方案一,以避免今后使用遇到其他与官方参考不一致问题。

2.2K20
领券