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_applicable_licenses = ["//:gfxstream_license"], 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, )