Conan Documentation Release 1.3.3
Total Page:16
File Type:pdf, Size:1020Kb
conan Documentation Release 1.3.3 conan Sep 24, 2021 CONTENTS 1 Upgrading to conan 1.0 3 1.1 Command line changes..........................................3 1.2 Deprecations/removals..........................................3 1.3 Settings and profiles. Gcc/CLang versioning..............................4 1.4 New features...............................................4 2 Introduction 5 2.1 Open Source...............................................5 2.2 Decentralized package manager.....................................5 2.3 Binary management...........................................6 2.4 Cross platform, build system agnostic..................................6 2.5 Stable...................................................7 3 Install 9 3.1 Install with pip (recommended).....................................9 3.2 Install from brew (OSX)......................................... 10 3.3 Install from AUR (Arch Linux)..................................... 10 3.4 Install the binaries............................................ 10 3.5 Initial configuration........................................... 10 3.6 Install from source............................................ 11 4 Getting started 13 4.1 A Timer using POCO libraries...................................... 13 4.2 Installing dependencies......................................... 14 4.3 Building the timer example....................................... 16 4.4 Inspecting dependencies......................................... 16 4.5 Searching packages........................................... 17 4.6 Building with other configurations.................................... 17 5 Using packages 19 5.1 Installing dependencies......................................... 19 5.2 Using profiles............................................... 23 5.3 Workflows................................................ 25 6 Creating packages 29 6.1 Getting started.............................................. 29 6.2 Recipe and sources in the same repo................................... 33 6.3 Package development flow........................................ 34 6.4 Packaging existing binaries....................................... 39 6.5 Understanding packaging........................................ 41 6.6 Define package ABI compatibility.................................... 43 i 6.7 Inspecting packages........................................... 48 6.8 Packaging approaches.......................................... 49 6.9 Tools for package creators........................................ 54 7 Uploading packages 57 7.1 Remotes................................................. 57 7.2 Uploading packages to remotes..................................... 58 7.3 Using Bintray............................................... 59 7.4 Artifactory Community Edition for C/C++............................... 63 7.5 Running conan_server.......................................... 65 8 Package apps and devtools 71 8.1 Running and deploying packages.................................... 71 8.2 Creating conan packages to install dev tools............................... 74 8.3 Build requirements............................................ 78 9 Mastering conan 83 9.1 Use conanfile.py for consumers..................................... 83 9.2 Conditional settings, options and requirements............................. 85 9.3 Version ranges.............................................. 86 9.4 Build policies............................................... 86 9.5 Environment variables.......................................... 87 9.6 Virtual Environments........................................... 88 9.7 Logging.................................................. 90 9.8 Sharing the settings and other configuration............................... 92 9.9 Conan local cache: concurrency, Continuous Integration, isolation................... 93 10 Systems and cross building 95 10.1 Cross building.............................................. 95 10.2 Windows Subsystems.......................................... 102 11 Integrations 105 11.1 CMake.................................................. 105 11.2 Autotools: configure/make........................................ 110 11.3 Visual Studio............................................... 110 11.4 Xcode................................................... 112 11.5 Compilers on command line....................................... 114 11.6 Android Studio.............................................. 116 11.7 CLion................................................... 121 11.8 Ninja, NMake, Borland......................................... 126 11.9 pkg-config and pc files.......................................... 126 11.10 Boost Build................................................ 130 11.11 QMake.................................................. 130 11.12 Premake................................................. 131 11.13 qbs.................................................... 131 11.14 Meson Build............................................... 132 11.15 Docker.................................................. 133 11.16 Git.................................................... 133 11.17 Jenkins.................................................. 133 11.18 Travis Ci................................................. 136 11.19 Appveyor................................................. 138 11.20 Gitlab................................................... 140 11.21 Circle CI................................................. 141 11.22 YouCompleteMe (vim).......................................... 143 11.23 SCons................................................... 143 ii 11.24 Custom integrations........................................... 144 12 Howtos 149 12.1 How to package header-only libraries.................................. 149 12.2 How to launch conan install from cmake................................ 151 12.3 How to create and reuse packages based on Visual Studio....................... 152 12.4 Creating and reusing packages based on Makefiles........................... 155 12.5 How to manage the GCC >= 5 ABI................................... 157 12.6 Using Visual Studio 2017 - CMake integration............................. 158 12.7 How to manage C++ standard...................................... 161 12.8 How to use docker to create and cross build C and C++ conan packages................ 162 12.9 How to reuse Python code in recipes................................... 165 12.10 How to create and share a custom generator with generator packages................. 168 12.11 How to manage shared libraries..................................... 171 12.12 How to reuse cmake install for package() method............................ 177 12.13 How to collaborate on other users’ packages.............................. 177 12.14 How to link with Apple Frameworks.................................. 178 12.15 How to collect licenses of dependencies................................. 179 12.16 How to capture package version from text or build files......................... 179 12.17 How to use Conan as other language package manager......................... 180 12.18 How to manage SSL (TLS) certificates................................. 185 13 Reference 187 13.1 Commands................................................ 187 13.2 conanfile.txt............................................... 223 13.3 conanfile.py............................................... 225 13.4 Generators................................................ 250 13.5 Profiles.................................................. 265 13.6 Build helpers............................................... 269 13.7 Tools................................................... 284 13.8 Configuration files............................................ 301 13.9 Environment variables.......................................... 306 14 Videos and links 313 15 FAQ 315 15.1 General.................................................. 315 15.2 Using conan............................................... 316 15.3 Troubleshooting............................................. 317 16 Changelog 321 16.1 1.3.3 (10-May-2018)........................................... 321 16.2 1.3.2 (7-May-2018)........................................... 321 16.3 1.3.1 (3-May-2018)........................................... 321 16.4 1.3.0 (30-April-2018).......................................... 322 16.5 1.2.3 (10-Apr-2017)........................................... 322 16.6 1.2.1 (3-Apr-2018)............................................ 323 16.7 1.2.0 (28-Mar-2018)........................................... 323 16.8 1.1.1 (5-Mar-2018)............................................ 324 16.9 1.1.0 (27-Feb-2018)........................................... 324 16.10 1.0.4 (30-January-2018)......................................... 326 16.11 1.0.3 (22-January-2018)......................................... 326 16.12 1.0.2 (16-January-2018)......................................... 326 16.13 1.0.1 (12-January-2018)......................................... 327 16.14 1.0.0 (10-January-2018)......................................... 327 iii 16.15 1.0.0-beta5 (8-January-2018)...................................... 327 16.16 1.0.0-beta4 (4-January-2018)...................................... 327 16.17 1.0.0-beta3 (28-December-2017).................................... 327 16.18 1.0.0-beta2 (23-December-2017).................................... 328 16.19 0.30.3 (15-December-2017)....................................... 328 16.20 0.30.2 (14-December-2017)....................................... 328 16.21