Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ca55769 authored by Jaewoong Jung's avatar Jaewoong Jung Committed by Gerrit Code Review
Browse files

Merge changes Ife12ba69,Ibf910262

* changes:
  Implement android_test_import
  AndroidMkEntries minor refactoring.
parents a9caf47e b28eb5fd
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -79,12 +79,14 @@ type AndroidMkEntries struct {
	header bytes.Buffer
	footer bytes.Buffer

	AddCustomEntries func(name, prefix, moduleDir string, entries *AndroidMkEntries)
	ExtraEntries []AndroidMkExtraEntriesFunc

	EntryMap   map[string][]string
	entryOrder []string
}

type AndroidMkExtraEntriesFunc func(entries *AndroidMkEntries)

func (a *AndroidMkEntries) SetString(name, value string) {
	if _, ok := a.EntryMap[name]; !ok {
		a.entryOrder = append(a.entryOrder, name)
@@ -246,9 +248,8 @@ func (a *AndroidMkEntries) fillInEntries(config Config, bpPath string, mod bluep
			prefix = "2ND_" + prefix
		}
	}
	blueprintDir := filepath.Dir(bpPath)
	if a.AddCustomEntries != nil {
		a.AddCustomEntries(name, prefix, blueprintDir, a)
	for _, extra := range a.ExtraEntries {
		extra(a)
	}

	// Write to footer.
+11 −9
Original line number Diff line number Diff line
@@ -155,7 +155,8 @@ func (p *PrebuiltEtc) AndroidMkEntries() AndroidMkEntries {
		Class:      "ETC",
		SubName:    nameSuffix,
		OutputFile: OptionalPathForPath(p.outputFilePath),
		AddCustomEntries: func(name, prefix, moduleDir string, entries *AndroidMkEntries) {
		ExtraEntries: []AndroidMkExtraEntriesFunc{
			func(entries *AndroidMkEntries) {
				entries.SetString("LOCAL_MODULE_TAGS", "optional")
				entries.SetString("LOCAL_MODULE_PATH", "$(OUT_DIR)/"+p.installDirPath.RelPathString())
				entries.SetString("LOCAL_INSTALLED_MODULE_STEM", p.outputFilePath.Base())
@@ -166,6 +167,7 @@ func (p *PrebuiltEtc) AndroidMkEntries() AndroidMkEntries {
					}
				}
			},
		},
	}
}

+19 −15
Original line number Diff line number Diff line
@@ -133,9 +133,11 @@ func (s *ShBinary) AndroidMkEntries() AndroidMkEntries {
		Class:      "EXECUTABLES",
		OutputFile: OptionalPathForPath(s.outputFilePath),
		Include:    "$(BUILD_SYSTEM)/soong_cc_prebuilt.mk",
		AddCustomEntries: func(name, prefix, moduleDir string, entries *AndroidMkEntries) {
		ExtraEntries: []AndroidMkExtraEntriesFunc{
			func(entries *AndroidMkEntries) {
				s.customAndroidMkEntries(entries)
			},
		},
	}
}

@@ -156,7 +158,8 @@ func (s *ShTest) AndroidMkEntries() AndroidMkEntries {
		Class:      "NATIVE_TESTS",
		OutputFile: OptionalPathForPath(s.outputFilePath),
		Include:    "$(BUILD_SYSTEM)/soong_cc_prebuilt.mk",
		AddCustomEntries: func(name, prefix, moduleDir string, entries *AndroidMkEntries) {
		ExtraEntries: []AndroidMkExtraEntriesFunc{
			func(entries *AndroidMkEntries) {
				s.customAndroidMkEntries(entries)

				entries.AddStrings("LOCAL_COMPATIBILITY_SUITE", s.testProperties.Test_suites...)
@@ -171,6 +174,7 @@ func (s *ShTest) AndroidMkEntries() AndroidMkEntries {
					entries.AddStrings("LOCAL_TEST_DATA", path+":"+rel)
				}
			},
		},
	}
}

+7 −5
Original line number Diff line number Diff line
@@ -1687,12 +1687,14 @@ func (p *Prebuilt) AndroidMkEntries() android.AndroidMkEntries {
		Class:      "ETC",
		OutputFile: android.OptionalPathForPath(p.inputApex),
		Include:    "$(BUILD_PREBUILT)",
		AddCustomEntries: func(name, prefix, moduleDir string, entries *android.AndroidMkEntries) {
		ExtraEntries: []android.AndroidMkExtraEntriesFunc{
			func(entries *android.AndroidMkEntries) {
				entries.SetString("LOCAL_MODULE_PATH", filepath.Join("$(OUT_DIR)", p.installDir.RelPathString()))
				entries.SetString("LOCAL_MODULE_STEM", p.installFilename)
				entries.SetBoolIfTrue("LOCAL_UNINSTALLABLE_MODULE", !p.installable())
				entries.AddStrings("LOCAL_OVERRIDES_PACKAGES", p.properties.Overrides...)
			},
		},
	}
}

+40 −12
Original line number Diff line number Diff line
@@ -122,6 +122,15 @@ func testSuiteComponent(w io.Writer, test_suites []string) {
	}
}

func testSuiteComponentEntries(entries *android.AndroidMkEntries, test_suites []string) {
	entries.SetString("LOCAL_MODULE_TAGS", "tests")
	if len(test_suites) > 0 {
		entries.AddStrings("LOCAL_COMPATIBILITY_SUITE", test_suites...)
	} else {
		entries.SetString("LOCAL_COMPATIBILITY_SUITE", "null-suite")
	}
}

func (j *Test) AndroidMk() android.AndroidMkData {
	data := j.Library.AndroidMk()
	data.Extra = append(data.Extra, func(w io.Writer, outputFile android.Path) {
@@ -614,7 +623,8 @@ func (a *AndroidAppImport) AndroidMkEntries() android.AndroidMkEntries {
		Class:      "APPS",
		OutputFile: android.OptionalPathForPath(a.outputFile),
		Include:    "$(BUILD_SYSTEM)/soong_app_prebuilt.mk",
		AddCustomEntries: func(name, prefix, moduleDir string, entries *android.AndroidMkEntries) {
		ExtraEntries: []android.AndroidMkExtraEntriesFunc{
			func(entries *android.AndroidMkEntries) {
				entries.SetBoolIfTrue("LOCAL_PRIVILEGED_MODULE", Bool(a.properties.Privileged))
				if a.certificate != nil {
					entries.SetString("LOCAL_CERTIFICATE", a.certificate.Pem.String())
@@ -627,9 +637,19 @@ func (a *AndroidAppImport) AndroidMkEntries() android.AndroidMkEntries {
				}
				entries.AddStrings("LOCAL_INSTALLED_MODULE_STEM", a.installPath.Rel())
			},
		},
	}
}

func (a *AndroidTestImport) AndroidMkEntries() android.AndroidMkEntries {
	entries := a.AndroidAppImport.AndroidMkEntries()
	entries.ExtraEntries = append(entries.ExtraEntries, func(entries *android.AndroidMkEntries) {
		testSuiteComponentEntries(entries, a.testProperties.Test_suites)
		androidMkEntriesWriteTestData(a.data, entries)
	})
	return entries
}

func androidMkWriteTestData(data android.Paths, ret *android.AndroidMkData) {
	var testFiles []string
	for _, d := range data {
@@ -641,3 +661,11 @@ func androidMkWriteTestData(data android.Paths, ret *android.AndroidMkData) {
		})
	}
}

func androidMkEntriesWriteTestData(data android.Paths, entries *android.AndroidMkEntries) {
	var testFiles []string
	for _, d := range data {
		testFiles = append(testFiles, d.String()+":"+d.Rel())
	}
	entries.AddStrings("LOCAL_COMPATIBILITY_SUPPORT_FILES", testFiles...)
}
Loading