Skip to content

Commit

Permalink
Add ${test}_evergreen_loader targets for all gtests
Browse files Browse the repository at this point in the history
For AOSP Evergreen builds, we do not have an automated way to build
unittest targets before. This CL adds e.g.
base_unittests_evergreen_loader_install target to Android builds that
copies the evergreen test binary(e.g. base_unittests.so) and packages it
as base_unittests_evergreen_loader.apk that can be executed successfully
on the device with
`adb shell "am start --esa args
'--evergreen_library=app/cobalt/lib/libbase_unittests.so,--evergreen_content=app/cobalt/content'
dev.cobalt.coat"`

b/268244534
  • Loading branch information
johnxwork committed Jun 10, 2023
1 parent ea69d45 commit fb383f0
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 14 deletions.
82 changes: 82 additions & 0 deletions starboard/build/config/BUILDCONFIG.gn
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,88 @@ template("shared_library") {
}
}

# Add an additional evergreen_loader target to every gtest target.
if (sb_is_evergreen_compatible && sb_evergreen_compatible_package &&
target_name != "loader_app") {
original_target_name = target_name
data_deps += [ "//third_party/icu:icudata" ]
data_deps += [
":copy_loader_app_lib${original_target_name}",
"//starboard/loader_app:copy_loader_app_content",
]
if (cobalt_font_package == "empty") {
data_deps += [ "//cobalt/content/fonts:copy_font_data" ]
} else {
data_deps += [
"//cobalt/content/fonts:copy_fonts",
"//cobalt/content/fonts:fonts_xml",
]
}
shared_library(original_target_name + "_evergreen_loader") {
forward_variables_from(invoker, [ "testonly" ])
if (has_pedantic_warnings) {
configs += [ "//starboard/build/config:pedantic_warnings" ]
}
configs += [ toolchain_config_path ]
if (!has_pedantic_warnings) {
configs += [ "//starboard/build/config:no_pedantic_warnings" ]
}

sources = [ "//starboard/elf_loader/sandbox.cc" ]
configs += [ "//starboard/elf_loader:elf_loader_config" ]

deps = [
":copy_loader_app_lib${original_target_name}",
"//cobalt/content/fonts:copy_font_data",
"//starboard",
"//starboard/elf_loader:constants",
"//starboard/elf_loader:elf_loader",
"//starboard/elf_loader:evergreen_info",
"//starboard/elf_loader:sabi_string",
"//starboard/loader_app:copy_loader_app_content",
]

if (!sb_is_evergreen_compatible) {
deps += [ "//third_party/crashpad/wrapper:wrapper_stub" ]
}
}
if (separate_install_targets_for_bundling) {
bundle_content(
"copy_loader_app_lib${original_target_name}_bundle_content") {
forward_variables_from(invoker, [ "testonly" ])

bundle_name = shared_library_target_name + "_evergreen_loader"
bundle_deps = data_deps
}
}
copy("copy_loader_app_lib${original_target_name}") {
install_content = true
if (target_cpu == "arm" && arm_float_abi == "softfp") {
sources = [ "$root_out_dir/../evergreen-$target_cpu-${arm_float_abi}_$build_type/lib${original_target_name}.so" ]
} else if (target_cpu == "arm64") {
sources = [ "$root_out_dir/../evergreen-$target_cpu_$build_type/install/lib/libcobalt.so" ]
} else {
sources = []
}
outputs = [ "$sb_static_contents_output_data_dir/app/cobalt/lib/lib${original_target_name}.so" ]
}
install_target(original_target_name + "_evergreen_loader_install") {
forward_variables_from(invoker, [ "testonly" ])
installable_target_name = original_target_name + "_evergreen_loader"
type = "shared_library"
deps = []
if (defined(invoker.deps)) {
deps += invoker.deps
}
foreach(dep, data_deps) {
deps += [ "${dep}_install_content" ]
}
if (separate_install_targets_for_bundling) {
deps +=
[ ":copy_loader_app_lib${original_target_name}_bundle_content" ]
}
}
}
install_target(target_name + "_install") {
forward_variables_from(invoker, [ "testonly" ])
installable_target_name = shared_library_target_name
Expand Down
3 changes: 3 additions & 0 deletions starboard/elf_loader/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ if (current_toolchain == starboard_toolchain) {
if (!sb_is_evergreen_compatible) {
deps += [ "//third_party/crashpad/wrapper:wrapper_stub" ]
}
if (sb_is_evergreen_compatible && sb_evergreen_compatible_package) {
deps += [ "//starboard/loader_app:copy_crashpad_handler_named_as_so" ]
}
}
}

Expand Down
16 changes: 2 additions & 14 deletions starboard/loader_app/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -52,18 +52,6 @@ if (sb_is_evergreen_compatible && sb_evergreen_compatible_package) {
}
outputs = [ "$sb_static_contents_output_data_dir/app/cobalt/content" ]
}
copy("copy_loader_app_lib") {
install_content = true
if (target_cpu == "arm" && arm_float_abi == "softfp") {
sources = [ "$root_out_dir/../evergreen-$target_cpu-${arm_float_abi}_$build_type/install/lib/libcobalt.so" ]
} else if (target_cpu == "arm64") {
sources = [ "$root_out_dir/../evergreen-$target_cpu_$build_type/install/lib/libcobalt.so" ]
} else {
sources = []
}
outputs =
[ "$sb_static_contents_output_data_dir/app/cobalt/lib/libcobalt.so" ]
}
copy("copy_loader_app_manifest") {
install_content = true
if (target_cpu == "arm" && arm_float_abi == "softfp") {
Expand Down Expand Up @@ -112,14 +100,14 @@ if (current_toolchain == starboard_toolchain) {
data_deps += [
":copy_crashpad_handler_named_as_so",
":copy_loader_app_content",
":copy_loader_app_lib",
":copy_loader_app_manifest",
"//cobalt/browser:copy_loader_app_libcobalt",
]
deps += [
":copy_crashpad_handler_named_as_so",
":copy_loader_app_content",
":copy_loader_app_lib",
":copy_loader_app_manifest",
"//cobalt/browser:copy_loader_app_libcobalt",
]
}
}
Expand Down

0 comments on commit fb383f0

Please sign in to comment.