blob: 33fdd2631d9d808929214c10f56f0101b0e4c764 [file] [log] [blame]
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,
)