Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions base/cvd/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,27 @@ cc_import(
shared_library = ":gfxstream_backend",
visibility = ["//visibility:public"],
)

alias(
name = "virglrenderer",
actual = "@virglrenderer//:libvirglrenderer.so.1",
visibility = ["//visibility:public"],
)

cc_import(
name = "virglrenderer_import",
shared_library = ":virglrenderer",
visibility = ["//visibility:public"],
)

alias(
name = "minigbm",
actual = "@minigbm//:libgbm.so.1",
visibility = ["//visibility:public"],
)

cc_import(
name = "minigbm_import",
shared_library = ":minigbm",
visibility = ["//visibility:public"],
)
3 changes: 3 additions & 0 deletions base/cvd/build_external/build_external.MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ include("//build_external/libyuv:libyuv.MODULE.bazel")
include("//build_external/mako:mako.MODULE.bazel")
include("//build_external/markupsafe:markupsafe.MODULE.bazel")
include("//build_external/mesa:mesa.MODULE.bazel")
include("//build_external/minigbm:minigbm.MODULE.bazel")
include("//build_external/mkbootimg:mkbootimg.MODULE.bazel")
include("//build_external/ms-tpm-20-ref:ms-tpm-20-ref.MODULE.bazel")
include("//build_external/mtools:mtools.MODULE.bazel")
Expand All @@ -62,6 +63,8 @@ include("//build_external/spirv_headers:spirv_headers.MODULE.bazel")
include("//build_external/spirv_tools:spirv_tools.MODULE.bazel")
include("//build_external/swiftshader:swiftshader.MODULE.bazel")
include("//build_external/vulkan_headers:vulkan_headers.MODULE.bazel")
include("//build_external/venus_protocol:venus_protocol.MODULE.bazel")
include("//build_external/virglrenderer:virglrenderer.MODULE.bazel")
include("//build_external/wayland:wayland.MODULE.bazel")
include("//build_external/wmediumd:wmediumd.MODULE.bazel")
include("//build_external/xz:xz.MODULE.bazel")
27 changes: 27 additions & 0 deletions base/cvd/build_external/crosvm/PATCH.rutabaga_gfx_build_rs.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
diff --git a/build.rs b/build.rs
index 4e4db7a..789b3a8 100644
--- a/build.rs
+++ b/build.rs
@@ -89,11 +89,15 @@ fn main() -> PkgConfigResult<()> {
}

if env::var("CARGO_FEATURE_VIRGL_RENDERER").is_ok() {
- virglrenderer()?;
+ if env::var("CARGO_FEATURE_VIRGL_RENDERER_STUB").is_err() {
+ virglrenderer()?;
+ }
use_fence_passing_option1 = false;
}

- if env::var("CARGO_FEATURE_GBM").is_ok() {
+ if env::var("CARGO_FEATURE_GBM").is_ok()
+ && env::var("CARGO_FEATURE_GBM_STUB").is_err()
+ {
gbm()?;
}

if env::var("CARGO_FEATURE_GFXSTREAM").is_ok()
&& env::var("CARGO_FEATURE_GFXSTREAM_STUB").is_err()
{
gfxstream()?;
}
18 changes: 17 additions & 1 deletion base/cvd/build_external/crosvm/crosvm.MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ crosvm_bin.spec(
"net_util",
"qcow",
"usb",
"virgl_renderer",
"wl-dmabuf",
],
# TODO: schuffelen - fix the sandbox
git = CROSVM_REMOTE,
Expand All @@ -42,6 +44,8 @@ crosvm_bin.annotation(
patch_args = ["-p1"],
deps = [
"@@//:gfxstream_backend_import",
"@@//:minigbm_import",
"@@//:virglrenderer_import",
],
rustc_flags = [
# Look for shared libraries in the same directory as the binary.
Expand All @@ -51,18 +55,30 @@ crosvm_bin.annotation(

crosvm_bin.annotation(
crate = "rutabaga_gfx",
crate_features = [
"gbm",
"virgl_renderer",
],
deps = [
"@@//:gfxstream_backend_import",
"@@//:minigbm_import",
"@@//:virglrenderer_import",
],
rustc_flags = [
# Look for shared libraries in the same directory as this object.
"-Clink-arg=-Wl,-rpath,$$ORIGIN",
],
build_script_env = {
# Disable the build script from trying to automatically locate
# Gfxstream as the dep is directly provided above.
# Gfxstream, minigbm, and virglrenderer as the dep are directly provided above.
"CARGO_FEATURE_GBM_STUB": "bloh",
"CARGO_FEATURE_GFXSTREAM_STUB": "blah",
"CARGO_FEATURE_VIRGL_RENDERER_STUB": "bleh",
},
patch_args = ["-p1"],
patches = [
"@//build_external/crosvm:PATCH.rutabaga_gfx_build_rs.patch",
],
)

crosvm_bin.annotation(
Expand Down
9 changes: 5 additions & 4 deletions base/cvd/build_external/libdrm/BUILD.libdrm.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ package(
default_visibility = [
"@//:android_cuttlefish",
"@mesa//:__subpackages__",
"@minigbm//:__subpackages__",
"@virglrenderer//:__subpackages__",
],
)

Expand Down Expand Up @@ -48,10 +50,9 @@ cc_library(
"xf86drmRandom.c",
"xf86drmSL.c",
],
hdrs = [
"include/drm/drm.h",
"include/drm/drm_fourcc.h",
"include/drm/drm_mode.h",
hdrs = glob([
"include/drm/*.h",
]) + [
"xf86drm.h",
"xf86drmHash.h",
"xf86drmMode.h",
Expand Down
1 change: 1 addition & 0 deletions base/cvd/build_external/mako/BUILD.mako.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package(
default_visibility = [
"@//:android_cuttlefish",
"@mesa//:__subpackages__",
"@venus_protocol//:__subpackages__",
],
)

Expand Down
1 change: 1 addition & 0 deletions base/cvd/build_external/minigbm/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# minigbm build external module
93 changes: 93 additions & 0 deletions base/cvd/build_external/minigbm/BUILD.minigbm.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
load("@rules_cc//cc:cc_library.bzl", "cc_library")
load("@rules_cc//cc:cc_shared_library.bzl", "cc_shared_library")

package(
default_visibility = ["//visibility:public"],
)

genrule(
name = "minigbm_headers",
srcs = [
"gbm.h",
"minigbm_helpers.h",
],
outs = [
"minigbm/gbm.h",
"minigbm/minigbm_helpers.h",
],
cmd = "mkdir -p $(@D)/minigbm && cp $(location gbm.h) $(@D)/minigbm/gbm.h && cp $(location minigbm_helpers.h) $(@D)/minigbm/minigbm_helpers.h",
)

cc_library(
name = "libgbm_internal",
srcs = [
"backend_mock.c",
"drv.c",
"drv_array_helpers.c",
"drv_helpers.c",
"dumb_driver.c",
"gbm.c",
"gbm_helpers.c",
"minigbm_helpers.c",
"virtgpu.c",
"virtgpu_cross_domain.c",
"virtgpu_virgl.c",
] + select({
"@platforms//cpu:aarch64": [
"msm.c",
],
"@platforms//cpu:x86_64": [
"i915.c",
"xe.c",
],
"//conditions:default": [],
}),
hdrs = glob([
"*.h",
"external/*.h",
]) + [
":minigbm_headers",
],
copts = [
"-D_GNU_SOURCE=1",
"-D_FILE_OFFSET_BITS=64",
"-DDRV_VIRTGPU=1",
"-Wno-implicit-function-declaration",
"-Wno-unused-parameter",
] + select({
"@platforms//cpu:aarch64": [
"-DDRV_MSM=1",
],
"@platforms//cpu:x86_64": [
"-DDRV_I915=1",
"-DDRV_XE=1",
],
"//conditions:default": [],
}),
includes = [
".",
],
linkopts = [
"-ldl",
],
deps = [
"@libdrm",
],
)

cc_shared_library(
name = "libgbm.so.1",
deps = [":libgbm_internal"],
shared_lib_name = "libgbm.so",
)

alias(
name = "libgbm",
actual = ":libgbm.so.1",
)

alias(
name = "libminigbm",
actual = ":libgbm.so.1",
)

8 changes: 8 additions & 0 deletions base/cvd/build_external/minigbm/minigbm.MODULE.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")

git_repository(
name = "minigbm",
build_file = "@//build_external/minigbm:BUILD.minigbm.bazel",
commit = "34003c9c8b50661346e49b06389a028ce970f539",
remote = "https://chromium.googlesource.com/chromiumos/platform/minigbm",
)
1 change: 1 addition & 0 deletions base/cvd/build_external/pyyaml/BUILD.pyyaml.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package(
default_visibility = [
"@//:android_cuttlefish",
"@mesa//:__subpackages__",
"@virglrenderer//:__subpackages__",
],
)

Expand Down
1 change: 1 addition & 0 deletions base/cvd/build_external/venus_protocol/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Package marker for venus_protocol
Loading