Skip to content

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