| load("@aspect_bazel_lib//lib:copy_to_directory.bzl", "copy_to_directory") |
| load("@bazel_skylib//rules:common_settings.bzl", "string_flag") |
| load("@rules_cc//cc:defs.bzl", "cc_library") |
| |
| package( |
| default_visibility = ["//:gfxstream"], |
| ) |
| |
| string_flag( |
| name = "graphics_test_environment", |
| build_setting_default = "host", |
| values = [ |
| "host", |
| "gles_angle_vulkan_lavapipe", |
| "gles_angle_vulkan_swiftshader", |
| ], |
| ) |
| |
| config_setting( |
| name = "graphics_test_environment_host", |
| flag_values = { |
| ":graphics_test_environment": "host", |
| }, |
| ) |
| |
| config_setting( |
| name = "graphics_test_environment_gles_angle_vulkan_lavapipe", |
| flag_values = { |
| ":graphics_test_environment": "gles_angle_vulkan_lavapipe", |
| }, |
| ) |
| |
| config_setting( |
| name = "graphics_test_environment_gles_angle_vulkan_swiftshader", |
| flag_values = { |
| ":graphics_test_environment": "gles_angle_vulkan_swiftshader", |
| }, |
| ) |
| |
| copy_to_directory( |
| name = "graphics_test_environment_drivers", |
| srcs = select({ |
| ":graphics_test_environment_gles_angle_vulkan_lavapipe": [ |
| "//third_party/angle:libEGL_angle_vendor_icd.json", |
| "//third_party/mesa:vk_lavapipe_icd.json", |
| "@angle//:libEGL", |
| "@angle//:libGLESv2", |
| "@mesa//:vk_lavapipe", |
| ], |
| ":graphics_test_environment_gles_angle_vulkan_swiftshader": [ |
| "//third_party/angle:libEGL_angle_vendor_icd.json", |
| "//third_party/swiftshader:vk_swiftshader_icd.json", |
| "@angle//:libEGL", |
| "@angle//:libGLESv2", |
| "@swiftshader//:vk_swiftshader", |
| ], |
| "//conditions:default": [ |
| # Default does not change anything and uses host drivers. |
| ], |
| }), |
| include_external_repositories = ["*"], |
| # Effectively, all of the "prefixes" to flatten/strip. |
| root_paths = [ |
| "common/testenv", |
| "third_party/angle", |
| "third_party/mesa", |
| "third_party/swiftshader", |
| ], |
| ) |
| |
| cc_library( |
| name = "graphics_test_environment_support", |
| testonly = True, |
| srcs = [ |
| "GraphicsTestEnvironment.cpp", |
| ], |
| hdrs = [ |
| "include/gfxstream/common/testing/GraphicsTestEnvironment.h", |
| ], |
| data = select({ |
| ":graphics_test_environment_gles_angle_vulkan_lavapipe": [ |
| ":graphics_test_environment_drivers", |
| ], |
| ":graphics_test_environment_gles_angle_vulkan_swiftshader": [ |
| ":graphics_test_environment_drivers", |
| ], |
| "//conditions:default": [], |
| }), |
| defines = select({ |
| ":graphics_test_environment_gles_angle_vulkan_lavapipe": [ |
| "GFXSTREAM_TESTING_USE_GLES_ANGLE", |
| "GFXSTREAM_TESTING_USE_VULKAN_LAVAPIPE", |
| ], |
| ":graphics_test_environment_gles_angle_vulkan_swiftshader": [ |
| "GFXSTREAM_TESTING_USE_GLES_ANGLE", |
| "GFXSTREAM_TESTING_USE_VULKAN_SWIFTSHADER", |
| ], |
| "//conditions:default": [ |
| # Default does not change anything and uses host drivers. |
| ], |
| }), |
| strip_include_prefix = "include", |
| deps = select({ |
| ":graphics_test_environment_gles_angle_vulkan_lavapipe": [ |
| "@rules_cc//cc/runfiles", |
| ], |
| ":graphics_test_environment_gles_angle_vulkan_swiftshader": [ |
| "@rules_cc//cc/runfiles", |
| ], |
| "//conditions:default": [], |
| }) + [ |
| "//common/base:gfxstream_common_base", |
| "//common/logging:gfxstream_common_logging", |
| ], |
| alwayslink = True, |
| ) |