微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将预先构建的文件打包到 conan 包中,然后在安装过程中只获取某些文件?

如何解决如何将预先构建的文件打包到 conan 包中,然后在安装过程中只获取某些文件?

我正在制作一个具有预构建 Windows 和 linux 文件的 conan 包。我如何确保在 conan install 期间,根据调用 conan install 命令的平台,仅从包中获取 windows 或 linux 文件

除非提供标志 conan install,否则

package() 不会调用 --build。那么我是否只需添加 --build 标志,然后在 package() 函数中根据平台复制相关文件?我并没有真正构建任何东西,只是“提供”一个具有预构建文件的包,我对通过柯南构建这些文件没有兴趣。

lib 目录基本上有一个 windows 和一个 linux 子目录,它们分别包含平台特定的文件

  • lib/windows/*

  • lib/linux/*

我将尝试带有 --build 标志的选项,看看我能达到什么结果,但我想知道是否有不同的解决方案,对柯南没有太多经验,仍在试验中。

解决方法

我正在制作一个具有预构建 Windows 和 linux 文件的 conan 包。我如何确保在 conan 安装期间,根据调用 conan install 命令的平台,仅从包中获取 windows 或 linux 文件

通过package ID。每个包都由其设置、选项和依赖项构成。因此,如果您为 Linux 或 Window 执行此操作,它们将是不同的包。

除非提供了 --build 标志,否则 conan install 不会调用 package()。

install --build 只在你想从源代码构建时使用,否则柯南会为你下载预构建的包,这是常规流程。

那么我是否只需添加 --build 标志,然后在 package() 函数中根据平台复制相关文件?我并没有真正构建任何东西,只是“提供”一个具有预构建文件的包,我对通过柯南构建这些文件没有兴趣。

文档上有一个关于 packaging binaries 的很好的部分,看看那里。

此外,Conan Center 有官方配方,只分发预先构建的,如 nodejs 配方。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。