无法创建柯南包

时间:2017-03-10 19:51:54

标签: windows packaging package-managers conan

我正在尝试使用Conan将一些文件和可执行文件打包在一起以进行版本控制,但是在查看Conan文档之后,我仍然不清楚如何执行此操作,或者如果Conan甚至是正确的工具。

基本上我想要打包3个.dll文件,一个配置文件和两个可执行文件(我写的OpenSSL和.exe需要所有上述依赖项)。我想要打包的所有内容都存在于桌面本地。如果在柯南有经验的人可以指出我正确的方向,我将不胜感激。谢谢!

2 个答案:

答案 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)

快速概览柯南包​​装方式如下:

  1. 创建柯南食谱。 (即 Conanfile.py)(conan new
  2. 根据源代码构建需求进行自定义。
  3. 执行柯南配方,以获取包(作为 o/p)。 (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