如何在`conanfile.txt`中有条件地指定需求

How to specify requirements conditionally in `conanfile.txt`?

本文关键字:需求 有条件 txt conanfile      更新时间:2023-10-16

我必须处理一个跨平台应用程序,该应用程序需要在Windows上额外的第三方库,但在Linux上不需要(并且该库不支持Linux(。我将库打包到一个柯南包中,仅支持`os = Windows Crumper =" Visual Studio"。现在,如果我将此库放为

[requires]
Library/1.2.3@foo/bar

在我的conanfile.txt中,conan install在Linux上的错误Missing prebuilt package上会失败。

因此,是否可以在conanfile.txt中有条件地指定所需软件包?类似于Library/1.2.3@foo/bar [os="Windows"]。我读了柯南文档,但什么也没找到。

或告诉conan install忽略错误?

或我唯一的运气是在两个平台上使用两个不同的conanfile.txt

我不能使用 conanfile.py,因为构建过程没有由柯南管理,只有依赖项。

我想说的是您的情况下最好的选择是conanfile.py,但是由于您无法使用它,您将需要保留两个conanfile.txt,每个平台一个。<<<<<<<<<<<<<</p>

不可能在conanfile.txt中添加条件,因为这会花费很大的开发努力,而conafile.py可以处理条件,因为是一个python脚本。

@nada解决方案很好,您可以使用cmake根据您的操作系统致电Conan,但您也可以尝试Cmake-Conan,这听起来更好。