柯南 + cmake + boost python

Conan + cmake + boost python

我刚刚开始使用我的 cmake 文件中的 conan 来下载和构建依赖项 - 非常方便。我也尝试过将它用于 Boost,但是用于 boost 的默认 conanfile 似乎没有构建我需要的 boost python。我当前的设置如下:

conan_cmake_configure(REQUIRES
  fmt/8.0.1
  boost/1.75.0
  eigen/3.4.0
  GENERATORS cmake_find_package)

conan_cmake_autodetect(settings)

conan_cmake_install(PATH_OR_REFERENCE .
  BUILD missing
  REMOTE conancenter
  SETTINGS ${settings})

find_package(Eigen3 REQUIRED)
find_package(Boost COMPONENTS Python) // Approx syntax
...

这失败了,因为 Boost python 包不可用。我想我可以编辑 conan_make_configures() 命令以确保构建了 boost Python?

你可以使用conan_cmake_configureOPTIONS变量:

conan_cmake_configure(REQUIRES
  fmt/8.0.1
  boost/1.75.0
  eigen/3.4.0
  GENERATORS cmake_find_package
  OPTIONS boost:without_python=False
)

参见:https://github.com/conan-io/conan_cmake_configure

您可以在以下位置找到 boost 包的所有可用选项:boost C/C++ Package - JFrog ConanCenter

[编辑 1]:使用 conanfile 和 cmake-conan

您还可以创建一个 conanfile.txt 来管理您的依赖项:

[requires]
fmt/8.0.1
boost/1.75.0
eigen/3.4.0

[options]
boost:without_python=False

[generators]
cmake_find_package
cmake_paths

并调用conan_cmake_run如下:

conan_cmake_autodetect(settings)

conan_cmake_run(
        CONANFILE conanfile.txt
        BASIC_SETUP CMAKE_TARGETS
        BUILD missing
        SETTINGS ${settings}
)