我正在尝试使用Conan将一些文件和可执行文件打包在一起以进行版本控制,但是在查看Conan文档之后,我仍然不清楚如何执行此操作,或者如果Conan甚至是正确的工具。
基本上我想要打包3个.dll文件,一个配置文件和两个可执行文件(我写的OpenSSL和.exe需要所有上述依赖项)。我想要打包的所有内容都存在于桌面本地。如果在柯南有经验的人可以指出我正确的方向,我将不胜感激。谢谢!
答案 0 :(得分:1)
您通常不想在版本控制中检查二进制文件,库和可执行文件,而是将它们托管在其他位置,例如文件服务器。如果您使用的是conan,则可以使用现有的conan.io免费服务用于公共包,OSS conan_server用于本地托管您的私有包或Artifactory。
如果你的工件只存在于你的桌面上,在一个已知的文件夹上,你所要做的就是在包装配方中实现类似下面的build()
方法:
def build(self):
shutil.copytree("C:/Path/to/folder/with/files", ".")
def package(self):
# make sure files are now copied into the package
self.copy("*.lib", dst="lib", src="files")
self.copy("*.dll", dst="bin", src="files")
self.copy("*.conf", dst="", src="files")
如果您只提供一个给定配置的软件包,我会在configure()
中添加一个检查,以明确输出此软件包的潜在消费者不兼容性:
class MyRecipe(ConanFile):
settings = "os", "compiler", "arch", "build_type"
def configure(self):
if self.settings.os != "Windows" or self.settings.arch != "x86_64" or \
self.settings.build_type != "Release" or ... :
raise Exception("This package does not support this configuration")
答案 1 :(得分:0)
快速概览柯南包装方式如下:
conan new
)conan create
)参考示例 here。
一些基础知识:
Conan 通常在“缓存路径”中构建,通常在 ~/.conan/data
路径中找到。
尝试启用这些调试选项 - 将使您深入了解整个过程 + 调试您的案例。
# conan config list (preview the configs)
# conan config set log.level=10
# conan config set log.print_run_commands=True
注意 conanfile 是一个 python 脚本 (be mindful of indents and spaces
)。
有关更多见解,请here。