Conan 1.4 版本发布,带来了一些出色的功能。在 SwampUp 2018 上进行了富有成效的讨论,并收集了社区的反馈后,我们着手开发了本版本中的一些实用功能。

Git 仓库的 SCM 集成

许多高级用户遇到了在导出时捕获源代码仓库提交的问题,当配方和源代码位于同一个仓库时

使用新的 scm 实验属性,可以轻松地实现这一点,并且在配方和源代码位于不同的仓库时也很有用。目前,此功能仅支持 Git 作为 SCM。

此功能已作为实验性功能发布,我们希望收到您的反馈!请查看文档并报告给 Conan 问题跟踪器

新的 cmake_paths 和 cmake_find_package 生成器

在收集了有关 CMake 集成的所有反馈后,我们专注于开发,目标是提供一种透明的方式来集成 CMake,依赖于 find_package(),这对于 Conan 包的使用者尤其有用。

这导致了两种不同的生成器

  • cmake_find_package 生成器为每个依赖项创建一个 Find<package_name>.cmake 文件。这将使您在 CMakeLists.txt 中的每个 find_package 指向 conan install 后由 Conan 解决的依赖项。 了解更多

  • cmake_paths 生成器创建一个 conan_paths.cmake 文件,其中 CMAKE_MODULE_PATHCMAKE_PREFIX_PATH 变量已调整到依赖项文件夹。这也允许用户在不修改 CMakeLists.txt 的情况下集成 Conan:cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_paths.cmake了解更多

敬请关注以了解更多有关如何使用这两种生成器的信息!

更好的 Visual Studio 环境管理

在本版本中,与 vcvarsall 相关的许多小问题已得到解决

  • tools.vcvars_command() 添加了新参数,以允许用户选择 SDK 版本和编译器工具集。
  • 在读取 vcvarsall 输出时,改进了 tools.vcvars_dict() 的鲁棒性。
  • tools.vcvars_dict() 现在仅设置 vcvarsall 设置的环境变量。
  • virtualbuildenv 生成器现在在 activate_build.bat/.ps1 文件中包含来自 vcvarsall 的所需变量。

其他正在进行的事情!

还有其他一些实用功能,可以使您的生活更轻松

  • 新的工具,包括用于更轻松地开发针对 Apple 设备的包的 XCRun 包装器(感谢贡献者!)。
  • 在配方中:fPIC 标志在 Autotools 构建帮助程序中自动管理
  • 在 CI 中:有一个新的 --json 参数用于输出 conan search 命令的结果。
  • 我们还添加了对 GCC 8 和 Clang 7 以及 c++ 语言标准 c++20 的支持。

为未来做准备

这些发行版更改中的许多是内部的。目前正在开发重大改进,以使 Conan 能够带来新的功能,例如

  • 重构图构建器以改进构建需求的包含。
  • 提供有关依赖关系图的更多信息,并提高可重复性。
  • 并行下载包。
  • 混合来自不同远程服务器的同一配方的二进制文件。
  • Conan 工作区(又名 conan-project)用于编辑 Conan 包和开发库依赖项,最终将在下一个 1.4.1 版本中推出!