
CMAKE依赖提供者的Conan C和C ++软件包管理器。
cmake-conan的推荐生产版本。 |
|---|
使用CMAKE依赖性提供商,即使尚未以1.0的释放, cmake-conan develop2更稳定,准备就绪,并且推荐了Conan 1的传统cmake-conan请更新到Conan 2和新的CMAKE-CONAN在此develop2分支中的新cmake-conan集成。 |
先决条件:
conanfile.txt或conanfile.py列出所需的依赖项。首先,将此存储库克隆到develop2分支中。
git clone https://github.com/conan-io/cmake-conan.git -b develop2该存储库包含一个CMakeLists.txt ,其示例项目取决于fmt 。
cd cmake-conan/example
mkdir build
cmake -B build -S . -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=../conan_provider.cmake -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release确保您已将conanfile.txt或conanfile.py放在项目的根源上,以列出您的要求。您可以在示例中查看Conanfile.txt,或检查conanfile的Conan文档:.txt文档,.py Docs。
首次调用cmake配置项目时,通过-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=[path-to-cmake-conan]/conan_provider.cmake 。这将确保从CMAKE内部调用conan install 。此集成不需要对您的CMakeLists.txt脚本进行任何更改。
cd [your-project]
mkdir build
cmake -B build -S . -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=[path-to-cmake-conan]/conan_provider.cmake -DCMAKE_BUILD_TYPE=ReleaseCMakeDeps生成器 - 对于CMakeToolchain否则将提供的构建设置(例如,编译器本身或其他全局构建设置),请根据文档单独调用Conan。find_package的调用。例如,对于在find_package之外具有逻辑的依赖项,例如,通过直接呼叫find_program , find_library , find_path或find_file ,这些可能无法正常工作。CMAKE_BUILD_TYPE (不能让空白)CMAKE-CONAN依赖关系提供商将创建一个CONAN配置文件,其中设置( os , arch , compiler , build_type )从CMAKE检测到的当前构建中检测到的内容。柯南使用两个配置文件用于依赖关系,主机和构建配置文件。您可以在这里阅读有关它们的更多信息。在Cmake-Conan中,默认行为如下:
default Conan配置文件。default柯南配置文件。请注意,要使上述工作,必须已经存在default文件。如果不是这样, cmake-conan将调用Conan的自动检测机制,该机制试图猜测系统默认设置。
如果您需要自定义配置文件,则可以通过修改CONAN_HOST_PROFILE和CONAN_BUILD_PROFILE的值并将其作为CMAKE CACHE变量传递来做到这一点。一些例子:
-DCONAN_HOST_PROFILE="default;auto-cmake" :按照上述执行自动检测,并将其他任何事物的默认配置文件退回(默认行为)。-DCONAN_HOST_PROFILE=clang16 :请勿执行自动检测,并使用conan profiles文件夹中必须存在的clang16配置文件(请参阅文档。)。-DCONAN_BUILD_PROFILE="/path/to/profile" :可或,提供可能在文件系统中任何地方的配置文件的路径。-DCONAN_HOST_PROFILE="default;custom" :semi-Colon分离的配置文件列表。将使用一个复合配置文件(请参阅DOCS) - 从左到右组合,右侧的优先级最高。CMAKE-CONAN依赖提供者将自动检索并传递上述配置文件信息。如果需要进一步自定义conan install命令调用,则可以使用CONAN_INSTALL_ARGS变量。
CONAN_INSTALL_ARGS初始化为通过--build=missing 。如果您自定义此变量,请注意,除非您指定--build标志,否则Conan将恢复其默认行为。conanfile.txt|.py的路径和输出格式( --format )。--build=never;--update;--lockfile-out='' 有一些测试,例如,您可以在python上运行,例如:
$ pytest -rA