id = "conan"
name = "Conan"
homepage = "https://conan.io"
description = "A decentralized, open-source C and C++ package manager."
executables = ["conan"]
[dotfiles]
paths = [
"~/.conan2/global.conf",
"~/.conan2/profiles/",
"~/.conan2/remotes.json",
"~/.conan2/settings.yml",
"~/.conan2/extensions/",
"~/.conan2/hooks/",
]
exclude = [
"~/.conan2/p/",
"~/.conan2/download_cache/",
"~/.conan2/.conan/",
"~/.conan2/db.sqlite3",
]
secret = ["~/.conan2/credentials.json"]
[commands]
format = 1
label = "Conan"
description = "Install a project's dependencies with `conan install`. Lockfile, deployer, per-context (:build/:host) and output-format options are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.subcommand]]
path = ["install"]
label = "Install dependencies"
[[commands.subcommand.source]]
id = "help"
kind = "help"
url = "https://docs.conan.io/2/reference/commands/install.html"
revision = "conan 2.33.0"
evidence = """
path Path to a folder containing a recipe (conanfile.py or
-b BUILD, --build BUILD
--requires REQUIRES Directly provide requires instead of a conanfile
--tool-requires TOOL_REQUIRES
-g GENERATOR, --generator GENERATOR
-of OUTPUT_FOLDER, --output-folder OUTPUT_FOLDER
-r REMOTE, --remote REMOTE
-nr, --no-remote Do not use remote, resolve exclusively in the cache
-u [UPDATE], --update [UPDATE]
-pr PROFILE, --profile PROFILE
-o OPTIONS, --options OPTIONS
-s SETTINGS, --settings SETTINGS
-c CONF, --conf CONF Apply the specified conf. By default, or if specifying
"""
[[commands.subcommand.field]]
id = "path"
label = "Recipe path"
description = "Folder with conanfile.py/txt or a recipe file. Defaults to the current directory."
type = "path"
position = 0
path = { kind = "any", role = "input" }
sources = ["help"]
[[commands.subcommand.field]]
id = "build"
label = "Build from source"
description = "Pattern such as missing, never or a package name."
type = "string"
option = ["--build", "-b"]
multiple = true
suggestions = [{ value = "missing", label = "missing" }, { value = "never", label = "never" }, { value = "*", label = "everything" }]
sources = ["help"]
[[commands.subcommand.field]]
id = "requires"
label = "Requires (no conanfile)"
type = "string"
option = ["--requires"]
multiple = true
sources = ["help"]
[[commands.subcommand.field]]
id = "tool_requires"
label = "Tool requires"
type = "string"
option = ["--tool-requires"]
multiple = true
sources = ["help"]
[[commands.subcommand.field]]
id = "profile"
label = "Profile"
type = "string"
option = ["--profile", "-pr"]
sources = ["help"]
[[commands.subcommand.field]]
id = "settings"
label = "Settings (name=value)"
type = "string"
option = ["--settings", "-s"]
multiple = true
sources = ["help"]
[[commands.subcommand.field]]
id = "options"
label = "Options (pkg:opt=value)"
type = "string"
option = ["--options", "-o"]
multiple = true
sources = ["help"]
[[commands.subcommand.field]]
id = "conf"
label = "Conf (name=value)"
type = "string"
option = ["--conf", "-c"]
multiple = true
sources = ["help"]
[[commands.subcommand.field]]
id = "generator"
label = "Generator"
type = "string"
option = ["--generator", "-g"]
multiple = true
suggestions = [{ value = "CMakeDeps", label = "CMakeDeps" }, { value = "CMakeToolchain", label = "CMakeToolchain" }]
sources = ["help"]
[[commands.subcommand.field]]
id = "output_folder"
label = "Output folder"
type = "path"
option = ["--output-folder", "-of"]
path = { kind = "directory", role = "output" }
sources = ["help"]
[[commands.subcommand.field]]
id = "remote"
label = "Remote"
type = "string"
option = ["--remote", "-r"]
sources = ["help"]
[[commands.subcommand.field]]
id = "no_remote"
label = "Resolve from cache only"
type = "boolean"
option = ["--no-remote", "-nr"]
sources = ["help"]
[[commands.subcommand.task]]
id = "install-missing"
label = "Install, build missing"
set = { build = ["missing"] }
fields = ["path", "build", "profile", "settings", "output_folder"]
required = []
[[commands.subcommand.task]]
id = "install-requires"
label = "Install a package"
fields = ["requires", "generator", "output_folder", "build"]
required = ["requires"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["path", "build", "requires", "profile", "settings", "options", "output_folder"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["tool_requires", "conf", "generator", "remote", "no_remote"]