conanfile.txt

conanfile.txt 文件是 conanfile.py 的简化版本,旨在简化依赖项的使用,但它不能用于创建包。此外,使用依赖项并不一定需要 conanfile.txtconanfile.py 也非常适合简单地使用依赖项。

它还提供了简化的功能,例如,在 conanfile.txt 中无法表达条件需求,为此需要使用 conanfile.py。阅读 了解使用 conanfile.py 与 conanfile.txt 的灵活性 以获取更多信息。

[requires]

需求列表,指定完整的引用。等同于 conanfile.py 中的 self.requires(<ref>)

[requires]
poco/1.9.4
zlib/1.2.11

此部分也支持带有版本范围的引用

[requires]
poco/[>1.0 <1.9]
zlib/1.2.11

也可以锁定特定的配方修订版

[requires]
zlib/1.2.13#revision1
boost/1.70.0#revision2

[tool_requires]

工具需求(可执行工具)列表,指定完整的引用。等同于 conanfile.py 中的 self.tool_requires()

[tool_requires]
7zip/16.00
cmake/3.23.0

此部分也支持版本范围和锁定的配方修订版,与上面相同。

实际上,[tool_requires] 总是会被安装(与 [requires] 相同),因为从 conanfile.txt 安装意味着将要构建一些东西,因此确实需要工具需求。但请注意,默认情况下 tool_requires 存在于“构建”上下文中,它们不能作为用于构建的库,只能作为可执行工具;例如,使用 CMakeDeps 生成器时,它们不会为其创建 CMake 配置文件(存在例外情况,但这需要使用 conanfile.py,请阅读 CMakeDeps 参考 以获取更多信息)。

[test_requires]

测试需求列表,指定完整的引用。等同于 conanfile.py 中的 self.test_requires()

[test_requires]
gtest/1.12.1

此部分也支持版本范围和锁定的配方修订版,与上面相同。test_requires 的行为与上面的 [requires] 部分完全等同,因为唯一的区别在于 test_requires 不会传播给消费者,但由于 conanfile.txt 永远不会创建可被消费的包,所以这并不重要。提供此部分是为了保持与 conanfile.py 的等同性。

[generators]

要使用的内置生成器列表,等同于 conanfile.py 中的 generators = "CMakeDeps", ... 属性。

[requires]
poco/1.9.4
zlib/1.2.13

[generators]
CMakeDeps
CMakeToolchain

[options]

为每个包指定选项的列表,格式为 package_name*:option = Value

[requires]
poco/1.9.4
zlib/1.2.11

[generators]
CMakeDeps
CMakeToolchain

[options]
poco/*:shared=True
openssl/*:shared=True

例如,使用 *:shared=True 将为依赖图谱中定义了此选项的所有包设置 shared=True

[layout]

您可以指定预定义布局的名称。可用值包括

  • cmake_layout

  • vs_layout

  • bazel_layout (实验性)

[layout]
cmake_layout

另请参阅

阅读 了解使用 conanfile.py 与 conanfile.txt 的灵活性 以获取关于 conanfile.txt 与 conanfile.py 的更多信息。