conan export-pkg¶
$ conan export-pkg -h
usage: conan export-pkg [-h] [-v [V]] [-cc CORE_CONF] [-f FORMAT]
[-of OUTPUT_FOLDER] [--build-require]
[-tf TEST_FOLDER] [-sb] [-r REMOTE | -nr]
[--name NAME] [--version VERSION] [--user USER]
[--channel CHANNEL] [-l LOCKFILE] [--lockfile-partial]
[--lockfile-out LOCKFILE_OUT] [--lockfile-clean]
[--lockfile-overrides LOCKFILE_OVERRIDES]
[-pr PROFILE] [-pr:b PROFILE_BUILD]
[-pr:h PROFILE_HOST] [-pr:a PROFILE_ALL] [-o OPTIONS]
[-o:b OPTIONS_BUILD] [-o:h OPTIONS_HOST]
[-o:a OPTIONS_ALL] [-s SETTINGS] [-s:b SETTINGS_BUILD]
[-s:h SETTINGS_HOST] [-s:a SETTINGS_ALL] [-c CONF]
[-c:b CONF_BUILD] [-c:h CONF_HOST] [-c:a CONF_ALL]
path
Create a package directly from pre-compiled binaries.
positional arguments:
path Path to a folder containing a recipe (conanfile.py)
options:
-h, --help show this help message and exit
-v [V] Level of detail of the output. Valid options from less
verbose to more verbose: -vquiet, -verror, -vwarning,
-vnotice, -vstatus, -v or -vverbose, -vv or -vdebug,
-vvv or -vtrace
-cc CORE_CONF, --core-conf CORE_CONF
Define core configuration, overwriting global.conf
values. E.g.: -cc core:non_interactive=True
-f FORMAT, --format FORMAT
Select the output format: json
-of OUTPUT_FOLDER, --output-folder OUTPUT_FOLDER
The root output folder for generated and build files
--build-require Whether the provided reference is a build-require
-tf TEST_FOLDER, --test-folder TEST_FOLDER
Alternative test folder name. By default it is
"test_package". Use "" to skip the test stage
-sb, --skip-binaries Skip installing dependencies binaries
-r REMOTE, --remote REMOTE
Look in the specified remote or remotes server
-nr, --no-remote Do not use remote, resolve exclusively in the cache
--name NAME Provide a package name if not specified in conanfile
--version VERSION Provide a package version if not specified in
conanfile
--user USER Provide a user if not specified in conanfile
--channel CHANNEL Provide a channel if not specified in conanfile
-l LOCKFILE, --lockfile LOCKFILE
Path to a lockfile. Use --lockfile="" to avoid
automatic use of existing 'conan.lock' file
--lockfile-partial Do not raise an error if some dependency is not found
in lockfile
--lockfile-out LOCKFILE_OUT
Filename of the updated lockfile
--lockfile-clean Remove unused entries from the lockfile
--lockfile-overrides LOCKFILE_OVERRIDES
Overwrite lockfile overrides
-pr PROFILE, --profile PROFILE
Apply the specified profile. By default, or if
specifying -pr:h (--profile:host), it applies to the
host context. Use -pr:b (--profile:build) to specify
the build context, or -pr:a (--profile:all) to specify
both contexts at once
-pr:b PROFILE_BUILD, --profile:build PROFILE_BUILD
-pr:h PROFILE_HOST, --profile:host PROFILE_HOST
-pr:a PROFILE_ALL, --profile:all PROFILE_ALL
-o OPTIONS, --options OPTIONS
Apply the specified options. By default, or if
specifying -o:h (--options:host), it applies to the
host context. Use -o:b (--options:build) to specify
the build context, or -o:a (--options:all) to specify
both contexts at once. Example:
-o="pkg/*:with_qt=True"
-o:b OPTIONS_BUILD, --options:build OPTIONS_BUILD
-o:h OPTIONS_HOST, --options:host OPTIONS_HOST
-o:a OPTIONS_ALL, --options:all OPTIONS_ALL
-s SETTINGS, --settings SETTINGS
Apply the specified settings. By default, or if
specifying -s:h (--settings:host), it applies to the
host context. Use -s:b (--settings:build) to specify
the build context, or -s:a (--settings:all) to specify
both contexts at once. Example: -s="compiler=gcc"
-s:b SETTINGS_BUILD, --settings:build SETTINGS_BUILD
-s:h SETTINGS_HOST, --settings:host SETTINGS_HOST
-s:a SETTINGS_ALL, --settings:all SETTINGS_ALL
-c CONF, --conf CONF Apply the specified conf. By default, or if specifying
-c:h (--conf:host), it applies to the host context.
Use -c:b (--conf:build) to specify the build context,
or -c:a (--conf:all) to specify both contexts at once.
Example:
-c="tools.cmake.cmaketoolchain:generator=Xcode"
-c:b CONF_BUILD, --conf:build CONF_BUILD
-c:h CONF_HOST, --conf:host CONF_HOST
-c:a CONF_ALL, --conf:all CONF_ALL
conan export-pkg
命令直接从用户文件夹中的预编译二进制文件创建包二进制文件。此命令在不同情况下很有用
当为供应商提供的某些闭源或预编译二进制文件创建包时。在这种情况下,
conanfile.py
配方不需要包含build()
方法,提供package()
和package_info()
方法足以打包这些预编译二进制文件。在这种情况下,build_policy = "never"
可能有意义,以表明无法执行conan install --build=this_pkg
,因为它不知道如何在它是依赖项时从源代码构建。在 本地开发流程中本地测试某些配方时,它可用于快速将本地构建的二进制文件放入缓存中,以便其他包在测试时可以使用,而无需经过完整的
conan create
操作,这将更慢。
通常,预计当 conan export-pkg
执行时,构建此包所需的可能的 Conan 依赖项已通过 conan install
安装,因此无需在 export-pkg
时下载依赖项。但是,如果由于某种原因情况并非如此,则该命令定义了 --remote
和 --no-remote
参数,类似于其他命令,以及 --skip-binaries
优化,如果当前 export-pkg
并非严格需要依赖项二进制文件,则可以节省一些安装时间。但这由用户负责,因为这些二进制文件实际上可能是必需的,例如,如果使用了 tool_requires = "cmake/x.y"
并且 package()
方法实现了 cmake.install()
调用,则绝对需要在当前机器中安装依赖项的二进制文件才能执行。