问题描述
我正在制作一个具有预构建 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 配方。