conan config¶
管理 Conan 主目录中的 Conan 配置。
conan config home¶
$ conan config home -h
usage: conan config home [-h] [-v [V]] [-cc CORE_CONF]
Show the Conan home folder.
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
conan config home
命令返回 Conan 主文件夹的路径。
$ conan config home
/home/user/.conan2
conan config install¶
$ conan config install -h
usage: conan config install [-h] [-v [V]] [-cc CORE_CONF]
[--verify-ssl [VERIFY_SSL] | --insecure]
[-t {git,dir,file,url}] [-a ARGS]
[-sf SOURCE_FOLDER] [-tf TARGET_FOLDER]
item
Install the configuration (remotes, profiles, conf), from git, http or a
folder, into the Conan home folder.
positional arguments:
item git repository, local file or folder or zip file
(local or http) where the configuration is stored
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
--verify-ssl [VERIFY_SSL]
Verify SSL connection when downloading file
--insecure Allow insecure server connections when using SSL.
Equivalent to --verify-ssl=False
-t {git,dir,file,url}, --type {git,dir,file,url}
Type of remote config
-a ARGS, --args ARGS String with extra arguments for "git clone"
-sf SOURCE_FOLDER, --source-folder SOURCE_FOLDER
Install files only from a source subfolder from the
specified origin
-tf TARGET_FOLDER, --target-folder TARGET_FOLDER
Install to that path in the conan cache
conan config install
命令用于在当前主目录中安装通用的共享 Conan 配置,例如 remotes
、profiles
、settings
、hooks
、extensions
等的定义。
该命令可以使用以下任何内容作为源
指向包含配置文件的 zip 档案的 URL
包含文件的 Git 仓库
本地文件夹
只有一个文件
当前 Conan 主目录中的文件将被安装源中的文件替换。所有配置文件都可以通过这种方式共享和安装
remotes.json
用于定义远程位于
profiles
子文件夹内的任何自定义配置文件自定义
settings.yml
自定义
global.conf
所有扩展,包括插件、钩子。
自定义用户命令。
此命令读取一个 .conanignore
文件,如果存在,则过滤哪些文件和文件夹被复制到用户的 Conan 主文件夹。此文件使用 fnmatch 模式来匹配文件夹内容,排除与配置安装匹配的那些条目。参见 conan-io/command-extensions 的 .conanignore 以获取此类文件的示例。您可以使用 !
否定语法强制复制某些文件
# Ignore all files
*
# But copy the file named "settings.yml"
!settings.yml
示例:
从 URL 安装配置
$ conan config install http://url/to/some/config.zip
从 URL 安装配置,但只获取 zip 文件中 origin 文件夹内的文件,并将它们放在本地缓存中的 target 文件夹内
$ conan config install http://url/to/some/config.zip -sf=origin -tf=target
从 2 个不同 URL 的 2 个不同的 zip 文件安装配置,为每个文件使用不同的源和目标文件夹,然后更新所有文件
$ conan config install http://url/to/some/config.zip -sf=origin -tf=target $ conan config install http://url/to/some/config.zip -sf=origin2 -tf=target2 $ conan config install http://other/url/to/other.zip -sf=hooks -tf=hooks
从带有子模块的 Git 仓库安装配置
$ conan config install http://github.com/user/conan_config/.git --args="--recursive"
您还可以使用 --type git 强制执行 git 下载(如果 URL 未自动推断)。
$ conan config install http://github.com/user/conan_config/.git --type git
从 URL 安装并跳过 SSL 验证
$ conan config install http://url/to/some/config.zip --verify-ssl=False
这将禁用证书的 SSL 检查。
从本地路径安装特定文件
$ conan config install my_settings/settings.yml
从本地路径安装配置
$ conan config install /path/to/some/config.zip
conan config install-pkg¶
警告
此功能处于实验阶段,可能会发生重大更改。有关更多信息,请参阅 Conan 稳定性 部分。
$ conan config install-pkg -h
usage: conan config install-pkg [-h] [-v [V]] [-cc CORE_CONF] [-l LOCKFILE]
[--lockfile-partial]
[--lockfile-out LOCKFILE_OUT] [-f] [--url URL]
item
(Experimental) Install the configuration (remotes, profiles, conf), from a
Conan package
positional arguments:
item Conan require
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
-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
-f, --force Force the re-installation of configuration
--url URL (Experimental) Provide Conan repository URL (for first
install without remotes)
此命令允许从存储在 Conan 服务器上的 Conan 包中安装配置。
包含配置的包遵循一些特殊规则
它们必须定义
package_type = "configuration"
配置文件必须打包在最终的“二进制”包中,布局与其他
conan config install
案例相同。它们不能用作其他包的
requires
,因为这会导致鸡和蛋问题。它们不能包含对其他包的
requires
配置包与其他包一样,使用
conan create
和conan export-pkg
创建,并使用conan upload
上传到服务器
要从 Conan 配置包安装配置,可以
使用
--lockfile-out
生成一个锁定文件。此锁定文件可以在将来传递给conan config install-pkg --lockfile
(如果名为conan.lock
并且在当前目录中找到,它将自动加载),以保证相同的版本。可以使用版本范围
conan config install-pkg "myconf/[>=1.0 <2]"
是正确的,它将安装该范围内最新的版本。conan config install-pkg
始终在服务器上查找最新版本或修订版。如果从服务器下载并安装了相同的版本和修订版,除非使用
--force
,否则conan config install-pkg
将不执行任何操作,在这种情况下,配置将被覆盖。
还可以通过激活 core.package_id:config_mode
配置(这也处于实验阶段)到任何可用模式,例如 minor_mode
,使配置的版本影响所有包的 package_id
并成为二进制模型的一部分。
由于 conan config install-pkg
命令从 Conan 远程服务器下载包,因此它可以从已存在的远程下载,也可以直接指定存储库 URL 从 Conan 远程下载
$ conan config install-pkg myconf/version --url=<url/conan/remote/repo>
conan config list¶
$ conan config list -h
usage: conan config list [-h] [-f FORMAT] [-v [V]] [-cc CORE_CONF] [pattern]
Show all the Conan available configurations: core and tools.
positional arguments:
pattern Filter configuration items that matches this pattern
options:
-h, --help show this help message and exit
-f FORMAT, --format FORMAT
Select the output format: json
-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
显示所有 Conan 内置配置。分为 2 组
core.xxxx
:这些只能在global.conf
中定义,并由 Conan 在内部使用tools.xxxx
:这些可以在global.conf
和配置文件中定义,并将由配方和配方中使用的工具(如CMakeToolchain
)使用
$ conan config list
core.cache:storage_path: Absolute path where the packages and database are stored
core.download:download_cache: Define path to a file download cache
core.download:parallel: Number of concurrent threads to download packages
core.download:retry: Number of retries in case of failure when downloading from Conan server
core.download:retry_wait: Seconds to wait between download attempts from Conan server
core.gzip:compresslevel: The Gzip compression level for Conan artifacts (default=9)
core.net.http:cacert_path: Path containing a custom Cacert file
core.net.http:clean_system_proxy: If defined, the proxies system env-vars will be discarded
core.net.http:client_cert: Path or tuple of files containing a client cert (and key)
core.net.http:max_retries: Maximum number of connection retries (requests library)
core.net.http:no_proxy_match: List of urls to skip from proxies configuration
core.net.http:proxies: Dictionary containing the proxy configuration
core.net.http:timeout: Number of seconds without response to timeout (requests library)
core.package_id:config_mode: How the 'config_version' affects binaries. By default 'None'
core.package_id:default_build_mode: By default, 'None'
core.package_id:default_embed_mode: By default, 'full_mode'
core.package_id:default_non_embed_mode: By default, 'minor_mode'
core.package_id:default_python_mode: By default, 'minor_mode'
core.package_id:default_unknown_mode: By default, 'semver_mode'
core.scm:excluded: List of excluded patterns for builtin git dirty checks
core.scm:local_url: By default allows to store local folders as remote url, but not upload them. Use 'allow' for allowing upload and 'block' to completely forbid it
core.sources:download_cache: Folder to store the sources backup
core.sources:download_urls: List of URLs to download backup sources from
core.sources:exclude_urls: URLs which will not be backed up
core.sources:upload_url: Remote URL to upload backup sources to
core.upload:parallel: Number of concurrent threads to upload packages
core.upload:retry: Number of retries in case of failure when uploading to Conan server
core.upload:retry_wait: Seconds to wait between upload attempts to Conan server
core.version_ranges:resolve_prereleases: Whether version ranges can resolve to pre-releases or not
core:allow_uppercase_pkg_names: Temporarily (will be removed in 2.X) allow uppercase names
core:default_build_profile: Defines the default build profile ('default' by default)
core:default_profile: Defines the default host profile ('default' by default)
core:non_interactive: Disable interactive user input, raises error if input necessary
core:required_conan_version: Raise if current version does not match the defined range.
core:skip_warnings: Do not show warnings matching any of the patterns in this list. Current warning tags are 'network', 'deprecated', 'experimental'
core:warnings_as_errors: Treat warnings matching any of the patterns in this list as errors and then raise an exception. Current warning tags are 'network', 'deprecated'
tools.android:cmake_legacy_toolchain: Define to explicitly pass ANDROID_USE_LEGACY_TOOLCHAIN_FILE in CMake toolchain
tools.android:ndk_path: Argument for the CMAKE_ANDROID_NDK
tools.apple:enable_arc: (boolean) Enable/Disable ARC Apple Clang flags
tools.apple:enable_bitcode: (boolean) Enable/Disable Bitcode Apple Clang flags
tools.apple:enable_visibility: (boolean) Enable/Disable Visibility Apple Clang flags
tools.apple:sdk_path: Path to the SDK to be used
tools.build.cross_building:can_run: (boolean) Indicates whether is possible to run a non-native app on the same architecture. It's used by 'can_run' tool
tools.build.cross_building:cross_build: (boolean) Decides whether cross-building or not regardless of arch/OS settings. Used by 'cross_building' tool
tools.build:cflags: List of extra C flags used by different toolchains like CMakeToolchain, AutotoolsToolchain and MesonToolchain
tools.build:compiler_executables: Defines a Python dict-like with the compilers path to be used. Allowed keys {'c', 'cpp', 'cuda', 'objc', 'objcxx', 'rc', 'fortran', 'asm', 'hip', 'ispc'}
tools.build:cxxflags: List of extra CXX flags used by different toolchains like CMakeToolchain, AutotoolsToolchain and MesonToolchain
tools.build:defines: List of extra definition flags used by different toolchains like CMakeToolchain, AutotoolsToolchain and MesonToolchain
tools.build:download_source: Force download of sources for every package
tools.build:exelinkflags: List of extra flags used by different toolchains like CMakeToolchain, AutotoolsToolchain and MesonToolchain
tools.build:jobs: Default compile jobs number -jX Ninja, Make, /MP VS (default: max CPUs)
tools.build:linker_scripts: List of linker script files to pass to the linker used by different toolchains like CMakeToolchain, AutotoolsToolchain, and MesonToolchain
tools.build:sharedlinkflags: List of extra flags used by different toolchains like CMakeToolchain, AutotoolsToolchain and MesonToolchain
tools.build:skip_test: Do not execute CMake.test() and Meson.test() when enabled
tools.build:sysroot: Pass the --sysroot=<tools.build:sysroot> flag if available. (None by default)
tools.build:verbosity: Verbosity of build systems if set. Possible values are 'quiet' and 'verbose'
tools.cmake.cmake_layout:build_folder: (Experimental) Allow configuring the base folder of the build for local builds
tools.cmake.cmake_layout:build_folder_vars: Settings and Options that will produce a different build folder and different CMake presets names
tools.cmake.cmake_layout:test_folder: (Experimental) Allow configuring the base folder of the build for test_package
tools.cmake.cmakedeps:new: Use the new CMakeDeps generator
tools.cmake.cmaketoolchain:enabled_blocks: Select the specific blocks to use in the conan_toolchain.cmake
tools.cmake.cmaketoolchain:extra_variables: Dictionary with variables to be injected in CMakeToolchain (potential override of CMakeToolchain defined variables)
tools.cmake.cmaketoolchain:find_package_prefer_config: Argument for the CMAKE_FIND_PACKAGE_PREFER_CONFIG
tools.cmake.cmaketoolchain:generator: User defined CMake generator to use instead of default
tools.cmake.cmaketoolchain:presets_environment: String to define wether to add or not the environment section to the CMake presets. Empty by default, will generate the environment section in CMakePresets. Can take values: 'disabled'.
tools.cmake.cmaketoolchain:system_name: Define CMAKE_SYSTEM_NAME in CMakeToolchain
tools.cmake.cmaketoolchain:system_processor: Define CMAKE_SYSTEM_PROCESSOR in CMakeToolchain
tools.cmake.cmaketoolchain:system_version: Define CMAKE_SYSTEM_VERSION in CMakeToolchain
tools.cmake.cmaketoolchain:toolchain_file: Use other existing file rather than conan_toolchain.cmake one
tools.cmake.cmaketoolchain:toolset_arch: Toolset architecture to be used as part of CMAKE_GENERATOR_TOOLSET in CMakeToolchain
tools.cmake.cmaketoolchain:toolset_cuda: (Experimental) Path to a CUDA toolset to use, or version if installed at the system level
tools.cmake.cmaketoolchain:user_toolchain: Inject existing user toolchains at the beginning of conan_toolchain.cmake
tools.cmake:cmake_program: Path to CMake executable
tools.cmake:install_strip: Add --strip to cmake.install()
tools.compilation:verbosity: Verbosity of compilation tools if set. Possible values are 'quiet' and 'verbose'
tools.deployer:symlinks: Set to False to disable deployers copying symlinks
tools.env.virtualenv:powershell: If it is set to True it will generate powershell launchers if os=Windows
tools.files.download:retry: Number of retries in case of failure when downloading
tools.files.download:retry_wait: Seconds to wait between download attempts
tools.files.download:verify: If set, overrides recipes on whether to perform SSL verification for their downloaded files. Only recommended to be set while testing
tools.files.unzip:filter: Define tar extraction filter: 'fully_trusted', 'tar', 'data'
tools.gnu:build_triplet: Custom build triplet to pass to Autotools scripts
tools.gnu:define_libcxx11_abi: Force definition of GLIBCXX_USE_CXX11_ABI=1 for libstdc++11
tools.gnu:host_triplet: Custom host triplet to pass to Autotools scripts
tools.gnu:make_program: Indicate path to make program
tools.gnu:pkg_config: Path to pkg-config executable used by PkgConfig build helper
tools.google.bazel:bazelrc_path: List of paths to bazelrc files to be used as 'bazel --bazelrc=rcpath1 ... build'
tools.google.bazel:configs: List of Bazel configurations to be used as 'bazel build --config=config1 ...'
tools.graph:skip_binaries: Allow the graph to skip binaries not needed in the current configuration (True by default)
tools.graph:skip_build: (Experimental) Do not expand build/tool_requires
tools.graph:skip_test: (Experimental) Do not expand test_requires. If building it might need 'tools.build:skip_test=True'
tools.graph:vendor: (Experimental) If 'build', enables the computation of dependencies of vendoring packages to build them
tools.info.package_id:confs: List of existing configuration to be part of the package ID
tools.intel:installation_path: Defines the Intel oneAPI installation root path
tools.intel:setvars_args: Custom arguments to be passed onto the setvars.sh|bat script from Intel oneAPI
tools.meson.mesontoolchain:backend: Any Meson backend: ninja, vs, vs2010, vs2012, vs2013, vs2015, vs2017, vs2019, xcode
tools.meson.mesontoolchain:extra_machine_files: List of paths for any additional native/cross file references to be appended to the existing Conan ones
tools.microsoft.bash:active: If Conan is already running inside bash terminal in Windows
tools.microsoft.bash:path: The path to the shell to run when conanfile.win_bash==True
tools.microsoft.bash:subsystem: The subsystem to be used when conanfile.win_bash==True. Possible values: msys2, msys, cygwin, wsl, sfu
tools.microsoft.msbuild:installation_path: VS install path, to avoid auto-detect via vswhere, like C:/Program Files (x86)/Microsoft Visual Studio/2019/Community. Use empty string to disable
tools.microsoft.msbuild:max_cpu_count: Argument for the /m when running msvc to build parallel projects
tools.microsoft.msbuild:vs_version: Defines the IDE version (15, 16, 17) when using the msvc compiler. Necessary if compiler.version specifies a toolset that is not the IDE default
tools.microsoft.msbuilddeps:exclude_code_analysis: Suppress MSBuild code analysis for patterns
tools.microsoft.msbuildtoolchain:compile_options: Dictionary with MSBuild compiler options
tools.microsoft:msvc_update: Force the specific update irrespective of compiler.update (CMakeToolchain and VCVars)
tools.microsoft:winsdk_version: Use this winsdk_version in vcvars
tools.system.package_manager:mode: Mode for package_manager tools: 'check', 'report', 'report-installed' or 'install'
tools.system.package_manager:sudo: Use 'sudo' when invoking the package manager tools in Linux (False by default)
tools.system.package_manager:sudo_askpass: Use the '-A' argument if using sudo in Linux to invoke the system package manager (False by default)
tools.system.package_manager:tool: Default package manager tool: 'apk', 'apt-get', 'yum', 'dnf', 'brew', 'pacman', 'choco', 'zypper', 'pkg' or 'pkgutil'
可以只列出与给定模式匹配的配置,例如
$ conan config list proxy
core.net.http:clean_system_proxy: If defined, the proxies system env-vars will be discarded
core.net.http:no_proxy_match: List of urls to skip from proxies configuration
core.net.http:proxies: Dictionary containing the proxy configuration
另请参阅
这些配置可以在
global.conf
、配置文件和命令行中定义,请参阅 Conan 配置文件
conan config show¶
$ conan config show -h
usage: conan config show [-h] [-f FORMAT] [-v [V]] [-cc CORE_CONF] pattern
Get the value of the specified conf
positional arguments:
pattern Conf item(s) pattern for which to query their value
options:
-h, --help show this help message and exit
-f FORMAT, --format FORMAT
Select the output format: json
-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
显示与给定模式匹配的 conf 项目的值。
对于由以下内容组成的 global.conf
tools.build:jobs=42
tools.files.download:retry_wait=10
tools.files.download:retry=7
core.net.http:timeout=30
core.net.http:max_retries=5
zlib*/:tools.files.download:retry_wait=100
zlib*/:tools.files.download:retry=5
您可以获取所有值
$ conan config show "*"
core.net.http:max_retries: 5
core.net.http:timeout: 30
tools.files.download:retry: 7
tools.files.download:retry_wait: 10
tools.build:jobs: 42
zlib*/:tools.files.download:retry: 5
zlib*/:tools.files.download:retry_wait: 100
或者仅获取那些引用 tools.files
部分的值
$ conan config show "*tools.files*"
tools.files.download:retry: 7
tools.files.download:retry_wait: 10
zlib*/:tools.files.download:retry: 5
zlib*/:tools.files.download:retry_wait: 100
注意模式中的第一个 *
。这将匹配所有包模式。删除它将使命令只显示全局配置
$ conan config show "tools.files*"
tools.files.download:retry: 7
tools.files.download:retry_wait: 10