是否可以在 conan 包管理器中使用 github 分支?
Is it possible to use a github branch in conan package manager?
我想使用 imguis 对接分支。我想弄清楚的问题是使用 conan 包管理器是否可以请求特定的分支,或者我是否需要编写自定义脚本来针对包中的特定分支?我能够获得主要的 imgui 包,但在目标分支上没有找到任何东西。
我目前正在使用 cmake 和 conanfile.txt。
这是我目前的 conanfile.txt
[requires]
imgui/1.76
柯南食谱 (conanfile.py
) 可以实现获取任何分支、提交、标记或下载 .zip 存档。不可能制作一个任意的配方,由其他人实施以做与它所做的不同的事情,因为它破坏了版本控制和再现性的整个目的。
当 imgui/1.76
在 conanfile
(.txt 或 .py)中时,它正在获取 ConanCenter, details in the imgui package and the full recipe can be found in the conan-center-index github 存储库中存在的 imgui 包,该存储库用于在 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 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"
食谱使用的来源是版本对应的发行版,当您使用包时,无法更改。
可能的是 copy/fork 配方,使其适应需要,比如改变 source()
方法,或改变 conandata.yml
文件,为特定的创建包提交、标签或分支(可能建议更改 version
,以将包与官方发布版本区分开来)。还建议在 username/channel
下创建包,如 imgui/version@myteam/stable
,以区别于 ConanCenter 包。 Artifactory CE 也是完全免费的,可用于私下托管您自己的包。
我想使用 imguis 对接分支。我想弄清楚的问题是使用 conan 包管理器是否可以请求特定的分支,或者我是否需要编写自定义脚本来针对包中的特定分支?我能够获得主要的 imgui 包,但在目标分支上没有找到任何东西。
我目前正在使用 cmake 和 conanfile.txt。
这是我目前的 conanfile.txt
[requires]
imgui/1.76
柯南食谱 (conanfile.py
) 可以实现获取任何分支、提交、标记或下载 .zip 存档。不可能制作一个任意的配方,由其他人实施以做与它所做的不同的事情,因为它破坏了版本控制和再现性的整个目的。
当 imgui/1.76
在 conanfile
(.txt 或 .py)中时,它正在获取 ConanCenter, details in the imgui package and the full recipe can be found in the conan-center-index github 存储库中存在的 imgui 包,该存储库用于在 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 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"
食谱使用的来源是版本对应的发行版,当您使用包时,无法更改。
可能的是 copy/fork 配方,使其适应需要,比如改变 source()
方法,或改变 conandata.yml
文件,为特定的创建包提交、标签或分支(可能建议更改 version
,以将包与官方发布版本区分开来)。还建议在 username/channel
下创建包,如 imgui/version@myteam/stable
,以区别于 ConanCenter 包。 Artifactory CE 也是完全免费的,可用于私下托管您自己的包。