From d8bbbd672155ed658630132f1d9cd20faf14d553 Mon Sep 17 00:00:00 2001 From: tomsht01 Date: Tue, 7 Jan 2025 17:50:58 +0200 Subject: [PATCH] feat: support generic device constraints --- labgrid/constraint/device/BUILD.bazel | 12 ++++ .../config/qemu/amd64/amd64/BUILD.bazel | 61 ++++++++--------- .../config/qemu/amd64/arm64/BUILD.bazel | 65 ++++++++++--------- .../config/qemu/arm64/amd64/BUILD.bazel | 61 ++++++++--------- .../config/qemu/arm64/arm64/BUILD.bazel | 65 ++++++++++--------- 5 files changed, 144 insertions(+), 120 deletions(-) diff --git a/labgrid/constraint/device/BUILD.bazel b/labgrid/constraint/device/BUILD.bazel index d100733e..0eb69f41 100644 --- a/labgrid/constraint/device/BUILD.bazel +++ b/labgrid/constraint/device/BUILD.bazel @@ -11,3 +11,15 @@ constraint_value( constraint_setting = ":device", visibility = ["//visibility:public"], ) + +constraint_value( + name = "emulator", + constraint_setting = ":device", + visibility = ["//visibility:public"], +) + +constraint_value( + name = "silicon", + constraint_setting = ":device", + visibility = ["//visibility:public"], +) diff --git a/labgrid/toolchain/config/qemu/amd64/amd64/BUILD.bazel b/labgrid/toolchain/config/qemu/amd64/amd64/BUILD.bazel index 54af97da..4a0a9245 100644 --- a/labgrid/toolchain/config/qemu/amd64/amd64/BUILD.bazel +++ b/labgrid/toolchain/config/qemu/amd64/amd64/BUILD.bazel @@ -1,31 +1,34 @@ load("//labgrid/config/toolchain:defs.bzl", "labgrid_config_toolchain") -labgrid_config_toolchain( - name = "amd64", - src = "config.yaml", - data = [ - "//qemu/debian/image", - "//qemu/seed/image", - ], - env = { - "LG_QEMU_SYSTEM_BIN": "$(QEMU_SYSTEM)", - "LG_QEMU_QCOW2_IMAGE": "$(location //qemu/debian/image)", - "LG_QEMU_VIRT_IMAGE": "$(location //qemu/seed/image)", - "LG_OPENSSH_SSH": "$(location @openssh//:ssh)", - "LG_OPENSSH_SCP": "$(location @openssh//:scp)", - }, - exec_compatible_with = [ - "@toolchain_utils//toolchain/constraint/cpu:amd64", - ], - target_compatible_with = [ - "//labgrid/constraint/device:qemu", - "@toolchain_utils//toolchain/constraint/os:linux", - "@toolchain_utils//toolchain/constraint/cpu:amd64", - ], - toolchains = ["//labgrid/toolchain/qemu-system:resolved"], - tools = [ - "@openssh//:scp", - "@openssh//:ssh", - ], - deps = ["//bazel/labgrid/strategy"], -) +[ + labgrid_config_toolchain( + name = "amd64-{}".format(device), + src = "config.yaml", + data = [ + "//qemu/debian/image", + "//qemu/seed/image", + ], + env = { + "LG_QEMU_SYSTEM_BIN": "$(QEMU_SYSTEM)", + "LG_QEMU_QCOW2_IMAGE": "$(location //qemu/debian/image)", + "LG_QEMU_VIRT_IMAGE": "$(location //qemu/seed/image)", + "LG_OPENSSH_SSH": "$(location @openssh//:ssh)", + "LG_OPENSSH_SCP": "$(location @openssh//:scp)", + }, + exec_compatible_with = [ + "@toolchain_utils//toolchain/constraint/cpu:amd64", + ], + target_compatible_with = [ + "//labgrid/constraint/device:{}".format(device), + "@toolchain_utils//toolchain/constraint/os:linux", + "@toolchain_utils//toolchain/constraint/cpu:amd64", + ], + toolchains = ["//labgrid/toolchain/qemu-system:resolved"], + tools = [ + "@openssh//:scp", + "@openssh//:ssh", + ], + deps = ["//bazel/labgrid/strategy"], + ) + for device in ("emulator", "qemu") +] diff --git a/labgrid/toolchain/config/qemu/amd64/arm64/BUILD.bazel b/labgrid/toolchain/config/qemu/amd64/arm64/BUILD.bazel index a92d3299..95d2ede7 100644 --- a/labgrid/toolchain/config/qemu/amd64/arm64/BUILD.bazel +++ b/labgrid/toolchain/config/qemu/amd64/arm64/BUILD.bazel @@ -1,33 +1,36 @@ load("//labgrid/config/toolchain:defs.bzl", "labgrid_config_toolchain") -labgrid_config_toolchain( - name = "arm64", - src = "config.yaml", - data = [ - "//qemu/debian/image", - "//qemu/efi", - "//qemu/seed/image", - ], - env = { - "LG_QEMU_SYSTEM_BIN": "$(QEMU_SYSTEM)", - "LG_QEMU_QCOW2_IMAGE": "$(location //qemu/debian/image)", - "LG_QEMU_VIRT_IMAGE": "$(location //qemu/seed/image)", - "LG_QEMU_EFI": "$(location //qemu/efi)", - "LG_OPENSSH_SSH": "$(location @openssh//:ssh)", - "LG_OPENSSH_SCP": "$(location @openssh//:scp)", - }, - exec_compatible_with = [ - "@toolchain_utils//toolchain/constraint/cpu:amd64", - ], - target_compatible_with = [ - "//labgrid/constraint/device:qemu", - "@toolchain_utils//toolchain/constraint/os:linux", - "@toolchain_utils//toolchain/constraint/cpu:arm64", - ], - toolchains = ["//labgrid/toolchain/qemu-system:resolved"], - tools = [ - "@openssh//:scp", - "@openssh//:ssh", - ], - deps = ["//bazel/labgrid/strategy"], -) +[ + labgrid_config_toolchain( + name = "arm64-{}".format(device), + src = "config.yaml", + data = [ + "//qemu/debian/image", + "//qemu/efi", + "//qemu/seed/image", + ], + env = { + "LG_QEMU_SYSTEM_BIN": "$(QEMU_SYSTEM)", + "LG_QEMU_QCOW2_IMAGE": "$(location //qemu/debian/image)", + "LG_QEMU_VIRT_IMAGE": "$(location //qemu/seed/image)", + "LG_QEMU_EFI": "$(location //qemu/efi)", + "LG_OPENSSH_SSH": "$(location @openssh//:ssh)", + "LG_OPENSSH_SCP": "$(location @openssh//:scp)", + }, + exec_compatible_with = [ + "@toolchain_utils//toolchain/constraint/cpu:amd64", + ], + target_compatible_with = [ + "//labgrid/constraint/device:{}".format(device), + "@toolchain_utils//toolchain/constraint/os:linux", + "@toolchain_utils//toolchain/constraint/cpu:arm64", + ], + toolchains = ["//labgrid/toolchain/qemu-system:resolved"], + tools = [ + "@openssh//:scp", + "@openssh//:ssh", + ], + deps = ["//bazel/labgrid/strategy"], + ) + for device in ("emulator", "qemu") +] diff --git a/labgrid/toolchain/config/qemu/arm64/amd64/BUILD.bazel b/labgrid/toolchain/config/qemu/arm64/amd64/BUILD.bazel index d039db9c..9ac92beb 100644 --- a/labgrid/toolchain/config/qemu/arm64/amd64/BUILD.bazel +++ b/labgrid/toolchain/config/qemu/arm64/amd64/BUILD.bazel @@ -1,31 +1,34 @@ load("//labgrid/config/toolchain:defs.bzl", "labgrid_config_toolchain") -labgrid_config_toolchain( - name = "amd64", - src = "config.yaml", - data = [ - "//qemu/debian/image", - "//qemu/seed/image", - ], - env = { - "LG_QEMU_SYSTEM_BIN": "$(QEMU_SYSTEM)", - "LG_QEMU_QCOW2_IMAGE": "$(location //qemu/debian/image)", - "LG_QEMU_VIRT_IMAGE": "$(location //qemu/seed/image)", - "LG_OPENSSH_SSH": "$(location @openssh//:ssh)", - "LG_OPENSSH_SCP": "$(location @openssh//:scp)", - }, - exec_compatible_with = [ - "@toolchain_utils//toolchain/constraint/cpu:arm64", - ], - target_compatible_with = [ - "//labgrid/constraint/device:qemu", - "@toolchain_utils//toolchain/constraint/os:linux", - "@toolchain_utils//toolchain/constraint/cpu:amd64", - ], - toolchains = ["//labgrid/toolchain/qemu-system:resolved"], - tools = [ - "@openssh//:scp", - "@openssh//:ssh", - ], - deps = ["//bazel/labgrid/strategy"], -) +[ + labgrid_config_toolchain( + name = "amd64-{}".format(device), + src = "config.yaml", + data = [ + "//qemu/debian/image", + "//qemu/seed/image", + ], + env = { + "LG_QEMU_SYSTEM_BIN": "$(QEMU_SYSTEM)", + "LG_QEMU_QCOW2_IMAGE": "$(location //qemu/debian/image)", + "LG_QEMU_VIRT_IMAGE": "$(location //qemu/seed/image)", + "LG_OPENSSH_SSH": "$(location @openssh//:ssh)", + "LG_OPENSSH_SCP": "$(location @openssh//:scp)", + }, + exec_compatible_with = [ + "@toolchain_utils//toolchain/constraint/cpu:arm64", + ], + target_compatible_with = [ + "//labgrid/constraint/device:{}".format(device), + "@toolchain_utils//toolchain/constraint/os:linux", + "@toolchain_utils//toolchain/constraint/cpu:amd64", + ], + toolchains = ["//labgrid/toolchain/qemu-system:resolved"], + tools = [ + "@openssh//:scp", + "@openssh//:ssh", + ], + deps = ["//bazel/labgrid/strategy"], + ) + for device in ("emulator", "qemu") +] diff --git a/labgrid/toolchain/config/qemu/arm64/arm64/BUILD.bazel b/labgrid/toolchain/config/qemu/arm64/arm64/BUILD.bazel index 66737fa2..9de6cff9 100644 --- a/labgrid/toolchain/config/qemu/arm64/arm64/BUILD.bazel +++ b/labgrid/toolchain/config/qemu/arm64/arm64/BUILD.bazel @@ -1,33 +1,36 @@ load("//labgrid/config/toolchain:defs.bzl", "labgrid_config_toolchain") -labgrid_config_toolchain( - name = "arm64", - src = "config.yaml", - data = [ - "//qemu/debian/image", - "//qemu/efi", - "//qemu/seed/image", - ], - env = { - "LG_QEMU_SYSTEM_BIN": "$(QEMU_SYSTEM)", - "LG_QEMU_QCOW2_IMAGE": "$(location //qemu/debian/image)", - "LG_QEMU_VIRT_IMAGE": "$(location //qemu/seed/image)", - "LG_QEMU_EFI": "$(location //qemu/efi)", - "LG_OPENSSH_SSH": "$(location @openssh//:ssh)", - "LG_OPENSSH_SCP": "$(location @openssh//:scp)", - }, - exec_compatible_with = [ - "@toolchain_utils//toolchain/constraint/cpu:arm64", - ], - target_compatible_with = [ - "//labgrid/constraint/device:qemu", - "@toolchain_utils//toolchain/constraint/os:linux", - "@toolchain_utils//toolchain/constraint/cpu:arm64", - ], - toolchains = ["//labgrid/toolchain/qemu-system:resolved"], - tools = [ - "@openssh//:scp", - "@openssh//:ssh", - ], - deps = ["//bazel/labgrid/strategy"], -) +[ + labgrid_config_toolchain( + name = "arm64-{}".format(device), + src = "config.yaml", + data = [ + "//qemu/debian/image", + "//qemu/efi", + "//qemu/seed/image", + ], + env = { + "LG_QEMU_SYSTEM_BIN": "$(QEMU_SYSTEM)", + "LG_QEMU_QCOW2_IMAGE": "$(location //qemu/debian/image)", + "LG_QEMU_VIRT_IMAGE": "$(location //qemu/seed/image)", + "LG_QEMU_EFI": "$(location //qemu/efi)", + "LG_OPENSSH_SSH": "$(location @openssh//:ssh)", + "LG_OPENSSH_SCP": "$(location @openssh//:scp)", + }, + exec_compatible_with = [ + "@toolchain_utils//toolchain/constraint/cpu:arm64", + ], + target_compatible_with = [ + "//labgrid/constraint/device:{}".format(device), + "@toolchain_utils//toolchain/constraint/os:linux", + "@toolchain_utils//toolchain/constraint/cpu:arm64", + ], + toolchains = ["//labgrid/toolchain/qemu-system:resolved"], + tools = [ + "@openssh//:scp", + "@openssh//:ssh", + ], + deps = ["//bazel/labgrid/strategy"], + ) + for device in ("emulator", "qemu") +] -- GitLab