如何在`conanfile.txt`中有条件地指定需求
How to specify requirements conditionally in `conanfile.txt`?
我必须处理一个跨平台应用程序,该应用程序需要在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,这听起来更好。
相关文章:
- 如何使用 soong 命名空间来有条件地编译模块
- 有条件地将默认参数传递给函数(使用"?"运算符)
- 根据模板类型有条件地删除变量
- 有条件地选择带有 decltype() 和三元运算符的类型
- 如何使用 SFINAE 在方法调用中有条件地定义变量?
- 有条件的打印和计数在 std::map 上有限制
- 如何在 c++ 中有条件地包含标头?
- 如何仅在Qt是用ltcg构建时才有条件地启用ltcg?
- 如何在Visual Studio 2019中有条件地编译c++源文件
- C++可以有条件地向下转换类指针吗
- 使用 SFINAE 有条件地解析分配器成员
- 有条件地删除宏
- 有条件地包含C++标准库
- 如何有条件地将元素添加到 std::array - C++11
- 是否根据编译器版本有条件地包含源文件
- 有条件地启用类C++构造函数
- 我可以有条件地使用多个参数吗?
- 有条件地使用 Boost Python 添加模块
- 有什么东西阻止std::optional::value_or()有条件地不例外吗?
- 如何在`conanfile.txt`中有条件地指定需求