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
  • "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 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
  • 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
  • Fixing cmake_layout single config

    Fixing cmake_layout single config

    Changelog: Bugfix: Make cmake_layout to use single-config folder for generated files Docs:


    opened by memsharded 0
  • Feature/develop2 restapi parallel download

    Feature/develop2 restapi parallel download

    • Follow-up from, trying to speed up installation of dependencies with threads (measured in my machine speed-up of 20-30%)
    • Minor cleanings of some traces and output, for example, not printing "Downloading xxx" for every file, even small ones, only for those > 1Mb
    opened by memsharded 0
  • [bug] conan_toolchain.cmake is shared by both build_types

    [bug] conan_toolchain.cmake is shared by both build_types

    Environment details

    • Operating System+version: Linux 6.1.1-1-MANJARO
    • Compiler+version: N/A
    • Conan version: 1.56
    • Python version: 3.10.8
    • CMake 3.24.2

    Steps to reproduce

    1. create a CMakeLists.txt with an option
    2. enable that option based on build_type in the conanfile
    3. run the conan install for both buildtypes conan install ... && conan install ... -s build_type=Debug
    4. Spend half an hour wondering why the cmake expression generator which is assigned to that option keeps on having the same value.
    5. Observe the CMakePresets.json and notice that the conan_toolchain.cmake is used by both ConfigurePresets.
    6. Observe the value of the option specified in the CMakeLists.txt haveing that same value.


    No response

    stage: triaging 
    opened by jellespijker 1
  • [bug] PATH inconsistent in test package method between one and two profiles

    [bug] PATH inconsistent in test package method between one and two profiles

    Environment details

    • Conan version: 1.56.0

    I am trying to migrate to two profiles, and facing problems with our test packages in the process. Paths set with self.env_info.PATH are not set in the test() method of the test package any more.

    from conans import ConanFile
    import os
    class TestConan(ConanFile):
        name = "testtest"
        version = "latest"
        def package_info(self):
            self.env_info.PATH.append(os.path.join(self.package_folder, "test", "bin"))


    from conans import ConanFile
    import os
    class TestTestConan(ConanFile):
        def test(self):

    Steps to reproduce

    Create a new Conan package with the given test package, and call conan create just with a single profile, then repeat the process with two profiles.


    conan create -pr=default
    testtest/latest (test package): Running test()
    D:\Conan\Cache2profiles\testtest\latest\_\_\package\4068d26db0f235082dbcdd6f303d1cbf4d149cf1\test\bin;C:\Program Files\Eclipse Foundation\jdk-8.0.302.8-hotspot\bin;...

    While with two profiles, it is not part of the printed PATH.

    conan create -pr:b=default -pr:h=default
    testtest/latest (test package): Running test()
    C:\Program Files\Eclipse Foundation\jdk-8.0.302.8-hotspot\bin;...
    opened by KerstinKeller 1
  • [bug] tool_requires not captured in lockfile with `--reference` argument

    [bug] tool_requires not captured in lockfile with `--reference` argument

    Environment details

    • Conan version: 1.56.0

    It seems that conan lock create does not capture info about the build context if a --reference is given instead of a path to a Conan file. I'd expect the output of the lockfiles to be completely identical. But maybe this is not a bug, but my expectation is completely wrong.

    I have this simple testcase:

    import json
    import os
    from conans.model.graph_lock import GraphLockFile
    from import TestClient, GenConanfile
    profile = """
    def test_regular_package():
        client = TestClient()
        # TODO: This is hardcoded"config set general.revisions_enabled=1"){"pkga/":     GenConanfile(),
                     "tool/":    GenConanfile().with_requires("pkga/[>=1.0.0]"),
                     "app/":      GenConanfile().with_require("pkga/1.0.0").with_build_requires("tool/1.0.0"),
                     "myprofile": profile})    # version range in app
        # export different version from the libs to the cache        "export pkga pkga/1.0.0@")"export tool tool/1.0.0@")"export app  app/1.0.0@")
   "lock create --reference app/1.0.0@ --lockfile-out app-ref.lock  --profile=myprofile --profile:build=myprofile")"lock create app/       --lockfile-out app-path.lock --profile=myprofile --profile:build=myprofile")

    Output app-ref.lock:

     "graph_lock": {
      "nodes": {
       "1": {
        "ref": "app/1.0.0#1060c73d1197f6b245cef3cd7c87ac71",
        "options": "",
        "package_id": "7a295e38f67ab11f20e4d00c956ccbf105042b5d",
        "requires": [
        "context": "host"
       "2": {
        "ref": "pkga/1.0.0#f3367e0e7d170aa12abccb175fee5f97",
        "options": "",
        "package_id": "5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9",
        "context": "host"
      "revisions_enabled": true
     "version": "0.4",
     "profile_host": "[settings]\n[options]\n[build_requires]\ntool: pkga/1.0.0\n[env]\n",
     "profile_build": "[settings]\n[options]\n[build_requires]\ntool: pkga/1.0.0\n[env]\n"

    Output app-path.lock

    "graph_lock": {
     "nodes": {
      "0": {
       "options": "",
       "requires": [
       "build_requires": [
       "path": "C:\\Users\\AppData\\Local\\Temp\\tmpenp7pbyzconans\\path with spaces\\app\\",
       "context": "host"
      "1": {
       "ref": "pkga/1.0.0#f3367e0e7d170aa12abccb175fee5f97",
       "options": "",
       "package_id": "5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9",
       "context": "host"
      "2": {
       "ref": "tool/1.0.0#a04bd171e1fdb2dfdd736aad73aedf92",
       "options": "",
       "package_id": "7a295e38f67ab11f20e4d00c956ccbf105042b5d",
       "requires": [
       "context": "build"
      "3": {
       "ref": "pkga/1.0.0#f3367e0e7d170aa12abccb175fee5f97",
       "options": "",
       "package_id": "5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9",
       "context": "build"
     "revisions_enabled": true
    "version": "0.4",
    "profile_host": "[settings]\n[options]\n[build_requires]\ntool: pkga/1.0.0\n[env]\n",
    "profile_build": "[settings]\n[options]\n[build_requires]\ntool: pkga/1.0.0\n[env]\n"

    Steps to reproduce

    No response


    No response

    opened by KerstinKeller 0
  • [bug] cmake_generator configuration is not respected

    [bug] cmake_generator configuration is not respected

    Environment details

    • Operating System+version: Microsoft Windows 10 Pro 10.0.19045 Build 19045
    • Compiler+version: clang 15
    • Conan version: 1.56.0
    • Python version: 3.8.6

    Steps to reproduce

    1. Set cmake_generator
    conan config set general.cmake_generator=Ninja
    1. Run
    conan workspace install /path/to/conan-workspace.yml --build=missing --profile "/path/to/conan-clang-profile"

    For the bzip2/1.0.8 package, which is a dependency, I get the error

    CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.

    I was expecting that everything will be build with Ninja as a CMake generator instead of MinGW Makefiles.

    In C:\Users\sogartary\.conan\data\bzip2\1.0.8\_\_\build\664a290ff8a4232d40ea8d66ae4e20ff2cb6ef7b\build\generators\CMakePresets.json the wrong generator is specified.


    conan workspace install ../conan-workspace.yml --build=missing --profile ../conan-clang-debug-profile
    boost/1.81.0: Not found in local cache, looking in remotes...
    boost/1.81.0: Trying with 'conancenter'...
    Downloading conanmanifest.txt completed [0.35k]
    Downloading completed [79.68k]
    Downloading conan_export.tgz completed [1.37k]
    Decompressing conan_export.tgz completed [0.00k]
    boost/1.81.0: Downloaded recipe revision 0
    zlib/1.2.13: Not found in local cache, looking in remotes...
    zlib/1.2.13: Trying with 'conancenter'...
    Downloading conanmanifest.txt completed [0.28k]
    Downloading completed [4.04k]
    Downloading conan_export.tgz completed [0.29k]
    Decompressing conan_export.tgz completed [0.00k]
    zlib/1.2.13: Downloaded recipe revision 0
    bzip2/1.0.8: Not found in local cache, looking in remotes...
    bzip2/1.0.8: Trying with 'conancenter'...
    Downloading conanmanifest.txt completed [0.17k]
    Downloading completed [4.26k]
    Downloading conan_export.tgz completed [0.24k]
    Decompressing conan_export.tgz completed [0.00k]
    bzip2/1.0.8: Downloaded recipe revision 0
    eigen/3.4.0: Not found in local cache, looking in remotes...
    eigen/3.4.0: Trying with 'conancenter'...
    Downloading conanmanifest.txt completed [0.10k]
    Downloading completed [3.20k]
    Downloading conan_export.tgz completed [0.25k]
    Decompressing conan_export.tgz completed [0.00k]
    eigen/3.4.0: Downloaded recipe revision 0
    nlohmann_json/3.11.2: Not found in local cache, looking in remotes...
    nlohmann_json/3.11.2: Trying with 'conancenter'...
    Downloading conanmanifest.txt completed [0.10k]
    Downloading completed [1.64k]
    Downloading conan_export.tgz completed [0.24k]
    Decompressing conan_export.tgz completed [0.00k]
    nlohmann_json/3.11.2: Downloaded recipe revision 0
    polymorphic_value/1.3.0: Not found in local cache, looking in remotes...
    polymorphic_value/1.3.0: Trying with 'conancenter'...
    Downloading conanmanifest.txt completed [0.10k]
    Downloading completed [2.73k]
    Downloading conan_export.tgz completed [0.26k]
    Decompressing conan_export.tgz completed [0.00k]
    polymorphic_value/1.3.0: Downloaded recipe revision 0
    b2/4.9.2: Not found in local cache, looking in remotes...
    b2/4.9.2: Trying with 'conancenter'...
    Downloading conanmanifest.txt completed [0.10k]
    Downloading completed [6.99k]
    Downloading conan_export.tgz completed [0.24k]
    Decompressing conan_export.tgz completed [0.00k]
    b2/4.9.2: Downloaded recipe revision 0
        boost/1.81.0 from 'conancenter' - Downloaded
        bzip2/1.0.8 from 'conancenter' - Downloaded
        eigen/3.4.0 from 'conancenter' - Downloaded
        nlohmann_json/3.11.2 from 'conancenter' - Downloaded
        polymorphic_value/1.3.0 from 'conancenter' - Downloaded
        zlib/1.2.13 from 'conancenter' - Downloaded
        modscheme_lib/0.1 from user folder - Editable
        modscheme_server/0.1 from user folder - Editable
        boost/1.81.0:62c93f29b9f76c328a46007549cc459447eeb77b - Build
        bzip2/1.0.8:664a290ff8a4232d40ea8d66ae4e20ff2cb6ef7b - Build
        eigen/3.4.0:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Download
        nlohmann_json/3.11.2:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Download
        polymorphic_value/1.3.0:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Download
        zlib/1.2.13:01822c8126f3805e61534fa72215516497c36eb2 - Build
        modscheme_lib/0.1:27e502d47a8725d19299a32b559b4f6dd00ec394 - Editable
        modscheme_server/0.1:1a022cf2f8fb5768319a46ddef85fc367f8c90bd - Editable
    Build requirements
        b2/4.9.2 from 'conancenter' - Downloaded
    Build requirements packages
        b2/4.9.2:ca33edce272a279b24f87dc0d4cf5bbdcffbc187 - Download
    Installing (downloading, building) binaries...
    b2/4.9.2: Retrieving package ca33edce272a279b24f87dc0d4cf5bbdcffbc187 from remote 'conancenter'
    Downloading conanmanifest.txt completed [14.27k]
    Downloading conaninfo.txt completed [0.24k]
    Downloading conan_package.tgz completed [505.57k]
    Decompressing conan_package.tgz completed [0.00k]
    b2/4.9.2: Package installed ca33edce272a279b24f87dc0d4cf5bbdcffbc187
    b2/4.9.2: Downloaded package revision 0
    eigen/3.4.0: Retrieving package 5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 from remote 'conancenter'
    Downloading conanmanifest.txt completed [47.09k]
    Downloading conaninfo.txt completed [0.29k]
    Downloading conan_package.tgz completed [1433.41k]
    Decompressing conan_package.tgz completed [0.00k]
    eigen/3.4.0: Package installed 5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9
    eigen/3.4.0: Downloaded package revision 0
    nlohmann_json/3.11.2: Retrieving package 5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 from remote 'conancenter'
    Downloading conanmanifest.txt completed [3.73k]
    Downloading conaninfo.txt completed [0.27k]
    Downloading conan_package.tgz completed [148.87k]
    Decompressing conan_package.tgz completed [0.00k]
    nlohmann_json/3.11.2: Package installed 5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9
    nlohmann_json/3.11.2: Downloaded package revision 0
    polymorphic_value/1.3.0: Retrieving package 5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 from remote 'conancenter'
    Downloading conanmanifest.txt completed [0.24k]
    Downloading conaninfo.txt completed [0.27k]
    Downloading conan_package.tgz completed [2.76k]
    Decompressing conan_package.tgz completed [0.00k]
    polymorphic_value/1.3.0: Package installed 5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9
    polymorphic_value/1.3.0: Downloaded package revision 0
    Downloading conan_sources.tgz completed [0.59k]
    Decompressing conan_sources.tgz completed [0.00k]
    bzip2/1.0.8: Configuring sources in C:\Users\sogartary\.conan\data\bzip2\1.0.8\_\_\source\src
    Downloading bzip2-1.0.8.tar.gz completed [791.04k]                                       bzip2/1.0.8: 0.8:
    bzip2/1.0.8: Copying sources to build folder
    bzip2/1.0.8: Building your package in C:\Users\sogartary\.conan\data\bzip2\1.0.8\_\_\build\664a290ff8a4232d40ea8d66ae4e20ff2cb6ef7b
    bzip2/1.0.8: Generator txt created conanbuildinfo.txt
    bzip2/1.0.8: Calling generate()
    bzip2/1.0.8: WARN: Using the new toolchains and generators without specifying a build profile (e.g: -pr:b=default) is discouraged and might cause failures and unexpected behavior
    bzip2/1.0.8: Preset 'debug' added to CMakePresets.json. Invoke it manually using 'cmake --preset debug'
    bzip2/1.0.8: If your CMake version is not compatible with CMakePresets (<3.19) call cmake like: 'cmake <path> -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=C:\Users\sogartary\.conan\data\bzip2\1.0.8\_\_\build\664a290ff8a4232d40ea8d66ae4e20ff2cb6ef7b\build\generators\conan_toolchain.cmake -DCMAKE_SH=CMAKE_SH-NOTFOUND -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=Debug'
    bzip2/1.0.8: Aggregating env generators
    bzip2/1.0.8: Calling build()
    bzip2/1.0.8: apply_conandata_patches(): No patches defined in conandata
    bzip2/1.0.8: CMake command: cmake -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE="C:/Users/sogartary/.conan/data/bzip2/1.0.8/_/_/build/664a290ff8a4232d40ea8d66ae4e20ff2cb6ef7b/build/generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="C:/Users/sogartary/.conan/data/bzip2/1.0.8/_/_/package/664a290ff8a4232d40ea8d66ae4e20ff2cb6ef7b" -DCMAKE_SH="CMAKE_SH-NOTFOUND" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" -DCMAKE_BUILD_TYPE="Debug" "C:\Users\sogartary\.conan\data\bzip2\1.0.8\_\_\build\664a290ff8a4232d40ea8d66ae4e20ff2cb6ef7b\src\.."
    CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
    CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
    CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
    -- Configuring incomplete, errors occurred!
    bzip2/1.0.8: ERROR: Package '664a290ff8a4232d40ea8d66ae4e20ff2cb6ef7b' build failed
    bzip2/1.0.8: WARN: Build folder C:\Users\sogartary\.conan\data\bzip2\1.0.8\_\_\build\664a290ff8a4232d40ea8d66ae4e20ff2cb6ef7b\build\Debug
    ERROR: bzip2/1.0.8: Error in build() method, line 72
            cmake.configure(build_script_folder=os.path.join(self.source_folder, os.pardir))
            ConanException: Error 1 while executing cmake -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE="C:/Users/sogartary/.conan/data/bzip2/1.0.8/_/_/build/664a290ff8a4232d40ea8d66ae4e20ff2cb6ef7b/build/generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="C:/Users/sogartary/.conan/data/bzip2/1.0.8/_/_/package/664a290ff8a4232d40ea8d66ae4e20ff2cb6ef7b" -DCMAKE_SH="CMAKE_SH-NOTFOUND" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" -DCMAKE_BUILD_TYPE="Debug" "C:\Users\sogartary\.conan\data\bzip2\1.0.8\_\_\build\664a290ff8a4232d40ea8d66ae4e20ff2cb6ef7b\src\.."
    stage: triaging 
    opened by sogartar 2
  • 2.0.0-beta7(Dec 22, 2022)

    • Feature: Raise an error when a generator is both defined in generators attribute and instantiated in generate() method (
    • Feature: test_requires improvements, including allowing it in conanfile.txt (
    • Feature: Improve errors for when required_conan_version has spaces between the operator and the version (
    • Feature: Improvements in ConanAPI organization (
    Source code(tar.gz)
    Source code(zip)
  • 1.56.0(Dec 21, 2022)

    • Fix: Avoid extra line end while printing files with conan get. (
    • Fix: Fix new Environment .ps1 files when spaces in path (
    • Bugfix: Fix CMakeDeps when a tool_requires needs to be built from source and it has transitive dependencies that are regular requires. (
    • Bugfix: Fix issue in fix_apple_shared_install_name when libdirs or bindirs have subfolders. (
    • Bugfix: Fix issue with PkgConfigDeps not creating .pc files in build context. (
    • Bugfix: Fix issue with CMakeDeps not creating xxx-config.cmake files in build context. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.48 MB)
    conan-win-32.exe(14.66 MB)
    conan-win-64.exe(15.87 MB)
  • 2.0.0-beta6(Dec 2, 2022)

    • Feature: Use --confirm to not request confirmation when removing instead of --force (
    • Feature: Simplify loading conaninfo.txt for search results (
    • Feature: Renamed ConanAPIV2 to ConanAPI (
    • Feature: Refactor ConanAPI (
    • Feature: Improve conan cache path command (
    • Feature: Improve #latest and pattern selection from remove/upload/download (
    • Feature: Add build_modules to provided deprecated warning to allow migration from 1.x (
    • Feature: Lockfiles alias support (
    Source code(tar.gz)
    Source code(zip)
  • 1.55.0(Nov 30, 2022)

    • Feature: Add prefix argument to AutotoolsToolchain. ( Docs: :page_with_curl:
    • Feature: Provide the ability to set CMakeDeps properties from consumer side. ( Docs: :page_with_curl:
    • Feature: New NMakeDeps generator. ( Docs: :page_with_curl:
    • Feature: Implement editable env-vars via and and conf via ( Docs: :page_with_curl:
    • Feature: Add gcc 12.1 and 12.2 to settings.yml. ( Docs: :page_with_curl:
    • Feature: Add configuration to set compilers variables in CMakeToolchain, MesonToolchain, and AutoToolsToolchain, e.g., CMAKE_<LANG>_COMPILER in CMakeToolchain. ( Docs: :page_with_curl:
    • Feature: Allow placeholders in EnvVars. ( Docs: :page_with_curl:
    • Feature: New NMakeToolchain. ( Docs: :page_with_curl:
    • Feature: Added generators folder to PKG_CONFIG_PATH environment variable in CMakeToolchain. ( Docs: :page_with_curl:
    • Feature: Ensure that CMakeToolchain will enforce usage of pkg-config executable set in tools.gnu:pkg_config config. ( Docs: :page_with_curl:
    • Feature: Add cli_args argument to CMake build helper configure method. ( Docs: :page_with_curl:
    • Feature: Add target argument to Autotools.install(). ( Docs: :page_with_curl:
    • Feature: Make available XCRun().settings read attribute. ( Docs: :page_with_curl:
    • Feature: Automatically add the msys2 usr/bin folder where bash.exe is to the PATH. (
    • Feature: Add tools.meson.mesontoolchain:extra_machine_files=["FILENAMES"] to Meson build helper to append machine files to the the ones created by Conan. ( Docs: :page_with_curl:
    • Feature: Add .user_presets_path attribute to CMakeToolchain to customize the location of CMakeUserPresets.json or to skip generating it. ( Docs: :page_with_curl:
    • Fix: Raise a clear error if settings.compiler is not defined for MesonToolchain. (
    • Fix: Fix runenv for cmake.test(). (
    • Fix: Remove hardcoded definitions of CMAKE_CXX_COMPILER in CMakeToolchain. ( Docs: :page_with_curl:
    • Fix: Remove the extra -s from default build_type compiler flags, added to modern AutotoolsToolchain. (
    • Fix: Give priority to -j argument set by user in recipe over the default set by conan in Autotools build helper. (
    • Bugfix: Make conan lock update raise a suitable exception. (
    • Bugfix: Do not include build-context dependencies in Bazel BUILD file. (
    • Bugfix: Do not fallback to a compatible binary if a package is requested to be built from source for a given configuration. (
    • Bugfix: Fixing when package_folder=None for MSBuildDeps in editable mode. (
    • Bugfix: The CMakeDeps generator was not working properly when the consumer maps configurations of the dependencies using CMAKE_MAP_IMPORTED_CONFIG_XXX. ( Docs: :page_with_curl:
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.59 MB)
    conan-win-32.exe(14.67 MB)
    conan-win-64.exe(15.87 MB)
  • 2.0.0-beta5(Nov 11, 2022)

    • Feature: Improvements in the remotes management and API (
    • Feature: Implement env_info and user_info as fake attributes in Conan 2.0 (
    • Feature: Improve settings.rm_safe() (
    • Feature: New RecipeReference equality (
    • Feature: Simplifying compress and uncompress of .tgz files (
    • Feature: conan source command does not require a default profile (
    • Feature: Created a proper LockfileAPI, with detailed methods (update, save, etc), instead of several loose methods (
    • Feature: The conan export can also produce lockfiles, necessary for users doing a 2 step (export + install--build) process (
    • Feature: Drop compat_app (
    • Fix: Fix transitive propagation of transitive_headers=True (
    • Fix: Fix transitive propagation of transitive_libs=False for static libraries (
    • Fix: Fix test_package for python_requires (
    Source code(tar.gz)
    Source code(zip)
  • 1.54.0(Nov 7, 2022)

    • Feature: Make conanfile.build_folder available in generate() for test_package. (
    • Feature: Add libcxx settings to meson cpp_link_args. (
    • Feature: Do not add architecture to system packages by default, only when cross-compiling. (
    • Feature: Added distro to global.conf Jinja rendering. ( Docs: :page_with_curl:
    • Feature: New included_files() method in from import Git. ( Docs: :page_with_curl:
    • Feature: Add stdcpp_library to to get name of C++ standard library to be linked. ( Docs: :page_with_curl:
    • Feature: New upload_policy='skip' that not upload binaries (without raising an Exception, simply skip the binaries). ( Docs: :page_with_curl:
    • Feature: The tool fix_apple_shared_install_name now also patches the <package_id>/bin executables found to point to the libraries at ../lib/xxx.dylib. ( Docs: :page_with_curl:
    • Feature: New conanfile.win_bash_run and config for better Windows bash management. ( Docs: :page_with_curl:
    • Fix: Improve description for verify_ssl parameter in CLI. ( Docs: :page_with_curl:
    • Fix: Overwrite deactivate script to unset only the last activated virtual environment. (
    • Fix: Use settings_target in XCRun instead of settings as default and provide argument use_settings_target to select using the active context settings. ( Docs: :page_with_curl:
    • Bugfix: Fix issue where find_program does not work for a tool requirement in the build context, when the dependency is also a regular requirement in the host context. (
    • Bugfix: Fix default_cppstd() import error (
    • Bugfix: When recipes have shared and fPIC as options, define BUILD_SHARED_LIBS and CMAKE_POSITION_INDEPENDENT_CODE as CACHE variables in the generated cmake_toolchain.cmake instead of regular variables, so that they are not masked by further calls to options(). (
    • Bugfix: Avoid Conan crash when tools.env.environment:auto_use=True is enabled and no generate() method. (
    • Bugfix: Fix MSBuildDeps xml component names. (
    • Bugfix: Fix new VirtualBuildEnv and VirtualRunEnv generators problems with dots in architecture or config. (
    • Bugfix: Fix Autotools install on Windows. The default argument passed is DESTDIR=unix_path(self, self.package_folder). ( Docs: :page_with_curl:
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.57 MB)
    conan-win-32.exe(14.65 MB)
    conan-win-64.exe(15.22 MB)
  • 2.0.0-beta4(Oct 11, 2022)

    • Feature: Do not allow doing conan create/export with uncommitted changes using revision_mode=scm (
    • Feature: Simplify conan inspect command, removing path subcommand (
    • Feature: Add --deploy argument to graph info command (
    • Feature: Pass graph object to deployers instead of ConanFile (
    • Feature: Add included_files method to (
    • Feature: Improve detection of clang libcxx (
    • Feature: Remove old profile variables system in favor of Jinja2 syntax in profiles (
    • Fix: Update command to follow Conan 2.0 conventions about CLI output (
    • Fix: Fix aggregation of test trait in diamonds (
    Source code(tar.gz)
    Source code(zip)
  • 1.53.0(Oct 4, 2022)

    • Feature: Implement a new [runenv] section in the Profile, to define the runtime environment. ( Docs: :page_with_curl:
    • Feature: Add compiler.version 11.3 for GCC in settings. (
    • Feature: Make public. ( Docs: :page_with_curl:
    • Feature: Add message to help users that have old CMake versions invoking CMake manually with the same information stored in the CMakePresets. (
    • Feature: Make public. ( Docs: :page_with_curl:
    • Feature: Add to define extra properties. ( Docs: :page_with_curl:
    • Feature: Update requirements.txt to use distro package version <=1.7.0. (
    • Feature: Added method rm_safe to settings and options. ( Docs: :page_with_curl:
    • Feature: Add missing configurations for conan config list and show the results ordered by key. ( Docs: :page_with_curl:
    • Feature: Define source_folder in test_package when layout() is defined. (
    • Feature: Support for Xcode 14 and new iOS, watchOS, tvOS and macOS versions. (
    • Feature: Add cpp_info.libdir|bindir|includedir interface to access cpp_info.libdirs[0] in recipes ( Docs: :page_with_curl:
    • Feature: Improve Clang support in Windows. (
    • Fix: Fix missing binary conan search dep/1.0 --table message when a binary is missing. (
    • Fix: Remove too noisy messages from environment files (
    • Fix: Add support for windows on ARM64 native platform. (
    • Fix: Avoid changing MSBuildDeps filenames with - while trying to avoid wrong XML formats. (
    • Fix: Fix XcodeDeps using full package reference in case of package with components. (
    • Fix: Fixed a bug when getting the values from the self.conf in the conanfile of a test_package with build_requirements declaring the self.conf_info. (
    • Fix: CMakeToolchain.cache_variables parse option value as expected. (
    • Fix: Fix XcodeDeps handle hyphen in component requirements. (
    • Fix: Add the test_requires to CMakeToolchain directories/folders to find cmake files inside them. (
    • Fix: Set gnu17 as clang 16 cppstd default. (
    • Bugfix: Implement correct libcxx support in MesonToolchain. (
    • Bugfix: Add "endeavouros" to the list of distros with pacman. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.60 MB)
    conan-win-32.exe(14.70 MB)
    conan-win-64.exe(15.27 MB)
  • 2.0.0-beta3(Sep 12, 2022)

    • Feature: Decouple test_package from create (
    • Feature: Warn if special chars in exported refs (
    • Feature: Improvements in MSBuildDeps traits (
    • Feature: Added support for CLICOLOR_FORCE env var, that will activate the colors in the output if the value is declared and different to 0 (
    • Fix: Call source() just once for all configurations (
    • Fix: Fix deployers not creating output_folder (
    • Fix: Fix build_id() removal of require (
    • Fix: If Conan fails to load a custom command now it fails with a useful error message (
    • Bugfix: If the 'os' is not specified in the build profile and a recipe, in Windows, wanted to run a command (
    Source code(tar.gz)
    Source code(zip)
  • 1.52.0(Aug 31, 2022)

    • Feature: Added mechanism to create .pc files for build requirements. ( Docs: :page_with_curl:
    • Feature: Add MSBuild().build(.., targets=["target1"]) argument to new MSBuild. ( Docs: :page_with_curl:
    • Feature: Refactored PkgConfigDeps code. (
    • Feature: Removed warning messages from PkgConfigDeps if any duplicated *.pc file. (
    • Feature: Add is_msvc(..., build_context=False) argument. ( Docs: :page_with_curl:
    • Feature: Support remotes.json in Conan 1.X. ( Docs: :page_with_curl:
    • Feature: Add BUILD_TESTING=OFF to CMakeToolchain presets if ( Docs: :page_with_curl:
    • Feature: Allow traits in self.requires() for 2.0 compatibility. ( Docs: :page_with_curl:
    • Feature: Make the version of the Conan client available under conan and make it a Version object so it can be compared. ( Docs: :page_with_curl:
    • Feature: Add ability to pass additional arguments to ( Docs: :page_with_curl:
    • Feature: Promote to_apple_arch in the new module. ( Docs: :page_with_curl:
    • Feature: Add export_conandata_patches tool. ( Docs: :page_with_curl:
    • Feature: Fail sooner and with a meaningful error if the specified required version is not satisfied. (
    • Feature: Implement cmake_layout(..., build_folder="build) build folder argument. ( Docs: :page_with_curl:
    • Feature: Add new members to ConanFileInterface for self.dependencies access. ( Docs: :page_with_curl:
    • Feature: Defines the PACKAGE_ROOT_<package> variable in XcodeDeps generated files. ( Docs: :page_with_curl:
    • Feature: Added clang 16 to settings. (
    • Feature: Allow the authorization process in conan_server to be customized, just like authentication. ( Docs: :page_with_curl:
    • Fix: Change default checksums to None, instead of empty string. (
    • Fix: When the layout() is declared in the recipe, the files such as conainfo.txt, conanbuildinfo.txt were written in the test_package folder, now there are written in the generators_folder. (
    • Bugfix: Fix conversion if options passed in compatibility() method. ( Docs: :page_with_curl:
    • Bugfix: Prevent mutation of loaded data from conanfile.yml if accesses multiple times during the same run when calling apply_conandata_patches(). (
    • Bugfix: Do not skip pycache folder if CONAN_KEEP_PYTHON_FILES. (
    • Bugfix: Added + and - symbols to be replaced by _ in XML element names. (
    • Bugfix: The tool.scm.Version model has been ported from 2.X to keep the same behavior in Conan 1.X. (
    • Bugfix: Fixed cpp_std flags when using C++20. (
    • Bugfix: Use "android-" format for the ANDROID_PLATFORM argument to be compatible with old NDK versions. (
    • Bugfix: Fix XcodeDeps component handling in transitive dependencies (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.59 MB)
    conan-win-32.exe(14.69 MB)
    conan-win-64.exe(15.26 MB)
  • 1.51.3(Aug 18, 2022)

    • Fix: The tool is_apple_os can be imported from and receives an instance of Conanfile. ( Docs: :page_with_curl:
    • Fix: Prevent None folders to be processed in the cpp_info. (
    • Fix: CMakeDeps now generates CMake variables as XXX_INCLUDE_DIR in the XXXX-data.cmake for the global cpp_info even if components are declared in the recipe. It is obtained by merging the components cpp_info into a global one. (
    • Bugfix: Fixed the cmake_pathsgenerator to set the root of the packages to the CMAKE_MODULE_PATH and CMAKE_PREFIX_PATH (
    • Bugfix: The CMakeDeps generator was not managing correctly the IMPORTED LOCATION of the libraries for different build_type. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.57 MB)
    conan-win-32.exe(14.68 MB)
    conan-win-64.exe(15.25 MB)
  • 1.50.2(Aug 11, 2022)

  • 1.51.2(Aug 11, 2022)

  • 1.51.1(Aug 9, 2022)

    • Feature: The and now allow the get_safe("foo") as it is available in self.settings and self.options. (
    • Fix: Add conan.errors to hidden pyinstaller imports. (
    • Fix: Fix choco install invokation. (
    • Fix: Add to hidden pyinstaller imports. (
    • Fix: Add as hidden-import to, so it is bundled with the installer. (
    • Bugfix: Update cmake_layout build and generators folders to honor os path format. (
    • Bugfix: create -kb wasn't setting up conanfile.generators_folder correctly. (
    • Bugfix: Legacy cpp_info for consumers was losing information in case of depending on a package with a layout. (
    • Bugfix: Refactored CMakeDep using always targets instead of lists. (
    • Bugfix: Fix toolchainFile key not found with CMake presets. (
    • Bugfix: The CMakeDeps generator failed for consumers with CMake projects doing an add_subdirectory with two different find_package calls to the same package, one in the main CMakeLists.txt and the other in the subdirectory. (
    • Bugfix: The CMakeDeps generator stopped to fill the XXX_LIBRARIES CMake variable, especially when using components. (
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.57 MB)
    conan-win-32.exe(14.67 MB)
    conan-win-64.exe(15.24 MB)
  • 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)
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 22 Dec 1, 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 3 Sep 3, 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 903 Jan 6, 2023
📦 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.6k Jan 9, 2023
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 497 Jan 3, 2023
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 17.5k Jan 4, 2023
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 420 Jan 3, 2023
✔️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.6k Jan 8, 2023
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 13 Dec 14, 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 22 Dec 1, 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 3 Sep 3, 2022
"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 1.1k Dec 31, 2022
gloom game, built with conan

gloom game, built with conan

null 2 Oct 14, 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.5k Jan 6, 2023
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 720 Dec 18, 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 903 Jan 6, 2023
📦 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.6k Jan 9, 2023
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 497 Jan 3, 2023