bdl
Public Starlark API for the bdl rules.
bdl_library
load("@bzd_bdl//:defs.bzl", "bdl_library") bdl_library(name, deps, srcs)
Bzd Description Language generator rule. It generates language provider from a .bdl file. The files are generated at the same path of the target, with the name of the target appended with a language specific file extension.
ATTRIBUTES
Name | Description | Type | Mandatory | Default |
---|---|---|---|---|
name | A unique name for this target. | Name | required | |
deps | List of bdl dependencies. Language specific dependencies will have their public interface included in the generated file. | List of labels | optional | [] |
srcs | List of Bzd Description Language (bdl) files to be included. | List of labels | required |
BdlSystemJsonInfo
load("@bzd_bdl//:defs.bzl", "BdlSystemJsonInfo") BdlSystemJsonInfo(json)
Provider for a system json representation of a system.
FIELDS
Name | Description |
---|---|
json | Dictionary of json files representing the system, keyed by target. |
bdl_application_factory
load("@bzd_bdl//:defs.bzl", "bdl_application_factory") bdl_application_factory(implementation)
PARAMETERS
Name | Description | Default Value |
---|---|---|
implementation | - |
none |
bdl_system
load("@bzd_bdl//:defs.bzl", "bdl_system") bdl_system(*, name, deps, data, args, compatible_with, deprecation, exec_compatible_with, exec_properties, features, output_licenses, package_metadata, restricted_to, tags, target_compatible_with, targets, testonly, toolchains, visibility)
ATTRIBUTES
Name | Description | Type | Mandatory | Default |
---|---|---|---|---|
name | A unique name for this macro instance. Normally, this is also the name for the macro's main or only target. The names of any other targets that this macro might create will be this name with a string suffix. | Name | required | |
deps | Dependencies for the rule. | List of labels | optional | [] |
data | Files to be added to the runfiles. | List of labels | optional | None |
args | Inherited rule attribute | List of strings | optional | None |
compatible_with | Inherited rule attribute | List of labels; nonconfigurable | optional | None |
deprecation | Inherited rule attribute | String; nonconfigurable | optional | None |
exec_compatible_with | Inherited rule attribute | List of labels; nonconfigurable | optional | None |
exec_properties | Inherited rule attribute | Dictionary: String -> String | optional | None |
features | Inherited rule attribute | List of strings | optional | None |
output_licenses | Inherited rule attribute | List of strings | optional | None |
package_metadata | Inherited rule attribute | List of labels; nonconfigurable | optional | None |
restricted_to | Inherited rule attribute | List of labels; nonconfigurable | optional | None |
tags | Inherited rule attribute | List of strings; nonconfigurable | optional | None |
target_compatible_with | Inherited rule attribute | List of labels | optional | None |
targets | A dictionary with name and target corresponding to the binaries for this system. | Dictionary: String -> Label; nonconfigurable | optional | {} |
testonly | Set testonly attribute. | Boolean; nonconfigurable | optional | False |
toolchains | Inherited rule attribute | List of labels | optional | None |
visibility | The visibility to be passed to this macro's exported targets. It always implicitly includes the location where this macro is instantiated, so this attribute only needs to be explicitly set if you want the macro's targets to be additionally visible somewhere else. | List of labels; nonconfigurable | optional |
bdl_system_test
load("@bzd_bdl//:defs.bzl", "bdl_system_test") bdl_system_test(*, name, deps, data, args, compatible_with, deprecation, exec_compatible_with, exec_properties, features, flaky, local, package_metadata, restricted_to, shard_count, size, tags, target_compatible_with, targets, testonly, timeout, toolchains, visibility)
ATTRIBUTES
Name | Description | Type | Mandatory | Default |
---|---|---|---|---|
name | A unique name for this macro instance. Normally, this is also the name for the macro's main or only target. The names of any other targets that this macro might create will be this name with a string suffix. | Name | required | |
deps | Dependencies for the rule. | List of labels | optional | [] |
data | Files to be added to the runfiles. | List of labels | optional | None |
args | Inherited rule attribute | List of strings | optional | None |
compatible_with | Inherited rule attribute | List of labels; nonconfigurable | optional | None |
deprecation | Inherited rule attribute | String; nonconfigurable | optional | None |
exec_compatible_with | Inherited rule attribute | List of labels; nonconfigurable | optional | None |
exec_properties | Inherited rule attribute | Dictionary: String -> String | optional | None |
features | Inherited rule attribute | List of strings | optional | None |
flaky | Inherited rule attribute | Boolean; nonconfigurable | optional | None |
local | Inherited rule attribute | Boolean; nonconfigurable | optional | None |
package_metadata | Inherited rule attribute | List of labels; nonconfigurable | optional | None |
restricted_to | Inherited rule attribute | List of labels; nonconfigurable | optional | None |
shard_count | Inherited rule attribute | Integer | optional | None |
size | Inherited rule attribute | String; nonconfigurable | optional | None |
tags | Inherited rule attribute | List of strings; nonconfigurable | optional | None |
target_compatible_with | Inherited rule attribute | List of labels | optional | None |
targets | A dictionary with name and target corresponding to the binaries for this system. | Dictionary: String -> Label; nonconfigurable | optional | {} |
testonly | Set testonly attribute. | Boolean; nonconfigurable | optional | False |
timeout | Inherited rule attribute | String; nonconfigurable | optional | None |
toolchains | Inherited rule attribute | List of labels | optional | None |
visibility | The visibility to be passed to this macro's exported targets. It always implicitly includes the location where this macro is instantiated, so this attribute only needs to be explicitly set if you want the macro's targets to be additionally visible somewhere else. | List of labels; nonconfigurable | optional |
bdl_target
load("@bzd_bdl//:defs.bzl", "bdl_target") bdl_target(*, name, deps, binary, compatible_with, composition, deprecation, exec_compatible_with, exec_properties, features, language, package_metadata, parent, platform, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
ATTRIBUTES
Name | Description | Type | Mandatory | Default |
---|---|---|---|---|
name | A unique name for this macro instance. Normally, this is also the name for the macro's main or only target. The names of any other targets that this macro might create will be this name with a string suffix. | Name | required | |
deps | List of dependencies. | List of labels | optional | None |
binary | Executable for the binary target. | Label | optional | None |
compatible_with | Inherited rule attribute | List of labels; nonconfigurable | optional | None |
composition | List of composition bdl source files for this target. | List of labels | optional | None |
deprecation | Inherited rule attribute | String; nonconfigurable | optional | None |
exec_compatible_with | Inherited rule attribute | List of labels; nonconfigurable | optional | None |
exec_properties | Inherited rule attribute | Dictionary: String -> String | optional | None |
features | Inherited rule attribute | List of strings | optional | None |
language | Language associated with this target. | String | optional | None |
package_metadata | Inherited rule attribute | List of labels; nonconfigurable | optional | None |
parent | The parent target if it extends an existing target. | Label; nonconfigurable | optional | None |
platform | The platform used for the transition of this target. | Label; nonconfigurable | optional | None |
restricted_to | Inherited rule attribute | List of labels; nonconfigurable | optional | None |
tags | Inherited rule attribute | List of strings; nonconfigurable | optional | None |
target_compatible_with | Inherited rule attribute | List of labels | optional | None |
testonly | Inherited rule attribute | Boolean; nonconfigurable | optional | None |
toolchains | Inherited rule attribute | List of labels | optional | None |
visibility | The visibility to be passed to this macro's exported targets. It always implicitly includes the location where this macro is instantiated, so this attribute only needs to be explicitly set if you want the macro's targets to be additionally visible somewhere else. | List of labels; nonconfigurable | optional |