[Ravenwood] Support fonts files and data files
Add support to include font files into ravenwood_libgroup. Also make ravenwood data property to accept paths instead of module name. Bug: 292141694 Flag: EXEMPT host side change only Test: $ANDROID_BUILD_TOP/frameworks/base/ravenwood/scripts/run-ravenwood-tests.sh Change-Id: Ida5ef0230d2cc59fa1209199168c6c35e4842fbd
This commit is contained in:
@@ -33,7 +33,6 @@ func RegisterRavenwoodBuildComponents(ctx android.RegistrationContext) {
|
||||
var ravenwoodLibContentTag = dependencyTag{name: "ravenwoodlibcontent"}
|
||||
var ravenwoodUtilsTag = dependencyTag{name: "ravenwoodutils"}
|
||||
var ravenwoodRuntimeTag = dependencyTag{name: "ravenwoodruntime"}
|
||||
var ravenwoodDataTag = dependencyTag{name: "ravenwooddata"}
|
||||
var ravenwoodTestResourceApkTag = dependencyTag{name: "ravenwoodtestresapk"}
|
||||
|
||||
const ravenwoodUtilsName = "ravenwood-utils"
|
||||
@@ -228,7 +227,10 @@ type ravenwoodLibgroupProperties struct {
|
||||
Jni_libs []string
|
||||
|
||||
// We use this to copy framework-res.apk to the ravenwood runtime directory.
|
||||
Data []string
|
||||
Data []string `android:"path,arch_variant"`
|
||||
|
||||
// We use this to copy font files to the ravenwood runtime directory.
|
||||
Fonts []string `android:"path,arch_variant"`
|
||||
}
|
||||
|
||||
type ravenwoodLibgroup struct {
|
||||
@@ -267,9 +269,6 @@ func (r *ravenwoodLibgroup) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
for _, lib := range r.ravenwoodLibgroupProperties.Jni_libs {
|
||||
ctx.AddVariationDependencies(ctx.Config().BuildOSTarget.Variations(), jniLibTag, lib)
|
||||
}
|
||||
for _, data := range r.ravenwoodLibgroupProperties.Data {
|
||||
ctx.AddVariationDependencies(nil, ravenwoodDataTag, data)
|
||||
}
|
||||
}
|
||||
|
||||
func (r *ravenwoodLibgroup) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
@@ -309,12 +308,17 @@ func (r *ravenwoodLibgroup) GenerateAndroidBuildActions(ctx android.ModuleContex
|
||||
}
|
||||
|
||||
dataInstallPath := installPath.Join(ctx, "ravenwood-data")
|
||||
for _, data := range r.ravenwoodLibgroupProperties.Data {
|
||||
libModule := ctx.GetDirectDepWithTag(data, ravenwoodDataTag)
|
||||
file := android.OutputFileForModule(ctx, libModule, "")
|
||||
data := android.PathsForModuleSrc(ctx, r.ravenwoodLibgroupProperties.Data)
|
||||
for _, file := range data {
|
||||
ctx.InstallFile(dataInstallPath, file.Base(), file)
|
||||
}
|
||||
|
||||
fontsInstallPath := installPath.Join(ctx, "fonts")
|
||||
fonts := android.PathsForModuleSrc(ctx, r.ravenwoodLibgroupProperties.Fonts)
|
||||
for _, file := range fonts {
|
||||
ctx.InstallFile(fontsInstallPath, file.Base(), file)
|
||||
}
|
||||
|
||||
// Normal build should perform install steps
|
||||
ctx.Phony(r.BaseModuleName(), android.PathForPhony(ctx, r.BaseModuleName()+"-install"))
|
||||
}
|
||||
|
@@ -19,6 +19,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"android/soong/android"
|
||||
"android/soong/etc"
|
||||
)
|
||||
|
||||
var prepareRavenwoodRuntime = android.GroupFixturePreparers(
|
||||
@@ -59,11 +60,15 @@ var prepareRavenwoodRuntime = android.GroupFixturePreparers(
|
||||
}
|
||||
android_app {
|
||||
name: "app1",
|
||||
sdk_version: "current",
|
||||
sdk_version: "current",
|
||||
}
|
||||
android_app {
|
||||
name: "app2",
|
||||
sdk_version: "current",
|
||||
sdk_version: "current",
|
||||
}
|
||||
prebuilt_font {
|
||||
name: "Font.ttf",
|
||||
src: "Font.ttf",
|
||||
}
|
||||
android_ravenwood_libgroup {
|
||||
name: "ravenwood-runtime",
|
||||
@@ -76,7 +81,10 @@ var prepareRavenwoodRuntime = android.GroupFixturePreparers(
|
||||
"ravenwood-runtime-jni2",
|
||||
],
|
||||
data: [
|
||||
"app1",
|
||||
":app1",
|
||||
],
|
||||
fonts: [
|
||||
":Font.ttf"
|
||||
],
|
||||
}
|
||||
android_ravenwood_libgroup {
|
||||
@@ -97,6 +105,7 @@ func TestRavenwoodRuntime(t *testing.T) {
|
||||
|
||||
ctx := android.GroupFixturePreparers(
|
||||
PrepareForIntegrationTestWithJava,
|
||||
etc.PrepareForTestWithPrebuiltEtc,
|
||||
prepareRavenwoodRuntime,
|
||||
).RunTest(t)
|
||||
|
||||
@@ -114,6 +123,7 @@ func TestRavenwoodRuntime(t *testing.T) {
|
||||
runtime.Output(installPathPrefix + "/ravenwood-runtime/lib64/libred.so")
|
||||
runtime.Output(installPathPrefix + "/ravenwood-runtime/lib64/ravenwood-runtime-jni3.so")
|
||||
runtime.Output(installPathPrefix + "/ravenwood-runtime/ravenwood-data/app1.apk")
|
||||
runtime.Output(installPathPrefix + "/ravenwood-runtime/fonts/Font.ttf")
|
||||
utils := ctx.ModuleForTests("ravenwood-utils", "android_common")
|
||||
utils.Output(installPathPrefix + "/ravenwood-utils/framework-rules.ravenwood.jar")
|
||||
}
|
||||
@@ -125,29 +135,30 @@ func TestRavenwoodTest(t *testing.T) {
|
||||
|
||||
ctx := android.GroupFixturePreparers(
|
||||
PrepareForIntegrationTestWithJava,
|
||||
etc.PrepareForTestWithPrebuiltEtc,
|
||||
prepareRavenwoodRuntime,
|
||||
).RunTestWithBp(t, `
|
||||
cc_library_shared {
|
||||
name: "jni-lib1",
|
||||
host_supported: true,
|
||||
srcs: ["jni.cpp"],
|
||||
}
|
||||
cc_library_shared {
|
||||
name: "jni-lib2",
|
||||
host_supported: true,
|
||||
srcs: ["jni.cpp"],
|
||||
stem: "libblue",
|
||||
shared_libs: [
|
||||
"jni-lib3",
|
||||
],
|
||||
}
|
||||
cc_library_shared {
|
||||
name: "jni-lib3",
|
||||
host_supported: true,
|
||||
srcs: ["jni.cpp"],
|
||||
stem: "libpink",
|
||||
}
|
||||
android_ravenwood_test {
|
||||
cc_library_shared {
|
||||
name: "jni-lib1",
|
||||
host_supported: true,
|
||||
srcs: ["jni.cpp"],
|
||||
}
|
||||
cc_library_shared {
|
||||
name: "jni-lib2",
|
||||
host_supported: true,
|
||||
srcs: ["jni.cpp"],
|
||||
stem: "libblue",
|
||||
shared_libs: [
|
||||
"jni-lib3",
|
||||
],
|
||||
}
|
||||
cc_library_shared {
|
||||
name: "jni-lib3",
|
||||
host_supported: true,
|
||||
srcs: ["jni.cpp"],
|
||||
stem: "libpink",
|
||||
}
|
||||
android_ravenwood_test {
|
||||
name: "ravenwood-test",
|
||||
srcs: ["Test.java"],
|
||||
jni_libs: [
|
||||
|
Reference in New Issue
Block a user