【问题标题】:Trouble creating Conan package创建柯南包时遇到问题
【发布时间】:2017-03-10 19:51:53
【问题描述】:

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

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

【问题讨论】:

    标签: windows packaging package-managers conan


    【解决方案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")
    

    【讨论】:

      【解决方案2】:

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

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

      参考例子here

      一些基础知识:

      • 柯南通常构建在“缓存路径”中,通常位于 ~/.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

      【讨论】:

        猜你喜欢
        • 2021-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-26
        相关资源
        最近更新 更多