conan create
$ conan create [-h] [-j JSON] [-k] [-kb] [-ne] [-tbf TEST_BUILD_FOLDER]
[-tf TEST_FOLDER] [-m [MANIFESTS]]
[-mi [MANIFESTS_INTERACTIVE]] [-v [VERIFY]] [-b [BUILD]]
[-e ENV] [-o OPTIONS] [-pr PROFILE] [-r REMOTE]
[-s SETTINGS] [-u]
path reference
Builds a binary package for a recipe (conanfile.py). Uses the specified configuration in a profile or in -s settings, -o options etc. If a ‘test_package’ folder (the name can be configured with -tf) is found, the command will run the consumer project to ensure that the package has been created correctly. Check ‘conan test’ command to know more about ‘test_folder’ project.
positional arguments:
path Path to a folder containing a conanfile.py or to a
recipe file e.g., my_folder/conanfile.py
reference user/channel or pkg/version@user/channel (if name and
version not declared in conanfile.py) where the
package will be created
optional arguments:
-h, --help show this help message and exit
-j JSON, --json JSON json file path where the install information will be
written to
-k, -ks, --keep-source
Do not remove the source folder in local cache, even
if the recipe changed. Use this for testing purposes
only
-kb, --keep-build Do not remove the build folder in local cache. Implies
--keep-source. Use this for testing purposes only
-ne, --not-export Do not export the conanfile.py
-tbf TEST_BUILD_FOLDER, --test-build-folder TEST_BUILD_FOLDER
Working directory for the build of the test project.
-tf TEST_FOLDER, --test-folder TEST_FOLDER
Alternative test folder name. By default it is
"test_package". Use "None" to skip the test stage
-m [MANIFESTS], --manifests [MANIFESTS]
Install dependencies manifests in folder for later
verify. Default folder is .conan_manifests, but can be
changed
-mi [MANIFESTS_INTERACTIVE], --manifests-interactive [MANIFESTS_INTERACTIVE]
Install dependencies manifests in folder for later
verify, asking user for confirmation. Default folder
is .conan_manifests, but can be changed
-v [VERIFY], --verify [VERIFY]
Verify dependencies manifests against stored ones
-b [BUILD], --build [BUILD]
Optional, use it to choose if you want to build from
sources: --build Build all from sources, do not use
binary packages. --build=never Never build, use binary
packages or fail if a binary package is not found.
--build=missing Build from code if a binary package is
not found. --build=outdated Build from code if the
binary is not built with the current recipe or when
missing binary package. --build=[pattern] Build always
these packages from source, but never build the
others. Allows multiple --build parameters. 'pattern'
is a fnmatch file pattern of a package name. Default
behavior: If you don't specify anything, it will be
similar to '--build=never', but package recipes can
override it with their 'build_policy' attribute in the
conanfile.py.
-e ENV, --env ENV Environment variables that will be set during the
package build, -e CXX=/usr/bin/clang++
-o OPTIONS, --options OPTIONS
Define options values, e.g., -o Pkg:with_qt=true
-pr PROFILE, --profile PROFILE
Apply the specified profile to the install command
-r REMOTE, --remote REMOTE
Look in the specified remote server
-s SETTINGS, --settings SETTINGS
Settings to build the package, overwriting the
defaults. e.g., -s compiler=gcc
-u, --update Check updates exist from upstream remotes
This is the recommended way to create packages.
conan create . demo/testing is equivalent to:
$ conan export . demo/testing
$ conan install Hello/0.1@demo/testing --build=Hello
# package is created now, use test to test it
$ cd test_package
$ conan test . Hello/0.1@demo/testing
Tip
Sometimes you need to skip/disable test stage to avoid a failure while creating the package, i.e: when you are cross compiling libraries and target code cannot be executed in current host platform. In that case you can skip/disable the test package stage:
$ conan create . demo/testing --test-folder=None
conan create executes methods of a conanfile.py in the following order:
config_options()
configure()
requirements()
package_id()
build_requirements()
build_id()
system_requirements()
source()
imports()
build()
package()
package_info()
In case of installing a pre-built binary, steps from 5 to 11 will be skipped. Note that deploy()
method is only used in
conan install.