Notes on using C++ package managers

Why do we need package management?

Why do we need a package manager other than the one your OS provides?

Why do we need multi-platform package management?

set platform specific compiler flags e.g -fPIC doesn’t exist on Windows:

    if self.settings.os == "Windows":
        del self.options.fPIC

some libraries don’t support all platforms:

    if self.settings.os == 'Windows':
        self.build_requires("winflexbison/2.5.24")
    else:
        self.build_requires("bison/3.7.6")

What is not the purpose of a package manager:

The problem: Where can we set compiler flags?

What do we need to build a binary? Where can we set compiler flags? Where to store these configuration files?

Aligning build configuration across several repositories is hard.

Conan as a package manager has overlapping functionality with other tools:

How we use Conan:

#cpp