Cargo package¶
Added in version 1.3.
Changed in version 1.4: Added support for dependency patching.
A Cargo package provides support for processing a Cargo supported module.
LIBFOO_TYPE = 'cargo'
During the configuration stage of a Cargo package, cargo
will be invoked to
generate build files for the module. After fetching and extracting a package,
cargo vendor
will be invoked to download any defined dependencies defined
in Cargo.toml
. After all dependencies are acquired, a build stage will
be triggered using cargo build
, followed by an installation stage using
cargo install
. Each stage can be configured to manipulate environment
variables and options used by the Cargo executable.
Cargo packages are handled a bit differently compared to other package types. In order to support having Cargo application packages work with library dependencies managed in a releng-tool project, all Cargo packages in play will need to be extracted ahead of time before any individual Cargo package can be built.
For any Cargo package that defines a dependency to another Cargo package that is defined inside a releng-tool project, dependencies will be automatically patched to use the local package definition.
The following sections outline configuration options are available for a Cargo package.
LIBFOO_BUILD_DEFS
¶
Provides a means to pass definitions into the build process. This option can is defined as a dictionary of string pairs. This field is optional.
LIBFOO_BUILD_DEFS = {
# adds "-Doption=value" to the command
'option': 'value',
}
LIBFOO_BUILD_ENV
¶
Provides a means to pass environment variables into the build process. This option is defined as a dictionary with key-value pairs where the key is the environment name and the value is the environment variable’s value. This field is optional.
LIBFOO_BUILD_ENV = {
'OPTION': 'VALUE',
}
LIBFOO_BUILD_OPTS
¶
Provides a means to pass command line options into the build process. This option can be defined as a dictionary of string pairs or a list with strings – either way defined will generate argument values to include in the build event. This field is optional.
LIBFOO_BUILD_OPTS = {
# adds "--option value" to the command
'--option': 'value',
}
# (or)
LIBFOO_BUILD_OPTS = [
# adds "--some-option" to the command
'--some-option',
]
LIBFOO_CARGO_NAME
¶
Added in version 1.4.
Provides an explicit name to use for a Cargo package. By default, the used Cargo name is assumed to be the same as the package name used in releng-tool. If the names do not match, it is recommended to explicitly set the package name as it will be used to patch package dependencies together.
LIBFOO_CARGO_NAME = 'example-name'
LIBFOO_CARGO_NOINSTALL
¶
Added in version 1.4.
Specifies whether the Cargo package should skip an attempt to invoke the
install command. This option can be helpful when defining a Cargo package
that is used as a library (instead of a full application).
By default, the installation stage is invoked with a value of False
.
LIBFOO_CARGO_NOINSTALL = True
LIBFOO_ENV
¶
Added in version 0.17.
Provides a means to pass environment variables into all stages for a package. This option is defined as a dictionary with key-value pairs where the key is the environment name and the value is the environment variable’s value. This field is optional.
LIBFOO_ENV = {
'OPTION': 'VALUE',
}
LIBFOO_INSTALL_DEFS
¶
Provides a means to pass definitions into the installation process. This option can is defined as a dictionary of string pairs. This field is optional.
LIBFOO_INSTALL_DEFS = {
# adds "--option=value" to the command
'--option': 'value',
}
LIBFOO_INSTALL_ENV
¶
Provides a means to pass environment variables into the installation process. This option is defined as a dictionary with key-value pairs where the key is the environment name and the value is the environment variable’s value. This field is optional.
LIBFOO_INSTALL_ENV = {
'OPTION': 'VALUE',
}
LIBFOO_INSTALL_OPTS
¶
Provides a means to pass command line options into the installation process. This option can be defined as a dictionary of string pairs or a list with strings – either way defined will generate argument values to include in the installation event. This field is optional.
LIBFOO_INSTALL_OPTS = {
# adds "--option value" to the command
'--option': 'value',
}
# (or)
LIBFOO_INSTALL_OPTS = [
# adds "--some-option" to the command
'--some-option',
]