我正在尝试使用柯南将一些文件和可执行文件打包在一起以进行版本控制,但是在查看了柯南文档之后,我仍然不清楚如何做到这一点,或者柯南是否是完成这项工作的正确工具。
基本上我想打包 3 个 .dll 文件、一个配置文件和 2 个可执行文件(OpenSSL 和我编写的需要所有上述依赖项的 .exe)。我想打包的所有东西都在本地桌面上。如果有在柯南有经验的人能指出我正确的方向,那将不胜感激。谢谢!!
我正在尝试使用柯南将一些文件和可执行文件打包在一起以进行版本控制,但是在查看了柯南文档之后,我仍然不清楚如何做到这一点,或者柯南是否是完成这项工作的正确工具。
基本上我想打包 3 个 .dll 文件、一个配置文件和 2 个可执行文件(OpenSSL 和我编写的需要所有上述依赖项的 .exe)。我想打包的所有东西都在本地桌面上。如果有在柯南有经验的人能指出我正确的方向,那将不胜感激。谢谢!!
您通常不想在版本控制中检查二进制文件、库和可执行文件,而是将它们托管在其他地方,例如文件服务器。如果您使用的是 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")
柯南包装方式的快速概览如下:
conan new
)conan create
)参考例子在这里。
一些基础知识:
柯南通常构建在“缓存路径”中,通常在~/.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
)。
如需更多见解,请点击此处。