Lines Matching full:compatibility
1 .. _docs-bazel-compatibility:
4 Bazel build compatibility patterns
8 maintainable :ref:`wildcard builds <docs-bazel-compatibility-why-wildcard>` of
16 <docs-bazel-compatibility-recommended>` for expressing compatibility in various
18 <docs-bazel-compatibility-not-recommended>` and why they should be avoided.
20 :ref:`docs-bazel-compatibility-implementation-plan`.
22 See :ref:`docs-bazel-compatibility-background` and the `Platforms documentation
37 .. _docs-bazel-compatibility-recommended:
40 Recommended compatibility patterns
53 <docs-bazel-compatibility-inherited>` (which you implicitly inherit)
56 <docs-bazel-compatibility-well-known>`.
58 constraint <docs-bazel-compatibility-module-specific>`.
66 <docs-bazel-compatibility-facade-default-backend>`.
69 <docs-bazel-compatibility-facade-backend-dict>` for their use. :ref:`Don't
70 provide multiplexer targets <docs-bazel-compatibility-multiplexer>`.
72 interface <docs-bazel-compatibility-facade-backend-interface>`.
74 setting consuming a label flag <docs-bazel-compatibility-config-setting>`.
80 <docs-bazel-compatibility-incompatible-label-flag>`.
85 .. _docs-bazel-compatibility-inherited:
95 express this compatibility restriction through the ``target_compatible_with``
100 <docs-bazel-compatibility-incompatible-label-flag>`.
102 Asserting compatibility
125 .. _docs-bazel-compatibility-well-known: argument
140 .. _docs-bazel-compatibility-well-known-os:
168 load("@pigweed//pw_build:compatibility.bzl", "incompatible_with_mcu")
178 :ref:`docs-bazel-compatibility-rtos`.
203 values to indicate target compatibility.
226 .. _docs-bazel-compatibility-module-specific:
237 <docs-bazel-compatibility-well-known>`, the recommended pattern is to define a
238 "boolean" ``constraint_setting`` to express compatibility. We introduce some
247 load("@pigweed//pw_build:compatibility.bzl", "boolean_constraint_value")
286 compatibility restrictions. Many backends (e.g., ``pw_assert_log``) have no
301 load("@pigweed//pw_build:compatibility.bzl", "boolean_constraint_value", "incompatible_with_mcu")
318 .. _docs-bazel-compatibility-facade-default-backend:
336 load("@pigweed//pw_build:compatibility.bzl", "host_backend_alias")
365 <docs-bazel-compatibility-multiplexer>`. One exception is if your facade needs
382 .. _docs-bazel-compatibility-facade-backend-dict:
417 .. _docs-bazel-compatibility-facade-backend-interface:
529 .. _docs-bazel-compatibility-incompatible-label-flag:
584 .. _docs-bazel-compatibility-not-recommended:
590 This section describes alternative build compatibility patterns that we've used
594 .. _docs-bazel-compatibility-per-facade-constraint-settings:
614 <docs-bazel-compatibility-recommended>` is that *every* backend was associated
626 removed (see :ref:`docs-bazel-compatibility-implementation-plan`).
628 .. _docs-bazel-compatibility-config-setting:
665 restrict compatibility but are not facade backends cannot use it.
684 .. _docs-bazel-compatibility-board-chipset:
709 These constraints will be removed (see :ref:`docs-bazel-compatibility-implementation-plan`).
711 .. _docs-bazel-compatibility-rtos:
734 <docs-bazel-compatibility-well-known-os>`. So why not RTOSes?
742 So, we can push the question of compatibility down to that target: if FreeRTOS
745 ``label_flags`` (in particular, to specify the port), so platform compatibility
749 .. _docs-bazel-compatibility-multiplexer:
786 <docs-bazel-compatibility-facade-backend-dict>` for explicit inclusion in the
789 .. _docs-bazel-compatibility-implementation-plan:
807 <docs-bazel-compatibility-multiplexer>`.
809 <docs-bazel-compatibility-per-facade-constraint-settings>`.
811 <docs-bazel-compatibility-facade-default-backend>`.
814 chipset constraint settings <docs-bazel-compatibility-board-chipset>`.
817 .. _docs-bazel-compatibility-background:
823 .. _docs-bazel-compatibility-why-wildcard:
910 patterns <docs-bazel-compatibility-recommended>`:
914 * **Make compatibility granular.** Avoid making assumptions about what sets of