Skip to content

Commit

Permalink
Add support for keyboard prebuilt module type
Browse files Browse the repository at this point in the history
Add 3 different module type:
 - prebuilt_usr_keylayout
 - prebuilt_usr_keychars
 - prebuilt_usr_idc

Bug: 337998675
Test: cd build/soong/etc ; go test -run \
      TestPrebuiltPrebuiltUserKeyLayoutInstallDirPath
Test: cd build/soong/etc ; go test -run \
      TestPrebuiltPrebuiltUserKeyCharsInstallDirPath
Test: cd build/soong/etc ; go test -run \
      TestPrebuiltPrebuiltUserIdcInstallDirPath
Change-Id: I5bafbc48dd0edd0d06783b89b904330a2a30c743
  • Loading branch information
yangbill authored and luk1337 committed Jul 11, 2024
1 parent c81ec52 commit cfde371
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
36 changes: 36 additions & 0 deletions etc/prebuilt_etc.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ func RegisterPrebuiltEtcBuildComponents(ctx android.RegistrationContext) {
ctx.RegisterModuleType("prebuilt_usr_share", PrebuiltUserShareFactory)
ctx.RegisterModuleType("prebuilt_usr_share_host", PrebuiltUserShareHostFactory)
ctx.RegisterModuleType("prebuilt_usr_hyphendata", PrebuiltUserHyphenDataFactory)
ctx.RegisterModuleType("prebuilt_usr_keylayout", PrebuiltUserKeyLayoutFactory)
ctx.RegisterModuleType("prebuilt_usr_keychars", PrebuiltUserKeyCharsFactory)
ctx.RegisterModuleType("prebuilt_usr_idc", PrebuiltUserIdcFactory)
ctx.RegisterModuleType("prebuilt_font", PrebuiltFontFactory)
ctx.RegisterModuleType("prebuilt_firmware", PrebuiltFirmwareFactory)
ctx.RegisterModuleType("prebuilt_dsp", PrebuiltDSPFactory)
Expand Down Expand Up @@ -623,6 +626,39 @@ func PrebuiltUserHyphenDataFactory() android.Module {
return module
}

// prebuilt_usr_keylayout is for a prebuilt artifact that is installed in
// <partition>/usr/keylayout/<sub_dir> directory.
func PrebuiltUserKeyLayoutFactory() android.Module {
module := &PrebuiltEtc{}
InitPrebuiltEtcModule(module, "usr/keylayout")
// This module is device-only
android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibFirst)
android.InitDefaultableModule(module)
return module
}

// prebuilt_usr_keychars is for a prebuilt artifact that is installed in
// <partition>/usr/keychars/<sub_dir> directory.
func PrebuiltUserKeyCharsFactory() android.Module {
module := &PrebuiltEtc{}
InitPrebuiltEtcModule(module, "usr/keychars")
// This module is device-only
android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibFirst)
android.InitDefaultableModule(module)
return module
}

// prebuilt_usr_idc is for a prebuilt artifact that is installed in
// <partition>/usr/idc/<sub_dir> directory.
func PrebuiltUserIdcFactory() android.Module {
module := &PrebuiltEtc{}
InitPrebuiltEtcModule(module, "usr/idc")
// This module is device-only
android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibFirst)
android.InitDefaultableModule(module)
return module
}

// prebuilt_font installs a font in <partition>/fonts directory.
func PrebuiltFontFactory() android.Module {
module := &PrebuiltEtc{}
Expand Down
42 changes: 42 additions & 0 deletions etc/prebuilt_etc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,48 @@ func TestPrebuiltPrebuiltUserHyphenDataInstallDirPath(t *testing.T) {
android.AssertPathRelativeToTopEquals(t, "install dir", expected, p.installDirPath)
}

func TestPrebuiltPrebuiltUserKeyLayoutInstallDirPath(t *testing.T) {
result := prepareForPrebuiltEtcTest.RunTestWithBp(t, `
prebuilt_usr_keylayout {
name: "foo.conf",
src: "foo.conf",
sub_dir: "bar",
}
`)

p := result.Module("foo.conf", "android_arm64_armv8-a").(*PrebuiltEtc)
expected := "out/soong/target/product/test_device/system/usr/keylayout/bar"
android.AssertPathRelativeToTopEquals(t, "install dir", expected, p.installDirPath)
}

func TestPrebuiltPrebuiltUserKeyCharsInstallDirPath(t *testing.T) {
result := prepareForPrebuiltEtcTest.RunTestWithBp(t, `
prebuilt_usr_keychars {
name: "foo.conf",
src: "foo.conf",
sub_dir: "bar",
}
`)

p := result.Module("foo.conf", "android_arm64_armv8-a").(*PrebuiltEtc)
expected := "out/soong/target/product/test_device/system/usr/keychars/bar"
android.AssertPathRelativeToTopEquals(t, "install dir", expected, p.installDirPath)
}

func TestPrebuiltPrebuiltUserIdcInstallDirPath(t *testing.T) {
result := prepareForPrebuiltEtcTest.RunTestWithBp(t, `
prebuilt_usr_idc {
name: "foo.conf",
src: "foo.conf",
sub_dir: "bar",
}
`)

p := result.Module("foo.conf", "android_arm64_armv8-a").(*PrebuiltEtc)
expected := "out/soong/target/product/test_device/system/usr/idc/bar"
android.AssertPathRelativeToTopEquals(t, "install dir", expected, p.installDirPath)
}

func TestPrebuiltFontInstallDirPath(t *testing.T) {
result := prepareForPrebuiltEtcTest.RunTestWithBp(t, `
prebuilt_font {
Expand Down

0 comments on commit cfde371

Please sign in to comment.