是否可以在柯南包管理器中使用 github 分支?
Posted
技术标签:
【中文标题】是否可以在柯南包管理器中使用 github 分支?【英文标题】:Is it possible to use a github branch in conan package manager? 【发布时间】:2020-07-11 23:53:09 【问题描述】:我想使用 imguis 对接分支。我想弄清楚的问题是使用柯南包管理器是否可以要求特定的分支,或者我是否需要编写自定义脚本来定位包中的特定分支?我能够获得主要的 imgui 包,但在目标分支上没有找到任何东西。
我目前正在使用 cmake 和 conanfile.txt。
目前这是我的conanfile.txt
[requires]
imgui/1.76
【问题讨论】:
【参考方案1】:可以实现柯南食谱 (conanfile.py
) 以获取任何分支、提交、标记或下载 .zip 存档。不可能制作一个任意配方,由其他人实施以做与它所做的不同的事情,因为它违背了版本控制和可重复性的整个目的。
当imgui/1.76
在conanfile
(.txt 或.py)中时,它正在获取ConanCenter 中存在的imgui 包,imgui package 中的详细信息,完整的配方可以在@中找到987654323@github repo,用于构建ConanCenter中所有包的repo
在该配方中,sources()
方法实现为:
def source(self):
tools.get(**self.conan_data["sources"][self.version])
extracted_dir = self.name + "-" + self.version
os.rename(extracted_dir, self._source_subfolder)
conan_data
属性是来自conandata.yml file 的数据
sources:
"1.74":
url: "https://github.com/ocornut/imgui/archive/v1.74.tar.gz"
sha256: "2f5f2b789edb00260aa71f03189da5f21cf4b5617c4fbba709e9fbcfc76a2f1e"
"1.75":
url: "https://github.com/ocornut/imgui/archive/v1.75.tar.gz"
sha256: "1023227fae4cf9c8032f56afcaea8902e9bfaad6d9094d6e48fb8f3903c7b866"
"1.76":
url: "https://github.com/ocornut/imgui/archive/v1.76.tar.gz"
sha256: "e482dda81330d38c87bd81597cacaa89f05e20ed2c4c4a93a64322e97565f6dc"
"1.77":
url: "https://github.com/ocornut/imgui/archive/v1.77.tar.gz"
sha256: "c0dae830025d4a1a169df97409709f40d9dfa19f8fc96b550052224cbb238fa8"
配方使用的来源是版本对应的版本,当你使用包时,不能更改。
可以复制/分叉配方,使其适应需求,例如更改source()
方法,或更改conandata.yml
文件,为特定的提交、标签或分支创建包(它会可能建议更改version
,以区分软件包与官方发布版本)。还建议在username/channel
下创建包,如imgui/version@myteam/stable
,以区别于 ConanCenter 之一。 Artifactory CE 也是完全免费的,可用于私下托管您自己的软件包。
【讨论】:
以上是关于是否可以在柯南包管理器中使用 github 分支?的主要内容,如果未能解决你的问题,请参考以下文章
如何在openSUSE Tumbleweed上安装柯南包管理器最正确?