- Notifications
You must be signed in to change notification settings - Fork1.1k
Conan - The open-source C and C++ package manager
License
conan-io/conan
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Decentralized, open-source (MIT), C/C++ package manager.
- Homepage:https://conan.io/
- Github:https://github.com/conan-io/conan
- Docs:https://docs.conan.io
- Slack:https://cpplang.slack.com (#conan channel. Please, clickhere to get an invitation)
- Twitter:https://twitter.com/conan_io
- Blog:https://blog.conan.io
- Security reports:https://jfrog.com/trust/report-vulnerability
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 configuredand 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 extension points allow for great power and flexibility.
- Large and active community, especially in GitHub (https://github.com/conan-io/conan) and Slack (https://cppalliance.org/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.
This is thedeveloper/maintainer documentation. For user documentation, go tohttps://docs.conan.io
You can run Conan from source in Windows, MacOS, and Linux:
Install pip followingpip docs.
Clone Conan repository:
$ git clone https://github.com/conan-io/conan.git conan-io
Note: repository directory name matters, some directories are known to be problematic to run tests (e.g.
conan).conan-iodirectory 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
sudois not required. Some Linux distros won't allow you to put Python packages in editable mode in the root Python installation, and creating a virtual environmentvenvfirst, is mandatory.You are ready, try to run Conan:
$ conan --helpConsumer commands install Installs the requirements specifiedin a recipe (conanfile.py or conanfile.txt). ... Conan commands. Type"conan <command> -h"forhelp
Feedback and contribution are always welcome in this project.Please read ourcontributing guide.Also, if you plan to contribute, please add some testing for your changes. You can read theConantests guidelines section forsome advice on how to write tests for Conan.
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 on Windows and you are not using a Python virtual environment, you will need to run thesecommands usingsudo.
Before you can run the tests, you need to set a few environment variables first.
$export PYTHONPATH=$PYTHONPATH:$(pwd)
On Windows it would be (while being in the Conan root directory):
$set PYTHONPATH=.Conan test suite defines and configures some required tools (CMake, Ninja, etc) in theconftest.py and allows to define a customconftest_user.py.Some specific versions, like cmake>=3.15 are necessary.
You can run the tests like this:
$ python -m pytest.A few minutes later it should printOK:
............................................................................................----------------------------------------------------------------------Ran 146 testsin 50.993sOKTo run specific tests, you can specify the test name too, something like:
$ python -m pytest test/functional/command/export_test.py::TestRevisionModeSCM::test_revision_mode_scm -s
The-s argument can be useful to see some output that otherwise is captured bypytest.
Also, you can run tests against an instance of Artifactory. Those tests should add the attributeartifactory_ready.
$ python -m pytest. -m artifactory_readySome environment variables have to be defined to run them. For example, for anArtifactory instance that is running on the localhost with default user and password configured, thevariables could take the values:
$export CONAN_TEST_WITH_ARTIFACTORY=1$export ARTIFACTORY_DEFAULT_URL=http://localhost:8081/artifactory$export ARTIFACTORY_DEFAULT_USER=admin$export ARTIFACTORY_DEFAULT_PASSWORD=password
ARTIFACTORY_DEFAULT_URL is the base URL for the Artifactory repo, not one for a specificrepository. Running the tests with a real Artifactory instance will create repos on the fly so pleaseuse a separate server for testing purposes.
About
Conan - The open-source C and C++ package manager
Topics
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.