本文档翻译自:https://docs.conan.io/en/latest/reference/commands/output/config.html

conanfile.txt部分的参考:requires, generators等。

Sections

[requires]

要求清单,指定完整参考。

  1. [requires]
  2. poco/1.9.4
  3. zlib/1.2.11

本节支持具有版本范围的参考:

  1. [requires]
  2. poco/[>1.0,<1.9]
  3. zlib/1.2.11

[build_requires]

指定完整参考的构建要求列表。

  1. [build_requires]
  2. 7zip/16.00

本节支持带有版本范围的参考。
实际上,将始终安装[build_requires](与[requires]相同),因为从conanfile.txt安装意味着要构建某些内容,因此确实需要构建要求。
将它们放在分开的部分中是有用的,并且从概念上讲是更干净的,因此conanfile.txt的用户可能会快速识别出他们已经安装在计算机上的一些开发工具,从而使它们与需要链接的库区分开来。

[generators]

generators列表

  1. [requires]
  2. poco/1.9.4
  3. zlib/1.2.11
  4. [generators]
  5. xcode
  6. cmake
  7. qmake

[options]

适用于每个软件包的选项列表,例如package_name:option = Value。

  1. [requires]
  2. poco/1.9.4
  3. zlib/1.2.11
  4. [generators]
  5. cmake
  6. [options]
  7. poco:shared=True
  8. openssl:shared=True

[imports]

要导入到本地目录的文件列表。 了解更多:导入。

  1. [requires]
  2. poco/1.9.4
  3. zlib/1.2.11
  4. [generators]
  5. cmake
  6. [options]
  7. poco:shared=True
  8. openssl:shared=True
  9. [imports]
  10. bin, *.dll -> ./bin # Copies all dll files from packages bin folder to my local "bin" folder
  11. lib, *.dylib* -> ./bin # Copies all dylib files from packages lib folder to my local "bin" folder

第一项是包的子文件夹(可以是根“。”),第二项是要匹配的模式。 两者都与本地缓存有关。 第三个项目(箭头之后)是目标文件夹,位于用户空间中,而不位于本地缓存中。
[imports]部分还支持与conanfile.py中等效的imports()方法相同的参数,并用@分隔。

:::info Note
如果您以前的文件夹在路径名中使用@,请使用结尾(即使为空)@,以便解析器正确获取文件夹路径,例如:

  1. lib, * -> /home/jenkins/workspace/conan_test@2/g/install/lib @

:::

  • root_package(可选,默认为deps中的所有软件包):软件包名称的fnmatch模式(“ OpenCV”,“ Boost”),将从中复制文件。
  • folder:(可选,默认为False)。 如果启用,它将文件从本地缓存复制到名为包含文件的包的子文件夹。 有助于避免导入具有相同名称(例如许可证)的文件时发生冲突。
  • ignore_case :(可选,默认为False)。 如果启用,将执行不区分大小写的模式匹配。
  • excludes:(可选,默认为无)。 允许定义一个模式列表(甚至单个模式),即使它们与主模式匹配,也可以从副本中排除这些模式。
  • keep_path(可选,默认为True):表示将文件从src文件夹复制到dst时是否要保留相对路径。 忽略导入文件包中的library.dll文件的路径(keep_path = False)很有用。

将依赖关系中的许可证文件收集到licenses文件夹中的示例,不包括(仅作为示例).html和.jpeg文件:

  1. [imports]
  2. ., license* -> ./licenses @ folder=True, ignore_case=True, excludes=*.html *.jpeg

注释

注释以井号(#)开头,并在物理行的结尾处结束。 语法将忽略注释。 他们不是令牌。