Управление зависимостями C++. Conan

Минимальная структура проекта

.
├── CMakeLists.txt
├── conanfile.txt
└── src
    └── hello.cpp

CMakeLists.txt

cmake_minimum_required(VERSION 3.15)
 
project(Tutorial)
 
find_package(ZLIB REQUIRED)
 
add_executable(${PROJECT_NAME} src/hello.cpp)
target_link_libraries(${PROJECT_NAME} ZLIB::ZLIB)

conanfile.txt

[requires]
zlib/1.3
 
[generators]
CMakeDeps
CMakeToolchain

hello.cpp

#include <iostream>
#include <zlib.h>
 
int main()
{
    std::cout << zlibVersion();   
    return 0;
}

Сборка

  • conan install . --output-folder=build --build=missing
  • cd build && cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Release
  • cmake --build .