diff options
author | Colin Cross <ccross@android.com> | 2017-07-18 02:50:32 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-07-18 02:50:32 +0000 |
commit | f63e3d52c3e5a3afc6884014997c6ceddb8b5d0a (patch) | |
tree | 49e57e157451340e51395786f05acdc86c0bb85d | |
parent | d08b413a4ae82b0a9a44ebfdd7a6ab63a4aebe12 (diff) | |
parent | 2213f75a42d8eb9795c980c1d20568bc3e520c96 (diff) | |
download | build_soong-f63e3d52c3e5a3afc6884014997c6ceddb8b5d0a.tar.gz build_soong-f63e3d52c3e5a3afc6884014997c6ceddb8b5d0a.tar.bz2 build_soong-f63e3d52c3e5a3afc6884014997c6ceddb8b5d0a.zip |
Merge "Add support for data field in cc_benchmark." am: da4a7257b5 am: 86763f3c5a am: 86717af7dd
am: 2213f75a42
Change-Id: I753c3f52394d4e9daa162607717c44c4b8f46eb8
-rw-r--r-- | cc/androidmk.go | 38 | ||||
-rw-r--r-- | cc/test.go | 7 |
2 files changed, 29 insertions, 16 deletions
diff --git a/cc/androidmk.go b/cc/androidmk.go index 2a3b344f..a92a95c0 100644 --- a/cc/androidmk.go +++ b/cc/androidmk.go @@ -88,6 +88,25 @@ func (c *Module) AndroidMk() (ret android.AndroidMkData, err error) { return ret, nil } +func androidMkWriteTestData(data android.Paths, ctx AndroidMkContext, ret *android.AndroidMkData) { + var testFiles []string + for _, d := range data { + rel := d.Rel() + path := d.String() + if !strings.HasSuffix(path, rel) { + panic(fmt.Errorf("path %q does not end with %q", path, rel)) + } + path = strings.TrimSuffix(path, rel) + testFiles = append(testFiles, path+":"+rel) + } + if len(testFiles) > 0 { + ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) error { + fmt.Fprintln(w, "LOCAL_TEST_DATA := "+strings.Join(testFiles, " ")) + return nil + }) + } +} + func (library *libraryDecorator) androidMkWriteExportedFlags(w io.Writer) { exportedFlags := library.exportedFlags() if len(exportedFlags) > 0 { @@ -212,6 +231,8 @@ func (benchmark *benchmarkDecorator) AndroidMk(ctx AndroidMkContext, ret *androi } return nil }) + + androidMkWriteTestData(benchmark.data, ctx, ret) } func (test *testBinary) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) { @@ -229,22 +250,7 @@ func (test *testBinary) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkDa return nil }) - var testFiles []string - for _, d := range test.data { - rel := d.Rel() - path := d.String() - if !strings.HasSuffix(path, rel) { - panic(fmt.Errorf("path %q does not end with %q", path, rel)) - } - path = strings.TrimSuffix(path, rel) - testFiles = append(testFiles, path+":"+rel) - } - if len(testFiles) > 0 { - ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) error { - fmt.Fprintln(w, "LOCAL_TEST_DATA := "+strings.Join(testFiles, " ")) - return nil - }) - } + androidMkWriteTestData(test.data, ctx, ret) } func (test *testLibrary) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) { @@ -298,6 +298,10 @@ func NewTestLibrary(hod android.HostOrDeviceSupported) *Module { } type BenchmarkProperties struct { + // list of files or filegroup modules that provide data that should be installed alongside + // the test + Data []string + // list of compatibility suites (for example "cts", "vts") that the module should be // installed into. Test_suites []string @@ -306,6 +310,7 @@ type BenchmarkProperties struct { type benchmarkDecorator struct { *binaryDecorator Properties BenchmarkProperties + data android.Paths } func (benchmark *benchmarkDecorator) linkerInit(ctx BaseModuleContext) { @@ -324,12 +329,14 @@ func (benchmark *benchmarkDecorator) linkerProps() []interface{} { } func (benchmark *benchmarkDecorator) linkerDeps(ctx DepsContext, deps Deps) Deps { + android.ExtractSourcesDeps(ctx, benchmark.Properties.Data) deps = benchmark.binaryDecorator.linkerDeps(ctx, deps) deps.StaticLibs = append(deps.StaticLibs, "libgoogle-benchmark") return deps } func (benchmark *benchmarkDecorator) install(ctx ModuleContext, file android.Path) { + benchmark.data = ctx.ExpandSources(benchmark.Properties.Data, nil) benchmark.binaryDecorator.baseInstaller.dir = filepath.Join("nativetest", ctx.ModuleName()) benchmark.binaryDecorator.baseInstaller.dir64 = filepath.Join("nativetest64", ctx.ModuleName()) benchmark.binaryDecorator.baseInstaller.install(ctx, file) |