Conan - The open-source C/C++ package manager




Decentralized, open-source (MIT), C/C++ package manager.

Conan is a package manager for C and C++ developers:

  • It is fully decentralized. Users can host their packages on their servers, privately. Integrates with Artifactory and Bintray.
  • Portable. Works across all platforms, including Linux, OSX, Windows (with native and first-class support, WSL, MinGW), Solaris, FreeBSD, embedded and cross-compiling, docker, WSL
  • Manage binaries. It can create, upload and download binaries for any configuration and platform, even cross-compiling, saving lots of time in development and continuous integration. The binary compatibility can be configured and customized. Manage all your artifacts in the same way on all platforms.
  • Integrates with any build system, including any proprietary and custom one. Provides tested support for major build systems (CMake, MSBuild, Makefiles, Meson, etc).
  • Extensible: Its python based recipes, together with extensions points allows for great power and flexibility.
  • Large and active community, especially in Github ( and Slack ( #conan channel). This community also creates and maintains packages in ConanCenter and Bincrafters repositories in Bintray.
  • Stable. Used in production by many companies, since 1.0 there is a commitment not to break package recipes and documented behavior.
develop Code Climate
Build Status Develop Develop climate


Please read to know how to install and start using Conan. TL;DR:

$ pip install conan

Install a development version

You can run Conan client and server in Windows, MacOS, and Linux.

  • Install pip following pip docs.

  • Clone Conan repository:

    $ git clone conan-io
NOTE: repository directory name matters, some directories are known to be problematic to run tests (e.g. conan). conan-io directory name was tested and guaranteed to be working.
  • Install in editable mode

    $ cd conan-io && sudo pip install -e .

    If you are in Windows, using sudo is not required.

  • You are ready, try to run Conan:

    $ conan --help
    Consumer commands
      install    Installs the requirements specified in a conanfile (.py or .txt).
      config     Manages configuration. Edits the conan.conf or installs config files.
      get        Gets a file or list a directory of a given reference or package.
      info       Gets information about the dependency graph of a recipe.
      search     Searches package recipes and binaries in the local cache or in a remote.
    Creator commands
      new        Creates a new package recipe template with a ''.
      create     Builds a binary package for a recipe ( located in the current dir.
      upload     Uploads a recipe and binary packages to a remote.
      export     Copies the recipe ( & associated files) to your local cache.
      export-pkg Exports a recipe & creates a package with given files calling 'package'.
      test       Test a package, consuming it with a conanfile recipe with a test() method.
    Package development commands
      source     Calls your local 'source()' method.
      build      Calls your local 'build()' method.
      package    Calls your local 'package()' method.
    Misc commands
      profile    Lists profiles in the '.conan/profiles' folder, or shows profile details.
      remote     Manages the remote list and the package recipes associated with a remote.
      user       Authenticates against a remote with user/pass, caching the auth token.
      imports    Calls your local or conanfile.txt 'imports' method.
      copy       Copies conan recipes and packages to another user/channel.
      remove     Removes packages or binaries matching pattern from local cache or remote.
      alias      Creates and exports an 'alias recipe'.
      download   Downloads recipe and binaries to the local cache, without using settings.
    Conan commands. Type "conan  -h" for help

Contributing to the project

Feedback and contribution are always welcome in this project. Please read our contributing guide. Also, if you plan to contribute, please add some testing for your changes. You can read the Conan tests guidelines section for some advise on how to write tests for Conan.

Running the tests

Using tox

$ python -m tox

It will install the needed requirements and launch pytest skipping some heavy and slow tests. If you want to run the full test suite:

$ python -m tox -e full

Without tox

Install python requirements

$ python -m pip install -r conans/requirements.txt
$ python -m pip install -r conans/requirements_server.txt
$ python -m pip install -r conans/requirements_dev.txt

If you are not Windows and you are not using a python virtual environment, you will need to run these commands using sudo.

Before you can run the tests, you need to set a few environment variables first.


On Windows it would be (while being in the Conan root directory):


Ensure that your cmake has version 2.8 or later. You can see the version with the following command:

$ cmake --version

The appropriate values of CONAN_COMPILER and CONAN_COMPILER_VERSION depend on your operating system and your requirements.

These should work for the GCC from build-essential on Ubuntu 14.04:

$ export CONAN_COMPILER=gcc

These should work for OS X:

$ export CONAN_COMPILER=clang

You can run the actual tests like this:

$ python -m pytest .

There are a couple of test attributes defined, as slow that you can use to filter the tests, and do not execute them:

$ python -m pytest . -m "not slow"

A few minutes later it should print OK:

Ran 146 tests in 50.993s


To run specific tests, you can specify the test name too, something like:

$ python -m pytest conans/test/unittests/client/cmd/ -s

The -s argument can be useful to see some output that otherwise is captured by pytest.

Also, you can run tests against an instance of Artifactory. Those tests should add the attribute artifactory_ready.

$ python -m pytest . -m artifactory_ready

Some environment variables have to be defined to run them. For example, for an Artifactory instance that is running on the localhost with default user and password configured, the variables could take the values:

$ export ARTIFACTORY_DEFAULT_URL=http://localhost:8081/artifactory

ARTIFACTORY_DEFAULT_URL is the base url for the Artifactory repo, not one for a specific repository. Running the tests with a real Artifactory instance will create repos on the fly so please use a separate server for testing purposes.



  • Package revisions

    Package revisions

    Most package managers have a concept of package revision, i.e. additional version number that reflects changes in packaging scripts or applied patches when "main" version number of packaged software remains the same.

    It would be great if Conan added support for revisions too. This will make package updates more trasparent ("updated from vX.Y.Z-r1 to vX.Y.Z-r2"). Also there could be a policy that "stable" channel can never change conanfile and binaries without bumping revision, to prevent accidental changes in packages used in CI with manifest verification.

    It would be great if it was possible to keep binary packages for previous revisions so that CI system with manifests checking does not get broken in case new revision is uploaded without committing new reference manifests.

    It was previously briefly discussed at

    type: feature priority: high complex: low 
    opened by annulen 89
  • Warning in CMake file created by conan

    Warning in CMake file created by conan

    Hi guys,

    This is not causing me any problems as such, but I thought I'd let you guys know. Noticed this on my build[1]:

    CMake Warning (dev) in build/output/conanbuildinfo.cmake:
      Syntax Warning in cmake code at
      Argument not separated from preceding token by whitespace.
    Call Stack (most recent call first):
      CMakeLists.txt:30 (include)
    This warning is for project developers.  Use -Wno-dev to suppress it.

    Presumably conanbuildinfo.cmake is generated by Conan. Worth clearing up that warning...



    opened by mcraveiro 69
  • "Please log in to "conan-center" to perform this action." for several packages

    To help us debug your issue please explain:

    • [x ] I've read the CONTRIBUTING guide.
    • [x ] I've specified the Conan version, operating system version and any tool that can be relevant.
    • [x ] I've explained the steps to reproduce the error or the motivation/use case of the question/suggestion.

    Windows 10 amd64, Python 3.7.4, Conan 1.18.4 from pip within virtualenv

    I am working within conan-libpq-stable-11.4 directory, which is extracted libpq/11.4 from

    My env:

    >echo %CONAN%
    >%CONAN% --version
    Conan version 1.18.4

    I have conan_profile_windows.txt like this (for building libpq on Windows using CMake):

    cmake_installer/[email protected]/stable

    I run development flow commands:

    >%CONAN% source . -sf src
    >%CONAN% install . -if install -s "compiler=Visual Studio" -s compiler.version=14 -s arch=x86 -s arch_build=x86 --build=missing -p conan_profile_windows.txt

    But since I've added conan_installer as build depends, I get this output:

    >%CONAN% install . -if install -s "compiler=Visual Studio" -s compiler.version=14 -s arch=x86 -s arch_build=x86 --build=missing -p conan_profile_windows.txt
    compiler=Visual Studio
    *: cmake_installer/[email protected]/stable
    cmake_installer/[email protected]/stable: WARN: Package is corrupted, removing folder: C:\Users\Vincas\.conan\data\cmake_installer\3.15.3\conan\stable\package\60b04a80ac4dd5c23f1acffacc679e9902e636e5 (libpq/11.4): Installing package
        zlib/[email protected]/stable from 'conan-center' - Cache
        zlib/[email protected]/stable:1299b26cefc5e04411a3481abe1c8b63227e2896 - Cache
    Build requirements
        cmake_installer/[email protected]/stable from 'conan-center' - Cache
    Build requirements packages
        cmake_installer/[email protected]/stable:60b04a80ac4dd5c23f1acffacc679e9902e636e5 - Download
    cmake_installer/[email protected]/stable: Retrieving package 60b04a80ac4dd5c23f1acffacc679e9902e636e5 from remote 'conan-center'
    Please log in to "conan-center" to perform this action. Execute "conan user" command.
    If you don't have an account sign up here:
    Remote 'conan-center' username:

    I assume it should work without accounts for fetching recipes..?

    type: bug component: bintray priority: high 
    opened by Talkless 63
  • [bug] has invalid/no certificate and fails in redirection loop

    [bug] has invalid/no certificate and fails in redirection loop

    Steps to reproduce (Include if Applicable)

    Since this morning (12.04.2021) I can't connect to successfully. One problem is that it seems there is no valid server certificate on the server side. After disabling verify_ssl in the remotes there will be an exception because of too many redirects:

    ERROR: Exceeded 30 redirects.. [Remote: conan-center]

    Same error can be reproduced by open the URL via the webbrowser of your choice.

    Is this because of the shutdown for bintray? Isn't this dated to 1st May?

    opened by snailcatcher 57
  • Feature/environment propagate

    Feature/environment propagate

    Changelog: Feature: New environment management, with correct value capturing and restoring on deactivate Docs:

    New approach to environment (env-vars) management:


    • New generator that will generate and
    • Collects info from dependencies visiting the graph, not by the accumulated deps_env_info
    • It also collects information from profiles
    • It automatically collects runtime information based on cpp_info definition: exes, bin-paths, lib_paths to define PATH, LD_LIBRARY_PATH, DYLD_LIBRARY_PATH envvars


    • Entry point in each recipe to visit its dependencies
    • Access to dependencies conanfiles is restricted by a "read-only" conanfilewrapper


    • Proof of concept of an aggregated meta-generator that includes CMakeToolchain, CMakeDeps and VirtualEnv
    • CMake build helper will integrate calls to VirtualEnv generated files
    opened by memsharded 57
  • "Case insensitive filesystem can't manage this"

    I tried to install OpenCV3 as a dependency and found OpenCV/[email protected]/stable, which I added to my requires section.

    There was no package available for my platform (Windows 10, Visual C++ 2015 32-bit), so I went with --build missing. The build seems to have run to completion, but right at the end, I got:

    ERROR: Requested 'OpenCV/[email protected]/stable' but found case incompatible 'opencv'
    Case insensitive filesystem can't manage this

    (I tried other OpenCV packages, but they all had problems of one sort or another. I think this one is the most promising, if I can find a solution to the above problem.)

    opened by JPGygax68 55
  • Incorrect handling of MSVC versions

    Incorrect handling of MSVC versions

    I am using Conan v1.7.4.

    I've created a static library Conan package using VS 2017 15.7 and updated my Visual Studio to 15.8. After the update, Conan failed to detect a change in the compiler version and did not perform recompilation of the static library. Instead, it just downloaded the same package that was built with VS 2017 15.7. However, when linking to that package from VS 2017 15.8, I am getting following linker error:

    LINK : fatal error C1047: The object or library file 'C:\Users\dodo\.conan\data\LogAndTimer\1.0.1\microblink\stable\package\8b2772668ccbf879d34a70a9d54c78ce70f38a1b\lib\LogAndTimer.lib' was created with an older compiler than other objects; rebuild old objects and libraries
    2>LINK : fatal error LNK1257: code generation failed

    However, the debug build does work (details how to reproduce are below).

    I think the problem is in how Conan handles MSVC versions - instead of using the actual compiler version (CMake detects MSVC 19.14.26431.0 in VS 2017 15.7 and MSVC 19.15.26729.0 in VS 2017 15.8), it uses the version of Visual Studio (VS 2017 is compiler version 15, according to Conan).

    I suggest that Conan should use the MSVC compiler version under compiler.version setting and additionally have compiler.vs_version for Visual Studio version. The reason for that is that sometimes libraries built with one version of MSVC are not compatible with later versions of MSVC, especially if you use link time code generation flag (/LTCG link flag and /GL compile flag).

    How to reproduce

    • Install Visual Studio 2017, but not the latest update (at the time of writing, this is 15.8.4). For example, use VS 2017 15.7.x or 15.6.x.
    • Create a conan package that contains a single static library. Make sure that Release build type of that package is compiled with /GL compile flag.
    • Create an application that consumes that static library and make sure it works in Release build type (the app should be linked with /LTCG linker flag).
    • Update Visual Studio 2017 to the latest version (15.8.4 at the time of writing).
    • Build your application

    Expected behaviour

    • conan install after updating the VS should calculate different hash for the library and should rebuild it, thus making sure application linking will succeed

    Actual behaviour

    • Conan does not detect version change in the MSVC compiler and uses the incompatible binary, thus causing linker error described above.

    Now, the main question is - could this be fixed without breaking existing conan VS packages, or we need to wait for Conan 2.0 (and disable LTCG until this issue gets fixed).

    Also, as a side question, is there a possibility to configure Conan to trigger rebuild of libraries even when a minor/bugfix version of the compiler changes, regardless of the compiler being used (e.g. if we update GCC from 8.1.0 to 8.1.1, we would like to rebuild all our binaries, even though they are link-compatible). This would get us the benefits of always having binaries built with the latest compiler to get the latest bugfixes and performance improvements - this benefit is also mentioned in conan documentation:

    What happens if we have a library that we can be built with GCC 4.8 and will preserve the ABI compatibility with GCC 4.9? (This kind of compatibility is easier to achieve for example for pure C libraries).

    Although it could be argued that it is worth rebuilding with 4.9 too -to get fixes and performance improvements-. Let’s suppose that we don’t want to create 2 different binaries, but just a single built with GCC 4.8 which also needs to be compatible for GCC 4.9 installations.

    type: feature stage: queue priority: high complex: high whiteboard 
    opened by DoDoENT 52
  • Better Python code reuse

    Better Python code reuse

    Currently, it is possible to reuse Python code by requiring it and tools.pythonpath. This is a bit limited because it's not possible to import the module before the ConanFile is loaded, which makes it impossible to do some things (such as subclassing ConanFile). I tried with a profile as well:

    mypymodule/[email protected]/stable

    .. but this doesn't work either. Maybe it would make sense for build_requires in profiles to be parsed before the conanfile is loaded. Or a separate, special section just for python deps of the conanfile. Is there a better way? What are your thoughts?

    opened by sztomi 50
  • pkg-config for dependency detection

    pkg-config for dependency detection

    While working on some packages I have run into a problem with some configure scripts that relies only on pkg-config to find it's dependencies (i.e. just setting CFLAGS doesn't help it find the dependency). I started by hacking in support for setting PKG_CONFIG_PATH in ConfigureEnvironment like:

    diff --git a/conans/client/ b/conans/client/
    index cc67480..84953e3 100644
    --- a/conans/client/
    +++ b/conans/client/
    @@ -27,6 +27,7 @@ class ConfigureEnvironment(object):
             command = ""
             if self.os == "Linux" or self.os == "Macos":
    +            pkgconfigpath = 'PKG_CONFIG_PATH="%s"' % ":".join(self._deps_cpp_info.lib_paths)
                 libs = 'LIBS="%s"' % " ".join(["-l%s" % lib for lib in self._deps_cpp_info.libs])
                 archflag = "-m32" if self.arch == "x86" else ""
                 ldflags = 'LDFLAGS="%s %s"' % (" ".join(["-L%s" % lib
    @@ -55,7 +56,7 @@ class ConfigureEnvironment(object):
                                                         debug, include_flags)
                 include_paths = ":".join(['"%s"' % lib for lib in self._deps_cpp_info.include_paths])
                 headers_flags = 'C_INCLUDE_PATH=%s CPP_INCLUDE_PATH=%s' % (include_paths, include_paths)
    -            command = "env %s %s %s %s %s" % (libs, ldflags, cflags, cpp_flags, headers_flags)
    +            command = "env %s %s %s %s %s %s" % (libs, ldflags, cflags, cpp_flags, headers_flags, pkgconfigpath)
             elif self.os == "Windows" and self.compiler == "Visual Studio":
                 cl_args = " ".join(['/I"%s"' % lib for lib in self._deps_cpp_info.include_paths])
                 lib_paths = ";".join(['"%s"' % lib for lib in self._deps_cpp_info.lib_paths])

    and then making sure that I copied the .pc files into to the lib directory. This worked fine and the packages was now found. The problem is that the .pc file "lies" and doesn't point to the $HOME/.conan/data/[dependency]... path but rather to /usr/local or whatever the default prefix is. This lead to another problem where it picked up the wrong library (on in /usr/local instead of ~/.conan).

    So now I wonder if this can be done even better. Since we have information in package_info about what to link and the include directories etc we could write our own .pc file and point it to the right directory and we could add it to ~/.conan/data/pkg-config or something and it could have a .pc file for all installed packages.

    Is this something we want to do? And in that case where should this code be added, it has to be done somewhere where the final package path is resolved and that the pc file is regenerated if we get a new path.

    opened by tru 49
  • Issues with proxies

    Issues with proxies

    I've started Conan server in my organization's local network. For external sites (like github) proxy must be used, but not for computers in local network. So, I have there env variables:


    With these variables I can create packages with recipes in my local cache (and this recipes can download external sources), but cannot download recipes and prebuilt packages from organization's Conan server.

    I've tried to set same settings in conan.conf, but had no luck. Also I've tried to use Conan server domain name and/or IP address in NO_PROXY with same result:

    > conan search -r <remotename> "OpenCV*"
    ERROR: Permission denied for user: '<username>'. [Remote: <remotename>]

    But if I disable all proxies (comment in conan.conf and unset env variables), it works just fine:

    Existing package recipes:
    OpenCV/[email protected]/testing

    Conan v. 1.0.1, OS: Arch Linux, CentOS 6, Windows 10.

    Feedback please! 
    opened by leugenea 47
  • [bug] cmake generator does not write build requirements info when using dual profiles

    [bug] cmake generator does not write build requirements info when using dual profiles

    Environment Details (include every applicable attribute)

    • Operating System+version: macOS Big Sur
    • Conan version: develop (1.33.0-dev)
    • Python version: 3.8.5

    Steps to reproduce (Include if Applicable)

    With this

    from conans import ConanFile, CMake, tools
    class BugConan(ConanFile):
        name = "bug"
        version = "0.1"
        license = "<Put the package license here>"
        author = "<Put your name here> <And your email here>"
        url = "<Package recipe repository url here, for issues about the package>"
        description = "<Description of Bug here>"
        topics = ("<Put some tag here>", "<here>", "<and here>")
        settings = "os", "compiler", "build_type", "arch"
        options = {"shared": [True, False], "fPIC": [True, False]}
        default_options = {"shared": False, "fPIC": True}
        generators = "cmake"
        def config_options(self):
            if self.settings.os == "Windows":
                del self.options.fPIC
        def build_requirements(self):
        def source(self):
        def build(self):
        def package(self):
        def package_info(self):

    Run conan install . --profile:host=default --profile:build=default

    The generated conanbuildinfo.cmake does not contain doctest targets, but it does when conan install . --profile=default is used.

    type: bug stage: in-progress 
    opened by theodelrieu 45
  • [bug] Error when use EMSDK because don't have clang 16 in conan

    [bug] Error when use EMSDK because don't have clang 16 in conan


    Im trying use EMSDK version 3.1.18, but conan don't have clang 16:

    ERROR: Invalid setting '16' is not a valid 'settings.compiler.version' value.
    Possible values are ['3.3', '3.4', '3.5', '3.6', '3.7', '3.8', '3.9', '4.0', '5.0', '6.0', '7.0', '7.1', '8', '9', '10', '11', '12', '13', '14', '15']
    Read ""

    Can conan team add version 16?

    type: feature priority: medium complex: low 
    opened by paulocoutinhox 1
  • [bug] system lib (dl) ordering change on link

    [bug] system lib (dl) ordering change on link

    Environment Details (include every applicable attribute)

    • Operating System+version: Debian bullseye
    • Compiler+version: gcc 11
    • Conan version: 1.51
    • Python version: 3.9.2

    Steps to reproduce (Include if Applicable)

    Not easy, but lot of dependencies and openssl with dl usage (using crypto)

    Logs (Executed commands with output) (Include/Attach if Applicable)

    /usr/bin/c++  -pipe -Wall -fstack-protector-all -fstack-check -O3 -DNDEBUG  -Wl,-z,relro -Wl,--as-needed CMakeFiles/bin_beauty_application_singleton.dir/beauty_application_singleton.cpp.o -o ../../../bin/beauty_application_singleton  ../../../lib/libbeauty.a /home/dfleury/.conan/data/openssl/1.1.1q/_/_/package/fae585d7c68637b721c0c4c0d1c52174d067eda8/lib/libssl.a -ldl /home/dfleury/.conan/data/openssl/1.1.1q/_/_/package/fae585d7c68637b721c0c4c0d1c52174d067eda8/lib/libcrypto.a -lrt -lpthread -lstdc++fs 

    Here -ldl is placed before crypto.a, so I get

    usr/bin/ld: /home/dfleury/.conan/data/openssl/1.1.1q/_/_/package/fae585d7c68637b721c0c4c0d1c52174d067eda8/lib/libcrypto.a(dso_dlfcn.o): in function `dlfcn_globallookup':
    dso_dlfcn.c:(.text+0x13): undefined reference to `dlopen'

    If I use conan 1.49 or conan 1.50, it works fine.

    usr/bin/c++  -pipe -Wall -fstack-protector-all -fstack-check -O3 -DNDEBUG  -Wl,-z,relro -Wl,--as-needed CMakeFiles/bin_beauty_chat.dir/beauty_chat.cpp.o -o ../../../bin/beauty_chat  ../../../lib/libbeauty.a /home/dfleury/.conan/data/openssl/1.1.1q/_/_/package/fae585d7c68637b721c0c4c0d1c52174d067eda8/lib/libssl.a /home/dfleury/.conan/data/openssl/1.1.1q/_/_/package/fae585d7c68637b721c0c4c0d1c52174d067eda8/lib/libcrypto.a /home/dfleury/.conan/data/openssl/1.1.1q/_/_/package/fae585d7c68637b721c0c4c0d1c52174d067eda8/lib/libcrypto.a -ldl -lpthread -lrt -lstdc++fs 
    opened by dfleury2 0
  • xcodedeps: Fix dependency resolution if transitive dependencies have …

    xcodedeps: Fix dependency resolution if transitive dependencies have …


    When a dependency of a dependency would have components, only the default name conan_dep_dep.xconfig would be included. However, this file was never generated, as they are in the form conan_dep_component.xconfig.

    Fix this by adding all components instead.

    Also allow the components to have dashes and use _format_name() to avoid issues when parsing the xcconfig file.

    Changelog: (Bugfix): XcodeDeps: Fix component handling in transitive dependencies Docs:

    • [ ] Refer to the issue that supports this Pull Request.
    • [ ] If the issue has missing info, explain the purpose/use case/pain/need that covers this Pull Request.
    • [x] I've read the Contributing guide.
    • [x] I've followed the PEP8 style guides for Python code.
    • [ ] I've opened another PR in the Conan docs repo to the develop branch, documenting this one.

    Note: By default this PR will skip the slower tests and will use a limited set of python versions. Check here how to increase the testing level by writing some tags in the current PR body text.

    opened by the-nic 1
  • [question] set_version & set_name aren't being called

    [question] set_version & set_name aren't being called


    I'm using conan version 1.19 - I know it's very old - but it's currently a limitation and can't directly update to the latest version. I have this demo however when I run conan create I get ERROR: Specify the 'name' and the 'version'

    from conans import ConanFile
    class DemoPkg(ConanFile):
        def set_name(self):
            import pdb; pdb.set_trace()
        def set_version(self):
            import pdb; pdb.set_trace()
    type: question 
    opened by wils93 1
  • [feature] Add a function ``

    [feature] Add a function ``

    In conan-center-index, several versions share the same but may have different patches depending on the version. If we export patches with exports_sources = "patches/**", each version ends up with patches of unrelated versions, and adding or modifying a patch of a version can change RREV of other versions.

    So in conan-center-index, we have introduced this kind of pattern:

        def export_sources(self):
            for p in self.conan_data.get("patches", {}).get(self.version, []):
                copy(self, p["patch_file"], self.recipe_folder, self.export_sources_folder)

    It would be nice to provide a function similar to, to avoid this boilerplate.

    opened by SpaceIm 0
  • [question] Is it a good idea to move POLICY required by conan toolchain logic in CMake presets?

    [question] Is it a good idea to move POLICY required by conan toolchain logic in CMake presets?

    I've seen this PR

    Is it a good idea? I mean, presets are a 3.19 feature, but conan toolchain is supposed to support CMake >= 3.15.

    If you have a build fully managed by conan, and CMake 3.15 is installed, how CMake helper can fallback to not using presets (because I guess the new CMake helper automatically injects generated presets, otherwise it's broken from what I understand), and therefore properly handle policies? (EDIT: ok for this case I see that CMake helper also injects the policy in command line)

    In case of a build not managed by conan (for example a simple conanfile.txt just for dependency management), is it a good experience for users to have to manage these policies themselves if presets are not used?

    opened by SpaceIm 0
  • 1.51.0(Jul 28, 2022)

    • Feature: Update system package manager db right before install, instead before check (
    • Feature: Do the package manager update just in mode install and ignore if mode is check. ( Docs: :page_with_curl:
    • Feature: The AutotoolsToolchain attributes .cxxflags, .cflags, .ldflags and .defines can be read at any moment, now is not needed to call .environment() to get them calculated. In the other hand, if you want to add additional flags the following attributes have to be used: .extra_cxxflags, .extra_cflags, .extra_ldflags and .extra_defines ( Docs: :page_with_curl:
    • Feature: Changed CMakeDeps generator so the global target made for a package with components is a target linked with the targets of the components, instead of a target made from merging cpp_info objects from the components. ( Docs: :page_with_curl:
    • Feature: Support for components in MSBuildDeps. ( Docs: :page_with_curl:
    • Feature: The CMakePreset.json now contains toolset and architecture items when using Ninja generator and msvc compiler so the IDE (Visual Studio) can set the correct compiler (vcvars) automatically. (
    • Feature: Introduced a new conf tools.cmake.cmaketoolchain.presets:max_schema_version to generate CMakePresets.json and CMakeUserPresets.json compatible with the specified json schema version. The minimum value supported is >=2. ( Docs: :page_with_curl:
    • Feature: Added objc_args/objc_link_args/objcpp_args/objcpp_link_args to MesonToolchain for Objective-C/C++ language. ( Docs: :page_with_curl:
    • Feature: Adding default directories to MesonToolchain. ( Docs: :page_with_curl:
    • Feature: Provide Path accessors in Conanfile. (
    • Feature: Introduced a validate_build() method in the recipes to validate if the package can be built according to self.settings and self.options instead of and that it is used to validate the binary. ( Docs: :page_with_curl:
    • Feature: Add ability to download files in the local filesystem using file:// URIs. ( Docs: :page_with_curl:
    • Feature: Added MesonDeps as a new generator to create an extra file with all the GNU flags from all the dependencies. Meson build-helper will add that one (if exists) to complement the created one by MesonToolchain. ( Docs: :page_with_curl:
    • Feature: Added a new self.folders.subproject for layout() to be able to define layouts that goes up to the parent or siblings folders, together with the self.folders.root = "..". ( Docs: :page_with_curl:
    • Feature: Adding new msys2_ucrt64, msys2_mingw64, msys2_clang64 subsystems in os.subsystem for Windows. (
    • Fix: Add as hidden-import to, so it is bundled with the installer. (
    • Fix: The cmake_build_modules property can only be declared in the self.cpp_info, not in components, where will be ignored. ( Docs: :page_with_curl:
    • Fix: Fix Dnf and Yum to accept 100 as a return code. (
    • Fix: Get the cpu count for cgroup2 from /sys/fs/cgroup/cpu.max. ( Docs: :page_with_curl:
    • Fix: Improve opensuse detection in tool.system.package_manager. (
    • Fix: Add raspbian to default tools.system.package_manager package manager mapping. ( Docs: :page_with_curl:
    • Fix: Allow templates for conan new to contain and LICENSE.txt files. (
    • Fix: Remove conan_message() in CMakeDeps. (
    • Fix: In and, avoids to list other flavors (version, soversion) of the same dylib on macOS, so that behavior is consistent on Linux & macOS. ( Docs: :page_with_curl:
    • Bugfix: The AutotoolsToolchain now clears None values from the attributes .cxxflags, .cflags, .ldflags and .defines. ( Docs: :page_with_curl:
    • Bugfix: The CMakePresets.json file contained invalid paths (mixing / and \) for Windows that caused issues when using Visual Studio. (
    • BugFix: Avoid LocalDebuggerEnv overflows in MSBuildDeps due to addition of PATH env-var. (
    • Bugfix: Fix frameworkdirs not taken into account in XcodeDeps generator. (
    • Bugfix: CMakeToolchain avoid setting CMAKE_INSTALL_XXX variables if the values are not defined. (
    • Bugfix: Use correct build target in CMake.test() for the Ninja Multi-Config generator. (
    • Bugfix: The CMakeToolchain was crashing when building for Android os a package that is removing the compiler.libcxx (C library). (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.76 MB)
    conan-win-32.exe(14.67 MB)
    conan-win-64.exe(15.24 MB)
  • 1.50.1(Jul 28, 2022)

  • 2.0.0-beta2(Jul 27, 2022)

    • Feature: Add traits support in MSBuildDeps (
    • Feature: Add traits support in XcodeDeps (
    • Feature: Let dependency define package_id modes (
    • Feature: Add conan.conanrc file to setup the conan user home (
    • Feature: Add core.cache:storage_path to declare the absolute path where you want to store the Conan packages (
    • Feature: Add tools for checking max cppstd version (
    • Feature: Add a post_build_fail hook that is called when a build fails (
    • Feature: Add pre_generate and post_generate hook, covering the generation of files around the generate() method call (
    • Feature: Brought conan config list command back and other conf improvements (
    • Feature: Added two new arguments for all commands -v for controlling the verbosity of the output and --logger to output the contents in a json log format for log processors (
    Source code(tar.gz)
    Source code(zip)
  • 1.50.0(Jun 29, 2022)

    • Feature: VirtualBuildEnv and VirtualRunEnv always generate files, even if empty. (
    • Feature: Improve dependency-cycle error to show the cycle. (
    • Feature: Aggregate transitive components information in the same package for XcodeDeps. ( Docs: :page_with_curl:
    • Feature: map armv8 arch to ARM64 MSBuild platform in MSBuildDeps generator. (
    • Feature: Added CMakeToolchain(self).cache_variables to declare cache_variables in the configurePresets in the CMakePresets.json file. Conan reads them to call cmake with -D when using the CMake(self) build helper. These cache variables doesn't support multi-configuration generators. ( Docs: :page_with_curl:
    • Feature: Simplify XcodeDeps generator. ( Docs: :page_with_curl:
    • Feature: Created as an alias of that will disappear in Conan 2.0. ( Docs: :page_with_curl:
    • Feature: Allow options having ["ANY"] as a list like Conan 2.X. ( Docs: :page_with_curl:
    • Feature: Ported cppstd related tools from 2.X branch. ( Docs: :page_with_curl:
    • Feature: Added tool rm at to remove files by pattern in a folder. ( Docs: :page_with_curl:
    • Feature: Add support for test_requires in XcodeDeps. (
    • Feature: Add relative path support to Git SCM tool. (
    • Feature: Changed cmake_layout with a more natural and intuitive and folders.generators. Also changed the CMakePresets.json preset names. ( Docs: :page_with_curl:
    • Fix: When using the layout() (as opt-in of some Conan 2.0 features) the default includedirs of the declared components is now ["include"] the default of the libdirs is ["lib"] and the default for the bindirs is ["bin"]. Previously, the components always had empty fields. Also the default of cpp_info.resdirs is now empty. ( Docs: :page_with_curl:
    • Fix: The CMakeToolchain will fail if settings.build_type is specified in the 'tools.cmake.cmake_layout:build_folder' conf because the build_type is automatically managed by the CMakeToolchain and CMakeDeps generators by default. ( Docs: :page_with_curl:
    • Fix: When using the new layout() feature of Conan 2.0, change the default cpp_info.frameworkdirs = ["Frameworks"] to cpp_info.frameworkdirs = [], because it is more common to not have packaged Apple frameworks and declaring a missing folder can cause issues with the new toolchains. ( Docs: :page_with_curl:
    • Fix: The "include" paths list in a CMakeUserPresets.json, when performing a new conan install, are now checked, and in case some of them is a missing path (deleted directory), it is cleaned from the list. (
    • Fix: Avoid issues in VirtualRunEnv for undefined variables when set -e is defined. (
    • Bugfix: Fix logic in the generation of CMakeUserPresets.json - Conan will only generate the file if it did not previously exist, and will modify an existing one if the file was previously generated by conan. Existing CMakeUserPresets.json will be left untouched otherwise. ( Docs: :page_with_curl:
    • Bugfix: Fix crash in pylint plugin with pylint >= 2.14.0. (
    • Bugfix: Allow using PkgConfigDeps for editable packages, not raising an error cause package_folder is None. (
    • Bugfix: The CMakePresets.json file, when performing several conan install commands, ended-up with several entries of duplicated "buildPresets" if used with a multi-configuration cmake generator. (
    • Bugfix: PkgConfigDeps creates *.pc files for test_requires. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.73 MB)
    conan-win-32.exe(14.65 MB)
    conan-win-64.exe(15.22 MB)
  • 2.0.0-beta1(Jun 20, 2022)

    • Feature: New graph model to better support C and C++ binaries relationships, compilation, and linkage.
    • Feature: New documented public Python API, for user automation
    • Feature: New build system integrations, more flexible and powerful, and providing transparent integration when possible, like CMakeDeps and CMakeToolchain
    • Feature: New custom user commands, that can be built using the public PythonAPI and can be shared and installed with conan config install
    • Feature: New CLI interface, with cleaner commands and more structured output
    • Feature: New deployers mechanism to copy artifacts from the cache to user folders, and consume those copies while building.
    • Feature: Improved package_id computation, taking into account the new more detailed graph model.
    • Feature: Added extension mechanism to allow users to define binary compatibility globally.
    • Feature: Simpler and more powerful lockfiles to provide reproducibility over time.
    • Feature: Better configuration with [conf] and better environment management with the new tools.
    • Feature: Conan cache now can store multiple revisions simultaneously.
    • Feature: New extensions plugins to implement profile checking, package signing, and build commands wrapping.
    • Feature: Used the package immutability for an improved update, install and upload flows.
    Source code(tar.gz)
    Source code(zip)
  • 1.48.2(Jun 2, 2022)

  • 1.49.0(Jun 2, 2022)

    • Feature: Add install_substitutes to system package manager tools to be able to install sets of packages that are equivalent with different names for different distros. ( Docs: :page_with_curl:
    • Feature: Do not automatically fix the shared libraries to add the rpath in Apple and add an external tool to do it optionally in recipes for packages that do not set the correct LC_ID_DYLIB. ( Docs: :page_with_curl:
    • Feature: Allow pyyaml 6.0 dependency. (
    • Feature: Removed Python 2.7 support, as a result of an unsolvable security vulnerability in pyjwt. ( Docs: :page_with_curl:
    • Feature: The conanfile.txt file now accepts a [layout] that can be filled with 3 predefined layouts: cmake_layout, vs_layout and bazel_layout. ( Docs: :page_with_curl:
    • Feature: Remove the parameter copy_symlink_folders of the conan.tool.files.copy function and now, any symlink file pointing to a folder will be treated as a regular file. ( Docs: :page_with_curl:
    • Feature: Tools can_run validates if it is possible to run a and application build for a non-native architecture. ( Docs: :page_with_curl:
    • Feature: Add CMAKE_SYSROOT support for CMakeToolchain. ( Docs: :page_with_curl:
    • Feature: Add --sysroot support for AutotoolsToolchain and remove support for cpp_info.sysroot in AutotoolsDeps. ( Docs: :page_with_curl:
    • Feature: Add conf. ( Docs: :page_with_curl:
    • Feature: Improved cmake_layout and CMakePresets.json feature so you can manage different configurations using the same CMakeUserPresets.json not only for multi-config (Debug/Release) but for any set of settings specified in a new conf tools.cmake.cmake_layout:build_folder_vars that accepts a list of settings to use. e.g tools.cmake.cmake_layout:build_folder_vars=["settings.compiler", "options.shared"] ( Docs: :page_with_curl:
    • Feature: Adds GCC 9.4 in the list of compilers supported in the settings file. (
    • Feature: Raise an error when running CMake if CMAKE_BUILD_TYPE is not defined and the generator is not multi-config. ( Docs: :page_with_curl:
    • Feature: Implement a check_min_vs() checker that will work for both Visual Studio and msvc to allow migration from 1.X to 2.0 ( Docs: :page_with_curl:
    • Feature: More flexibility in Autotools tools to override arguments and avoid all default arguments for make, autoreconf and configure. ( Docs: :page_with_curl:
    • Feature: Add components support in XcodeDeps. ( Docs: :page_with_curl:
    • Feature: Define new tools.cmake.cmaketoolchain:toolset_arch to define VS toolset x64 or x86 architecture ( Docs: :page_with_curl:
    • Feature: Add new xtensalx7 option for the arch_target and arch settings, allowing targeting Espressif's ESP32-S2 and ESP32-S3 microcontrollers. (
    • Fix: Use interface_library with shared_library on Windows in BazelDeps. (
    • Fix: BazelDeps generator cannot find a lib when it's named with the basename of the lib file. (
    • Fix: Avoid empty paths in run environments PATH, LD_LIBRARY_PATH, DYLD_LIBRARY_PATH env-vars. (
    • Fix: Use DESTDIR argument in make install step instead of using the --prefix in configure. ( Docs: :page_with_curl:
    • Fix: Add -DCMAKE_BUILD_TYPE to markdown generator instructions for CMake single config. (
    • Fix: Fixing --require-override over conditional requirements() method. (
    • Fix: Placing quote marks around echo statement in save_sh function. (
    • Bugfix: Force conan_server to use pyjwt>=2.4.0 to solve a known vulnerability. (
    • Bugfix: Fix case where CMakeDeps generator may use the wrong dependency name for transitive dependencies. (
    • Bugfix: Link cpp_info.objects first in CMakeDeps generator, as they can have dependencies to system_libs that need to be after them in some platforms to correctly link. (
    • Bugfix: Update cmake_layout generators folder to honor os path format. (
    • Bugfix: Catching KeyError if USERNAME is not set as env variable on Windows. (
    • Bugfix: Add Rocky Linux to with_yum. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.66 MB)
    conan-win-32.exe(14.57 MB)
    conan-win-64.exe(15.15 MB)
  • 1.48.1(May 18, 2022)

    • Fix: Add -DCMAKE_BUILD_TYPE to markdown generator instructions for CMake single config. (
    • Bugfix: Fix case where CMakeDeps assumes a module dependency when transitive dependencies do not define cmake_find_mode and fallback to a config one. (
    • Bugfix: Fixed broken apple-clang 13.0 compatibility. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.54 MB)
    conan-win-32.exe(14.55 MB)
    conan-win-64.exe(15.12 MB)
  • 2.0.0-alpha7(May 12, 2022)

  • 1.48.0(May 3, 2022)

    • Feature: Do not recommend to set PKG_CONFIG_PATH in markdown generator any more as it is already set by the AutotoolsToolchain. (
    • Feature: The cmake_layout declares folders.generators = "build/generators" that is common for different configurations, enabling CMakePresets.json to support different configurePresets and buildPresets for single-config and multi-config generators. ( Docs: :page_with_curl:
    • Feature: The CMakeToolchain generator will create (if missing) a CMakeUserPresets.json if the CMakeLists.txt file is found in the root folder of the project. That file will include automatically the CMakePresets.json file contained at build/generators folder to allow CMake and IDEs to locate automatically the presets generated by Conan. ( Docs: :page_with_curl:
    • Feature: The CMAKE_BUILD_TYPE is not adjusted in the conan_toolchain.cmake anymore, the configuration is moved to the CMakePresets.json preparing Conan to support multiple "single-config" configurations in one CMakePresets.json file ( Docs: :page_with_curl:
    • Feature: The CMakePresets.json (file generated when specified the CMakeToolchain generator) is appended with a new buildPresets after a conan install with a different build_type when using a multiconfiguration generator like Visual Studio. ( Docs: :page_with_curl:
    • Feature: Removed PlatformToolset and added conantoolchain.props from *.vcxproj file. (
    • Feature: Append the folder where the Conan generators were installed to PKG_CONFIG_PATH in AutotoolsToolchain. ( Docs: :page_with_curl:
    • Feature: Adding new tools.env.virtualenv:powershell conf to opt-in to generate and use powershell scripts instead of .bat ones. ( Docs: :page_with_curl:
    • Feature: Added new configuration fields:, and ( Docs: :page_with_curl:
    • Feature: Added new mechanism to inject common Xcode flags in CMakeToolchain generator if enabled Bitcode, ARC, or Visibility configurations. ( Docs: :page_with_curl:
    • Feature: New templates for autotools exe and lib. ( Docs: :page_with_curl:
    • Feature: Change build_script_folder argument from the configure to the Autotools build helper constructor. ( Docs: :page_with_curl:
    • Feature: Replaced add_definitions by add_compile_definitions in* package. (
    • Feature: Added cxxflags, cflags, and ldflags attributes to MSBuildToolchain. ( Docs: :page_with_curl:
    • Feature: Added mechanism to inject extra flags to MSBuildToolchain via [conf]. ( Docs: :page_with_curl:
    • Fix: Allow Version(self.settings.compiler.version) to work for new tools.scm.Version``. (
    • Fix: Make shared libraries build with Autotools relocatable in Macos by patching the install name (LC_ID_DYLIB) and setting to @rpath/libname.dylib. ( Docs: :page_with_curl:
    • Fix: using CMAKE_PROJECT_INCLUDE instead of presets to define variables that don't work in toolchains (
    • Fix: Fix quote escaping for defines in pkg_config generator. (
    • Fix: Fix quote escaping for defines in PkgConfigDeps generator. (
    • Fix: Quote add_compile_definitions correctly in CMakeToolchain. (
    • Fix: Escape quotes in definitions in CMakeToochain. (
    • Fix: Renamed self.base_source_folder to self.export_source_folder. That variable was introduced to reference the folder where the export_sources are. Currently, they are copied to the source folder but might be changed in the future to avoid copying them, so self.export_source_folder will always point to the folder containing the exports_sources. ( Docs: :page_with_curl:
    • Fix: Ensure correct order for libraries in AutotoolsDeps. (
    • Fix: Escape quotes in XCodeDeps generator. (
    • Fix: The CMakeDeps generator now set INTERFACE_LINK_DIRECTORIES necessary when using auto link '#pragma comment(lib, "foo")' when the required library sets the property cmake_set_interface_link_directories. ( Docs: :page_with_curl:
    • Fix: Renamed variables from the CMakeToolchain context in blocks to be all lowercase. e.g: CMAKE_OSX_ARCHITECTURES to cmake_osx_architectures. (
    • Bugfix: Avoid BazelDeps to find a library when a directory with the same name exists. (
    • Bugfix: The binaryDir field at CMakePresets.json is not set if the conanfile.build_folder is not available, avoiding a null value breaking the specification. (
    • Bugfix: Fixed unziping while using tools.get or tools.unzip with the strip_root=True in a tgz file with hardlinks inside. (
    • Bugfix: The method get_commit from the new was capturing a wrong commit, for example, ignoring commits in subfolders when checking the parent folder. (
    • Bugfix: The json generator was showing "None" in the version field of the dependencies when the layout() method was used. (
    • Bugfix: The config default_python_requires_id_mode=unrelated_mode raised an error, it has been fixed. (
    • Bugfix: The CMakeToolchain now declares CACHE BOOL variables when a bool is stored in a variable: toolchain.variables["FOO"] = True. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.40 MB)
    conan-win-32.exe(14.55 MB)
    conan-win-64.exe(15.12 MB)
  • 1.47.0(Mar 31, 2022)

    • Feature: Renamed to and removed (now it's the union between and in mostly all the cases). ( Docs: :page_with_curl:
    • Feature: Adding cross-compilation for Android in MesonToolchain. ( Docs: :page_with_curl:
    • Feature: Add extra flags via [conf] into XcodeToolchain. ( Docs: :page_with_curl:
    • Feature: Preliminar support for CMakePresets.json. ( Docs: :page_with_curl:
    • Feature: Added wrap_mode=nofallback project-option into MesonToolchain as default value. (
    • Feature: Added basic rmdir tool at ( Docs: :page_with_curl:
    • Feature: Backport of 2.0 compatibility() recipe method. (
    • Feature: Add detection in meson toolchain for cross conditions and requirement of needs_exe_wrapper. Users may specify the exe wrapper in their now. (
    • Feature: Allow tested_reference_str to be None. (
    • Feature: New templates for the conan new command with bazel examples: bazel_exe and bazel_lib. ( Docs: :page_with_curl:
    • Feature: Add some support for msvc compiler older versions. (
    • Feature: Added mechanism to inject extra flags via [conf] into several toolchains like AutotoolsToolchain, MesonToolchain and CMakeToolchain. ( Docs: :page_with_curl:
    • Feature: Support selecting the target to build for XcodeBuild helper. ( Docs: :page_with_curl:
    • Feature: Support for Xcode 13.3, iOS 15.4, watchOS 8.5 and tvOS 15.4. (
    • Feature: New modern "conan new --template=msbuild_lib|exe" for modern MSBuild VS integration. ( Docs: :page_with_curl:
    • Feature: Added a checker for Conan 2.x deprecated from conans imports in pylint_plugin. ( Docs: :page_with_curl:
    • Feature: New to convert paths to any subsystem when using conanfile.win_bash. ( Docs: :page_with_curl:
    • Feature: New from conan.errors import XXX new namespace to be ready for 2.0. ( Docs: :page_with_curl:
    • Feature: Allow specifying default_options = {"pkg/*:option": "value"} or default_options = {"pkg*:option": "value"} instead of default_options = {"pkg:option": "value"} to make compatible recipes with 2.0. ( Docs: :page_with_curl:
    • Feature: Add Clang 15 to default settings. (
    • Feature: When the layout is declared, the cwd() in the source() method will follow the declared self.folders.source but the exports_sources will still be copied to the base source folder. ( Docs: :page_with_curl:
    • Fix: Add support for clang to msvc_runtime_flag(). It requires defining compiler.runtime = static/dynamic definition, same as modern msvc compiler setting. ( Docs: :page_with_curl:
    • Fix: Generate the correct --target triple when building for Apple catalyst. (
    • Fix: The "" will (by default) look for the patch files in the self.base_source_folder instead of self.source_folder but will apply them with self.source_folder as the base folder. ( Docs: :page_with_curl:
    • Fix: Setting CMAKE_SYSTEM_PROCESSOR for Apple cross-compiling including M1. ( Docs: :page_with_curl:
    • Fix: Do not overwrite values for CMAKE_SYSTEM_NAME, CMAKE_SYSTEM_VERSION and CMAKE_SYSTEM_PROCESSOR set from the [conf] or the user_toolchain. ( Docs: :page_with_curl:
    • Fix: Fix architecture translation from Conan syntax to build system in CMakeToolchain. ( Docs: :page_with_curl:
    • Fix: Several improvements of the Bazel integration (Bazel, BazelToolchain, BazelDeps), new functional tests in all platforms. ( Docs: :page_with_curl:
    • Fix: Conf.get() always returns default value if internal conf_value.value is None, i.e., it was unset. ( Docs: :page_with_curl:
    • Fix: Set -DCMAKE_MAKE_PROGRAM when the generator is for MinGW and the conf tools.gnu:make_program is set. (
    • Fix: Remove unused clion_layout. ( Docs: :page_with_curl:
    • Fix: AutotoolsToolchain adjust the runtime flag of msvc (MTd, MT, MDd or MD) to CFLAGS and CXXFLAGS when using the msvc as settings.compiler. ( Docs: :page_with_curl:
    • Fix: Removed subsystem_path from the namespace, superseded by unix_path. ( Docs: :page_with_curl:
    • Fix: Show an error message at conan install if the validate() method raises ConanInvalidConfiguration. (
    • BugFix: The find_dependency called internally in CMakeDeps generator to locate transitive dependencies now use the MODULE/NO_MODULE following the cmake_find_mode property when declared in the dependency. (
    • Bugfix: Fix virtualrunenv wrong build scope. (
    • BugFix: Make self.folders.root apply at package conan install . too. (
    • Bugfix: Fix call to undefined function for markdown generator when components add system_libs. (
    • Bugfix: solve build_policy=never bug when conan export-pkg --force and there already exists a package in the cache. (
    • Bugfix: Add transitive dependencies to generated Bazel BUILD files. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.34 MB)
    conan-win-32.exe(14.50 MB)
    conan-win-64.exe(15.07 MB)
  • 2.0.0-alpha6(Mar 28, 2022)

  • 1.46.2(Mar 18, 2022)

  • 1.46.1(Mar 17, 2022)

    • Feature: Added a checker for Conan 2.x deprecated from conans imports in pylint_plugin. (
    • Feature: Add apple-clang 13 major version to settings. (
    • Feature: Make apple-clang 13 version package-id compatible with 13.0. (
    • Feature: Autodetect only major version for apple-clang profile starting in version 13. (
    • Feature: Add clang 15 version to settings. (
    • Bugfix: Fix call to undefined function for markdown generator when components add system_libs. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.32 MB)
    conan-win-32.exe(14.48 MB)
    conan-win-64.exe(15.05 MB)
  • 2.0.0-alpha5(Mar 8, 2022)

  • 1.46.0(Mar 7, 2022)

    • Feature: Configuration field tools.cmake.cmaketoolchain:user_toolchain defined as list-like object ( Docs: :page_with_curl:
    • Feature: Prepare Conan for search remote repos with mix of 1.X and 2.0 binaries. Conan 1.X will not list binaries (conan search <ref>) stored in remote repos that were created with Conan 2.0. (
    • Feature: Adding jinja rendering of global.conf config file. ( Docs: :page_with_curl:
    • Feature: Improve markdown generator instructions. ( Docs: :page_with_curl:
    • Feature: The CMakeToolchain and AutotoolsToolchain take into account the cpp.package info to set the output directories for libraries, executables, and so on when running cmake.install or make install. ( Docs: :page_with_curl:
    • Feature: Added basic_layout, removed meson_layout and added argument src_folder to cmake_layoutas a shortcut for adjusting conanfile.folders.source. ( Docs: :page_with_curl:
    • Feature: Adding self.base_source_folder for exports_sources explicit layouts. ( Docs: :page_with_curl:
    • Feature: Adding root to layout model to allow in subfolders. ( Docs: :page_with_curl:
    • Feature: Added new property component_version for PkgConfigDeps and legacy PkgConfig. ( Docs: :page_with_curl:
    • Feature: Changed .pc file description field for components in PkgConfigDeps. ( Docs: :page_with_curl:
    • Feature: Add sdk_version setting for Macos, iOS, watchOS and tvOS. ( Docs: :page_with_curl:
    • Feature: Add new XcodeBuild build helper. ( Docs: :page_with_curl:
    • Feature: Add new XcodeToolchain helper. ( Docs: :page_with_curl:
    • Feature: Add compiler.version 12 for GCC in settings. (
    • Feature: Introduce new helper, for direct use in export() method to capture git url and commit, and to be used in source() method to clone and checkout a git repo. ( Docs: :page_with_curl:
    • Feature: New from import update_conandata() helper to add data to conandata.yml in the export() method. ( Docs: :page_with_curl:
    • Feature: Add CMake variables, cli arguments and native build system arguments to new helper. ( Docs: :page_with_curl:
    • Feature: Adding more functionality to ConfDefinition and Conf, something similar to ProfileEnvironment and Environment ones. ( Docs: :page_with_curl:
    • Feature: Port to Conan 1.X. ( Docs: :page_with_curl:
    • Feature: Port to Conan 1.X. ( Docs: :page_with_curl:
    • Feature: New copy tool at namespace that will replace the self.copy in Conan 2.0. ( Docs: :page_with_curl:
    • Feature: Add recipe_folder to pylint plugin. (
    • Fix: Pin Markupsafe==2.0.1 for py27 and upgrade Jinja2>3 for py3, after Markupsafe latest 2.1 release broke Jinja2 2.11. (
    • Fix: Fixed templates for conan new with --template cmake_lib and --template cmake_exe to include Conan 2.0 compatible syntax. (
    • Fix: Moved new tool cross_building from conan.tool.cross_building to to match the location in develop2. (
    • Fix: Don't compose folders in Xcode generator using dep.package_folder, now cpp_info.bindirs, cpp_info.includedirs, etc. are absolute. (
    • Fix: When the layout() method is declared, the self.package_folder in the recipe is now available even when doing a conan install ., pointing to the specified output folder (-of ) or the path of the conanfile if not specified. (
    • Fix: Fix creation path of deactivate scripts. (
    • Fix: Add support for [tool_requires] section in conanfile.txt. (
    • Fix: When layout() is defined, the exports will not be considered sources anymore, but only the exports_sources. The exports are used exclusively by the recipe, but not as package source. (
    • Fix: Make the source() method run inside the self.source_folder, in the same way build() runs in self.build_folder. But only for recipes that define the layout() method, to not break unless using layout(). ( Docs: :page_with_curl:
    • Fix: Remove the --source-folder new argument to install and editable, not necessary at the moment. ( Docs: :page_with_curl:
    • Fix: Fix conf True and False handling in tools.system.package_manage helpers. (
    • Fix: Change the CMakeToolchain message to use CMAKE_CURRENT_LIST_FILE. (
    • Fix: BazelDeps was generating invalid bazel files cause the static_library paths were absolute and not relative. (
    • Fix: BazelDeps was crashing when generating packages without libs cause the context was not checking the array size. (
    • Fix: Fix Premake test failing on Linux because the Premake executable isn't found. (
    • Bugfix: Fix MesonToolchain extra quotes in cpp_std (
    • Bugfix: Add missing system_libs management in AutotoolsDeps. (
    • Bugfix: GnuDepsFlags attributes like frameworks and frameworkdirs are only available for Apple OS. (
    • Bugfix: Remove tmp folders created in Conan while checking the output of a command and detecting the compiler. (
    • Bugfix: Fix conan_server circular import do to namespace. (
    • bugfix: Fix meson_layout() issue with shared folders. (
    • Bugfix: Fix SystemPackageTool when mode=verify, it was still installing packages. (
    • Bugfix: self.build_folder not being computed even if layout() method is defined in local conan install. Close (
    • Bugfix: Fix conan_manifest.txt parse error when the filename has ":" in it. (
    • Bugfix: Use meson toolchain file from install folder. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.32 MB)
    conan-win-32.exe(14.48 MB)
    conan-win-64.exe(15.05 MB)
  • 1.43.4(Feb 18, 2022)

  • 2.0.0-alpha4(Feb 17, 2022)

  • 1.45.0(Feb 2, 2022)

    • Feature: Add system.package_manager tools to conan config list. ( Docs: :page_with_curl:
    • Feature: Use system package manager helpers from ( Docs: :page_with_curl:
    • Feature: Add [tool_requires] section to profiles. (
    • Feature: Add meson_lib and meson_exe, conan new templates. ( Docs: :page_with_curl:
    • Feature: Add is_msvc_static_runtime method to to identify when using msvc with static runtime. ( Docs: :page_with_curl:
    • Feature: Improve support for Visual Studio in AutotoolsToolchain. (
    • Feature: Make pkg-config tooling accessible under and (
    • Feature: Use .bazel suffix for generated Bazel files. ( Docs: :page_with_curl:
    • Feature: New tools in for invoking system package managers in recipes. ( Docs: :page_with_curl:
    • Feature: Testing the expected PC files created when the component name matches with the root package one using either pkg_config or PkgConfigDeps generators. ( Docs: :page_with_curl:
    • Feature: Better definition of clang compiler in Windows in CMakeToolchain. (
    • Feature: Add VxWorks to OSs in default settings.yml. ( Docs: :page_with_curl:
    • Feature: Add is_msvc to validate if settings.compiler is Visual Studio and msvc compilers. ( Docs: :page_with_curl:
    • Feature: os.sdk field is mandatory for CMakeToolchain and OS in ('Macos', 'iOS', 'watchOS', 'tvOS'). (
    • Feature: Adding --source-folder and --output-folder to conan editable and conan install to work with layout(). ( Docs: :page_with_curl:
    • Feature: Adding clang 14 to settings.yml. Needed for emsdk package in Conan Center Index. (
    • Feature: PkgConfigDeps shows WARN messages if there are duplicated pkg_config_name and/or pkg_config_aliases. ( Docs: :page_with_curl:
    • Feature: Improvements in MesonToolchain, including some cross-building functionality. (
    • Feature: Update content created by the markdown generator. ( Docs: :page_with_curl:
    • Fix: Remove auto-detection of VS 2022 as msvc compiler, detect it as Visual Studio version 17. ( Docs: :page_with_curl:
    • Fix: Do not report warning for duplicated component names in CMakeDeps. (
    • Fix: Let legacy Meson build helper use other backends apart from ninja. (
    • Fix: msvc_runtime_flag returns empty string instead of None. ( Docs: :page_with_curl:
    • Fix: Parsing a url with query args in conan config install results in a bad filename that could fail. (
    • Fix: The argument patch_file from tools.files.patch is now relative to conanfile.source_folderby default, unless an absolute path to another location is provided, for example, to a path in the conanfile.build_folder. ( Docs: :page_with_curl:
    • Fix: Use install folder for Bazel dependency paths. ( Docs: :page_with_curl:
    • Fix: Enforce CMP0091 policy to NEW in CMakeToolchain. (
    • Fix: Add quotes around conan_message output variable so it is not modified. (
    • Fix: Add pathlib as hidden-import to, so it is bundled with the installer. (
    • Fix: Move imports of pre-defined layouts to their build-system domain. ( Docs: :page_with_curl:
    • Fix: Allow cmake generator checks for Visual Studio 2022. (
    • Fix: Do not generate transitive .props for MSbuildDeps tool-requires. (
    • Fix: Manage spaces in [buildenv] profile definition. (
    • Fix: Add -debug to LDFLAGS in AutotoolsToolchain when necessary. (
    • Fix: Fix extra } characters in cppstd info message. (
    • Fix: Fix quotes in generated environment deactivation scripts. (
    • Fix: Fix the CMakeToolchain generated code, so it doesnt fail for -Werror --warn-unitilized. (
    • Fix: Fix spaces in settings.yml to prevent the YAML linter from complaining. (
    • Fix: Convert NewCppInfo folders to absolute. (
    • Fix: Improved CMakeToolchain robustness regarding find_file, find_path and find_program commands allowing better cross-build scenarios and better differentiation of the right context where to get, for example, executables (build vs host). ( Docs: :page_with_curl:
    • Bugfix: Fix BazelDeps using absolute glob paths instead of relative. (
    • BugFix: Avoid BazelDeps exception when depending on a package without libs. Close (
    • Bugfix: Fix AttributeError: 'PackageEditableLayout' object has no attribute 'package_lock' that happened when sing package_revision_mode with editable packages (and lockfiles). (
    • Bugfix: Visual Studio 2022 auto-detected profile was incomplete. (
    • Bugfix: Fix the caching of ConanFile.dependencies at validate() time. (
    • Bugfix: Avoid package_id errors when using compatible_packages of repeated references (which can happen if using private dependencies). (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.87 MB)
    conan-win-32.exe(14.68 MB)
    conan-win-64.exe(15.25 MB)
  • 2.0.0-alpha3(Jan 28, 2022)

  • 1.44.1(Jan 13, 2022)

    • Bugfix: The CMakeDeps generator now uses the property cmake_build_modules declared in components of the required packages not only in the root cpp_info. (
    • Bugfix: Adding missing hidden-imports to pyinstaller. Close (
    • Bugfix: Make pkg_config generator listen to root cpp_info properties. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.85 MB)
    conan-win-32.exe(14.67 MB)
    conan-win-64.exe(15.25 MB)
  • 1.43.3(Jan 13, 2022)

  • 1.44.0(Dec 29, 2021)

    • Feature: Add <PackageName>_LIBRARIES, <PackageName>_INCLUDE_DIRS, <PackageName>_INCLUDE_DIR, <PackageName>_DEFINITIONS and <PackageName>_VERSION_STRING variables in CMakeDeps. (
    • Feature: Adding a new Block to the CMakeToolchain now doesn't require inheriting CMakeToolchainBlock. ( Docs: :page_with_curl:
    • Feature: Add build_modules and build_modules_paths to JsonGenerator. ( Docs: :page_with_curl:
    • Feature: The CMakeToolchain is now prepared to apply several user toolchains. ( Docs: :page_with_curl:
    • Feature: In the of the test_package, the reference being tested is always available at self.tested_reference_str. ( Docs: :page_with_curl:
    • Feature: Introduced a new test_type value explicit so a user can declare explicitly the requires or build_requires manually (using self.tested_reference_str), it won't be automatically injected as a require. In Conan 2.0 the test_type attribute will be ignored, the behavior will be always explicit, so declaring test_type="explicit" will make the test recipe compatible with Conan 2.0. ( Docs: :page_with_curl:
    • Feature: Introduced tool_requires attribute to provide a compatible way to migrate to Conan 2.0, where the current concept of build_requires has been renamed to tool_requires. ( Docs: :page_with_curl:
    • Feature: Upgrade Conan python jinja requirement to v3.x. (
    • Feature: Provided several functions to manage symlinks: Transform absolute to relative symlinks, remove broken symlinks, remove external symlinks and get the symlinks in a folder. These tools will help migrate to Conan 2.0 where the package files won't be automatically cleaned from broken absolute symlinks or external symlinks. ( Docs: :page_with_curl:
    • Feature: Remove legacy folder setters in conanfile.xxxx_folder = yyy only used for testing. (
    • Feature: Add Git.version property to check the current git version, aligned with SVN.version. ( Docs: :page_with_curl:
    • Feature: Add build_requires support in BazelDeps generators. (
    • Fix: Fix variable names set by CMakeDeps modules. (
    • Fix: Call to find_dependency in module mode to find transitive dependencies. (
    • Fix: remove rpath from .pc files generated by pkg_config & PkgConfigDeps generators. ( Docs: :page_with_curl:
    • Fix: Deleted CMake warning for already existing targets. (
    • Bugfix: Fix passing component's linkflags in CMakeDepes generator (
    • Bugfix: AutotoolsToolchain was not passing the compiler to get_gnu_triplet function. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.80 MB)
    conan-win-32.exe(14.61 MB)
    conan-win-64.exe(15.18 MB)
  • 1.43.2(Dec 21, 2021)

    • Fix: Remove generator argument from cpp_info.set_property() method. ( Docs: :page_with_curl:
    • Fix: Do not convert to cmake_build_modules property the legacy cpp_info.build_modules. (
    • Bugfix: Compiler msvc was not working for CMake legacy generators. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.73 MB)
    conan-win-32.exe(14.58 MB)
    conan-win-64.exe(15.16 MB)
  • 1.43.1(Dec 17, 2021)

    • Bugfix: Making aggregate_components non-destructive, which was causing errors in generators with components. (
    • Bugfix: Fix the definition of D_GLIBCXX_USE_CXX11_ABI in gcc-like compilers for CMakeToolchain and AutotoolsToolchain. Define it only to D_GLIBCXX_USE_CXX11_ABI=0 for new compilers, assuming that the default is alread 1. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.73 MB)
    conan-win-32.exe(14.58 MB)
    conan-win-64.exe(15.16 MB)
  • 2.0.0-alpha2(Dec 14, 2021)

  • 1.43.0(Dec 3, 2021)

    • Feature: Remove cmake_target_namespace and cmake_module_target_namespace properties. ( Docs: :page_with_curl:
    • Feature: Allow CMakeDeps to set cmake_target_name property as an absolute target. ( Docs: :page_with_curl:
    • Feature: Add warning in CMakeDeps generated CMake files when target names collide. ( Docs: :page_with_curl:
    • Feature: Legacy cmake generators (cmake_find_package, cmake_find_package_multi) don't listen to new set_properties model anymore. ( Docs: :page_with_curl:
    • Feature: pkg_config_name is used as the main name for a package/component and it will be used as the name for the *.pc file. ( Docs: :page_with_curl:
    • Feature: Added new propertypkg_config_aliases which admits a list of strings to define different aliases for any package/component. ( Docs: :page_with_curl:
    • Feature: Define os=baremetal in settings.yml to represent platforms without OS "bare metal". ( Docs: :page_with_curl:
    • Feature: Modern tools.gnu.PkgConfig to supersede legacy tools.PkgConfig. Includes management of PKG_CONFIG_PATH and mapping to a cpp_info structure ( Docs: :page_with_curl:
    • Feature: Add test_requires() for 2.0 migration of force_host_context. ( Docs: :page_with_curl:
    • Feature: Added C++23 support for Visual Studio and GCC 11.2 one. (
    • Feature: Enable from conan import ConanFile to prepare for future namespace. ( Docs: :page_with_curl:
    • Feature: Add backend support to MesonToolchain. ( Docs: :page_with_curl:
    • Fix: Fix <PackageName>_FIND_COMPONENTS CMake generated variable to the correct value associated with the filename, not the package name. ( Docs: :page_with_curl:
    • Fix: Updated the ConanException in to improve the error message handling. ( Docs: :page_with_curl:
    • Fix: Simplify parallel definition in new conf, leaving only Use max number of CPUs by default to build in parallel. ( Docs: :page_with_curl:
    • Fix: Fix the msvc version model, which is comparison broken with the "main" 19.3 version < 19.22. ( Docs: :page_with_curl:
    • Fix: Fix the EnvVar.save_ps1() method. (
    • Fix: CMakeToolchain will not crash if build_type not defined. (
    • Fix: Avoid raising an exception for conan info --paths when there are editables in the graph. (
    • Fix: Fix wrong parameter name in CMakeDeps find_library function. (
    • Fix: Improve error message when unzipping Conan .tgz artifacts. (
    • Fix: Respect error code 6 in some situations. (
    • Bugfix: Fix parallel package downloading. While downloading conan locks incorrect package ref. (
    • Bugfix: Add import for CMakeToolchainBlock custom Blocks in CMakeToolchain. ( Docs: :page_with_curl:
    • Bugfix: Option --require-override is not working for conanfile.txt. (
    • Bugfix: Fix unescaped double-quotes for defines in Premake generator. (
    • Bugfix: Use new tools.cross_building in MesonToolchain . (
    • Bugfix: CMakeDeps generated *-data.cmake was not including properly the set of link flags. (
    • Bugfix: CMakeDeps was not populating INTERFACE_LINK_OPTIONS to each target. (
    • Bugfix: PkgConfigDeps was not adding correctly the Requires for all the package dependencies. (
    • Bugfix: user_toolchain properly included and path quoted in CMakeToolchain. (
    • Bugfix: Solved an issue with the conan config install whereby a cryptic error was raised when a user tried to install a directory that previously was a file and vice-versa. (
    • Bugfix: Missing framework for Xcode generator with no compiler setting. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.73 MB)
    conan-win-32.exe(14.64 MB)
    conan-win-64.exe(15.21 MB)
  • 1.42.2(Nov 22, 2021)

  • 1.42.1(Nov 8, 2021)

    • Fix: Fix XcodeDeps architecture name translation from Conan to Apple identifiers. (
    • Bugfix: Fix XcodeDeps bad xcconfig generation when using dash-case-named packages (
    • Bugfix: Avoid exception if msvc compiler not defined in settings.yml file. (
    • Bugfix: legacy cmake generator is not affected by set_property. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.61 MB)
    conan-win-32.exe(14.63 MB)
    conan-win-64.exe(15.20 MB)
  • 2.0.0-alpha1(Nov 8, 2021)

Conan Package and Dependency Manager
Spack is a package manager, and package managers should be trivial to install.

?? Spack with batteries included (linux/x86_64) Spack is a package manager, and package managers should be trivial to install. This repo offers a sing

Harmen Stoppels 14 Jun 6, 2022
BakePKG is a package archive that can install itself without without a package manager.

BakePKG A bad way of packaging applications. Introduction BakePKG is a package archive that can install itself without without a package manager. The

bread 4 Aug 16, 2021
The decentralized package manager for C++ and friends 🏝️

Buckaroo The decentralized package manager for C++ and friends. Why Buckaroo? Package managers like Yarn and Cargo have shown how productive developer

LoopPerfect 892 Jul 31, 2022
📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.

Setup-free CMake dependency management CPM.cmake is a CMake script that adds dependency management capabilities to CMake. It's built as a thin wrapper

CPM.cmake 1.3k Aug 8, 2022
CMake driven cross-platform package manager for C/C++.

Hunter CMake driven cross-platform package manager for C/C++. Linux, Windows, macOS, iOS, Android, Raspberry Pi, etc. Documentation:

null 456 Jul 25, 2022
C++ Library Manager for Windows, Linux, and MacOS

Vcpkg: Overview 中文总览 Español 한국어 Français Vcpkg helps you manage C and C++ libraries on Windows, Linux and MacOS. This tool and ecosystem are constant

Microsoft 16.3k Jul 31, 2022
C++ package retrieval

cget Cmake package retrieval. This can be used to download and install cmake packages. The advantages of using cget are: Non-intrusive: There is no ne

Paul Fultz II 411 Jul 20, 2022
✔️The smallest header-only GUI library(4 KLOC) for all platforms

Welcome to GUI-lite The smallest header-only GUI library (4 KLOC) for all platforms. 中文 Lightweight ✂️ Small: 4,000+ lines of C++ code, zero dependenc

null 6.3k Jul 31, 2022
PMM - The C++ Package Manager Manager

PMM - The Package Manager Manager PMM is a module for CMake that manages... package managers. Wha- Why? People hate installing new software. Especiall

Edgar 12 Jun 28, 2022
Spack is a package manager, and package managers should be trivial to install.

?? Spack with batteries included (linux/x86_64) Spack is a package manager, and package managers should be trivial to install. This repo offers a sing

Harmen Stoppels 14 Jun 6, 2022
BakePKG is a package archive that can install itself without without a package manager.

BakePKG A bad way of packaging applications. Introduction BakePKG is a package archive that can install itself without without a package manager. The

bread 4 Aug 16, 2021
"Sigma File Manager" is a free, open-source, quickly evolving, modern file manager (explorer / finder) app for Windows, MacOS, and Linux.

"Sigma File Manager" is a free, open-source, quickly evolving, modern file manager (explorer / finder) app for Windows, MacOS, and Linux.

Aleksey Hoffman 898 Aug 7, 2022
gloom game, built with conan

gloom game, built with conan

null 0 Feb 7, 2022
Conan recipe for Irrlicht library

conan-irrlicht conan-mpusz package for Irrlicht library. The package generated with this conanfile can be found at conan-mpusz. conan client can be do

Mateusz Pusz 1 Oct 12, 2020
Conan recipe for Google Benchmark library

DEPRECATED Please note that as Google Benchmark now has an official Conan support this repository should be considered deprecated. Please download the

Mateusz Pusz 8 Jan 17, 2022
C package manager-ish

clib(1) Package manager for the C programming language. Installation Expects libcurl to be installed and linkable. With homebrew: $ brew install clib

clibs 4.4k Aug 6, 2022
C++ Package Manager

CPM Note CPM is not being actively maintained. I plan on keeping the website active but don't plan on making further modifications to the codebase. If

James 717 Jul 25, 2022
The decentralized package manager for C++ and friends 🏝️

Buckaroo The decentralized package manager for C++ and friends. Why Buckaroo? Package managers like Yarn and Cargo have shown how productive developer

LoopPerfect 892 Jul 31, 2022
📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.

Setup-free CMake dependency management CPM.cmake is a CMake script that adds dependency management capabilities to CMake. It's built as a thin wrapper

CPM.cmake 1.3k Aug 8, 2022
CMake driven cross-platform package manager for C/C++.

Hunter CMake driven cross-platform package manager for C/C++. Linux, Windows, macOS, iOS, Android, Raspberry Pi, etc. Documentation:

null 456 Jul 25, 2022
Package manager for linux that installs windows apps through wine

Winepkg A package manager for linux that installs windows apps through wine. Usage winepkg -Si mspaint Install Dependencies: wine winetricks wget cur

null 2 May 27, 2022
📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.

Setup-free CMake dependency management CPM.cmake is a CMake script that adds dependency management capabilities to CMake. It's built as a thin wrapper

CPM.cmake 1.3k Aug 7, 2022
Windows Package Manager CLI (aka winget)

Welcome to the Windows Package Manager Client (aka winget.exe) repository This repository contains the source code for the Windows Package Manager Cli

Microsoft 17.5k Aug 9, 2022
ZPM - The C++ package manager based on premake5

ZPM ZPM is the C++ package manager built for everyone who uses premake! We designed it to make it easy to use libraries, modules and assets. PLEASE NO

Zefiros Software 27 Feb 15, 2022
Example of downloading/installing dependencies using Hunter package manager.

Linux/OSX Windows Example of downloading/installing dependencies using Hunter package manager. Requirements CMake version 3.0 Usage Set HUNTER_ROOT en

null 45 Apr 12, 2022
Examples of using Hunter package manager to build and run Android application.

Examples of using Hunter package manager to build and run Android application. Requirements Android NDK Go to download page and choose NDK for your pl

null 34 Mar 13, 2022
A package manager for C++, like Cargo for Rust.

Description Poac is a package manager for C++ users. Poac can download project's dependencies and compile a project. Please see, installation

Poac 530 Aug 1, 2022
BSCXX (for BootStrap CXX project) is a C++ package manager.

bscxx bscxx (for bootstrap CXX project) is a very light utility software, written in C++ 17, to help you starting quickly a new C++ project using cmak

Victor Gallet 1 Sep 21, 2019
C++ front-end package manager for embedding and redistributing with native applications

Pacm Simple C++ package manager Homepage: Documentation: Dependencies: LibSourcey (b

Sourcey 84 Jun 5, 2022