Conan is not a build system it is a package manager for C and C++. It functions as a front end and build system wrapper, orchestrating and managing dependencies for other build systems like CMake, MSBuild, and Makefiles.
Here’s a breakdown of Conan’s role:
- Agnostic to build systems: Conan is designed to work with any build system, and individual packages within Conan can use different build systems. This includes popular ones like CMake, Visual Studio (MSBuild), and Autotools, as well as proprietary or custom ones.
- A package manager: Conan’s primary role is to create and manage packages and their dependencies. It handles versioning, configurations, and the retrieval of binary dependencies.
- A build-system wrapper: Conan can call and execute the build process for you using the underlying build system. It provides a consistent layer between the developer and the build tools, which is especially useful for managing complex build processes like cross-compiling.
- Build integration files: When you use Conan to install dependencies, it generates integration files that are then read by your project’s native build system. This allows your build system to find and use the Conan-managed dependencies seamlessly.