Conan 1.4:SCM 集成、新的 CMake 生成器、更好的 Visual Studio 环境管理等等!
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_PATH
和CMAKE_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 版本中推出!