2

我想使用 imguis 对接分支。我想弄清楚的问题是使用柯南包管理器是否可以要求特定的分支,或者我是否需要编写自定义脚本来定位包中的特定分支?我能够获得主要的 imgui 包,但在目标分支上没有找到任何东西。

我目前正在使用 cmake 和 conanfile.txt。

这是目前我的conanfile.txt

[requires]
imgui/1.76
4

1 回答 1

2

Conan recipes ( conanfile.py) 可用于获取任何分支、提交、标记或下载 .zip 存档。不可能制作一个任意的配方,由其他人实施以做与它所做的不同的事情,因为它违背了版本控制和可再现性的整个目的。

imgui/1.76conanfile(.txt 或 .py)中时,它正在获取 ConanCenter 中存在的 imgui 包,imgui 包中详细信息和完整配方可以在conan -center-index github repo 中找到,使用的 repo在 ConanCenter 中构建所有包

在该配方中,该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 文件的数据

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/channellike下创建包imgui/version@myteam/stable,以将其与 ConanCenter 区别开来。Artifactory CE 也是完全免费的,可用于私下托管您自己的软件包。

于 2020-07-12T20:23:02.503 回答