我必须处理一个跨平台的应用程序,该应用程序需要在Windows上但在Linux上不需要一个第三方库(该库无论如何都不支持Linux)。我已将该库打包到一个Conan包中,仅支持`os = Windows complier =“Visual Studio”。现在,如果我把这个库
[requires]
Library/1.2.3@foo/bar
在我的
conanfile.txt
中,在逻辑上conan install
将失败,并在Linux上显示Error Missing prebuilt package
。那么有没有办法在
conanfile.txt
中有条件地指定所需的软件包?类似于Library/1.2.3@foo/bar [os="Windows"]
。我通读了柯南文档,但一无所获。还是告诉
conan install
忽略错误?还是我唯一的运气是在两个平台上使用两个不同的
conanfile.txt
?我不能使用
conanfile.py
,因为构建过程不是由柯南管理的,而是仅由依赖项管理的。 最佳答案
我想说的是,最好的选择是conanfile.py,但是由于您无法使用它,您将需要保留两个conanfile.txt,每个平台一个。
在conanfile.txt中添加条件是不可能的,因为这会花费很大的开发精力,并且conafile.py能够处理条件,因为它是python脚本。
@nada解决方案很好,您可以根据您的操作系统使用CMake来调用柯南,但是您也可以尝试cmake-conan,这对于您的特定情况听起来更好。