blob: 4a5cf5ee6723438c2c594b4825ece76811d75ea0 [file] [log] [blame]
Paul Duffina80fdec2019-12-03 15:25:00 +00001// Copyright (C) 2019 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package sdk
16
17import (
18 "testing"
19
20 "android/soong/cc"
21)
22
Paul Duffind835daa2019-11-30 17:49:09 +000023func testSdkWithCc(t *testing.T, bp string) *testSdkResult {
24 t.Helper()
25
26 fs := map[string][]byte{
Paul Duffina7cd8c82019-12-11 20:00:57 +000027 "Test.cpp": nil,
28 "include/Test.h": nil,
29 "arm64/include/Arm64Test.h": nil,
30 "libfoo.so": nil,
31 "aidl/foo/bar/Test.aidl": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000032 }
33 return testSdkWithFs(t, bp, fs)
34}
35
Paul Duffina80fdec2019-12-03 15:25:00 +000036// Contains tests for SDK members provided by the cc package.
37
38func TestSdkIsCompileMultilibBoth(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +000039 result := testSdkWithCc(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +000040 sdk {
41 name: "mysdk",
42 native_shared_libs: ["sdkmember"],
43 }
44
45 cc_library_shared {
46 name: "sdkmember",
47 srcs: ["Test.cpp"],
48 system_shared_libs: [],
49 stl: "none",
50 }
51 `)
52
53 armOutput := result.Module("sdkmember", "android_arm_armv7-a-neon_core_shared").(*cc.Module).OutputFile()
54 arm64Output := result.Module("sdkmember", "android_arm64_armv8-a_core_shared").(*cc.Module).OutputFile()
55
56 var inputs []string
57 buildParams := result.Module("mysdk", "android_common").BuildParamsForTests()
58 for _, bp := range buildParams {
59 if bp.Input != nil {
60 inputs = append(inputs, bp.Input.String())
61 }
62 }
63
64 // ensure that both 32/64 outputs are inputs of the sdk snapshot
65 ensureListContains(t, inputs, armOutput.String())
66 ensureListContains(t, inputs, arm64Output.String())
67}
68
69func TestBasicSdkWithCc(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +000070 result := testSdkWithCc(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +000071 sdk {
72 name: "mysdk",
73 native_shared_libs: ["sdkmember"],
74 }
75
76 sdk_snapshot {
77 name: "mysdk@1",
78 native_shared_libs: ["sdkmember_mysdk_1"],
79 }
80
81 sdk_snapshot {
82 name: "mysdk@2",
83 native_shared_libs: ["sdkmember_mysdk_2"],
84 }
85
86 cc_prebuilt_library_shared {
87 name: "sdkmember",
88 srcs: ["libfoo.so"],
89 prefer: false,
90 system_shared_libs: [],
91 stl: "none",
92 }
93
94 cc_prebuilt_library_shared {
95 name: "sdkmember_mysdk_1",
96 sdk_member_name: "sdkmember",
97 srcs: ["libfoo.so"],
98 system_shared_libs: [],
99 stl: "none",
100 }
101
102 cc_prebuilt_library_shared {
103 name: "sdkmember_mysdk_2",
104 sdk_member_name: "sdkmember",
105 srcs: ["libfoo.so"],
106 system_shared_libs: [],
107 stl: "none",
108 }
109
110 cc_library_shared {
111 name: "mycpplib",
112 srcs: ["Test.cpp"],
113 shared_libs: ["sdkmember"],
114 system_shared_libs: [],
115 stl: "none",
116 }
117
118 apex {
119 name: "myapex",
120 native_shared_libs: ["mycpplib"],
121 uses_sdks: ["mysdk@1"],
122 key: "myapex.key",
123 certificate: ":myapex.cert",
124 }
125
126 apex {
127 name: "myapex2",
128 native_shared_libs: ["mycpplib"],
129 uses_sdks: ["mysdk@2"],
130 key: "myapex.key",
131 certificate: ":myapex.cert",
132 }
133 `)
134
135 sdkMemberV1 := result.ModuleForTests("sdkmember_mysdk_1", "android_arm64_armv8-a_core_shared_myapex").Rule("toc").Output
136 sdkMemberV2 := result.ModuleForTests("sdkmember_mysdk_2", "android_arm64_armv8-a_core_shared_myapex2").Rule("toc").Output
137
138 cpplibForMyApex := result.ModuleForTests("mycpplib", "android_arm64_armv8-a_core_shared_myapex")
139 cpplibForMyApex2 := result.ModuleForTests("mycpplib", "android_arm64_armv8-a_core_shared_myapex2")
140
141 // Depending on the uses_sdks value, different libs are linked
142 ensureListContains(t, pathsToStrings(cpplibForMyApex.Rule("ld").Implicits), sdkMemberV1.String())
143 ensureListContains(t, pathsToStrings(cpplibForMyApex2.Rule("ld").Implicits), sdkMemberV2.String())
144}
145
Paul Duffinc62a5102019-12-11 18:34:15 +0000146func TestSnapshotWithCcDuplicateHeaders(t *testing.T) {
147 result := testSdkWithCc(t, `
148 sdk {
149 name: "mysdk",
150 native_shared_libs: ["mynativelib1", "mynativelib2"],
151 }
152
153 cc_library_shared {
154 name: "mynativelib1",
155 srcs: [
156 "Test.cpp",
157 ],
158 export_include_dirs: ["include"],
159 system_shared_libs: [],
160 stl: "none",
161 }
162
163 cc_library_shared {
164 name: "mynativelib2",
165 srcs: [
166 "Test.cpp",
167 ],
168 export_include_dirs: ["include"],
169 system_shared_libs: [],
170 stl: "none",
171 }
172 `)
173
174 result.CheckSnapshot("mysdk", "android_common", "",
175 checkAllCopyRules(`
176include/Test.h -> include/include/Test.h
177.intermediates/mynativelib1/android_arm64_armv8-a_core_shared/mynativelib1.so -> arm64/lib/mynativelib1.so
178.intermediates/mynativelib1/android_arm_armv7-a-neon_core_shared/mynativelib1.so -> arm/lib/mynativelib1.so
179.intermediates/mynativelib2/android_arm64_armv8-a_core_shared/mynativelib2.so -> arm64/lib/mynativelib2.so
180.intermediates/mynativelib2/android_arm_armv7-a-neon_core_shared/mynativelib2.so -> arm/lib/mynativelib2.so
181`),
182 )
183}
184
Paul Duffina7cd8c82019-12-11 20:00:57 +0000185// Verify that when the shared library has some common and some arch specific properties that the generated
186// snapshot is optimized properly.
187func TestSnapshotWithCcSharedLibraryCommonProperties(t *testing.T) {
188 result := testSdkWithCc(t, `
189 sdk {
190 name: "mysdk",
191 native_shared_libs: ["mynativelib"],
192 }
193
194 cc_library_shared {
195 name: "mynativelib",
196 srcs: [
197 "Test.cpp",
198 "aidl/foo/bar/Test.aidl",
199 ],
200 export_include_dirs: ["include"],
201 arch: {
202 arm64: {
203 export_system_include_dirs: ["arm64/include"],
204 },
205 },
206 system_shared_libs: [],
207 stl: "none",
208 }
209 `)
210
211 result.CheckSnapshot("mysdk", "android_common", "",
212 checkAndroidBpContents(`
213// This is auto-generated. DO NOT EDIT.
214
215cc_prebuilt_library_shared {
216 name: "mysdk_mynativelib@current",
217 sdk_member_name: "mynativelib",
218 export_include_dirs: ["include/include"],
219 arch: {
220 arm64: {
221 srcs: ["arm64/lib/mynativelib.so"],
222 export_system_include_dirs: ["arm64/include/arm64/include"],
223 },
224 arm: {
225 srcs: ["arm/lib/mynativelib.so"],
226 },
227 },
228 stl: "none",
229 system_shared_libs: [],
230}
231
232cc_prebuilt_library_shared {
233 name: "mynativelib",
234 prefer: false,
235 export_include_dirs: ["include/include"],
236 arch: {
237 arm64: {
238 srcs: ["arm64/lib/mynativelib.so"],
239 export_system_include_dirs: ["arm64/include/arm64/include"],
240 },
241 arm: {
242 srcs: ["arm/lib/mynativelib.so"],
243 },
244 },
245 stl: "none",
246 system_shared_libs: [],
247}
248
249sdk_snapshot {
250 name: "mysdk@current",
251 native_shared_libs: ["mysdk_mynativelib@current"],
252}
253`),
254 checkAllCopyRules(`
255include/Test.h -> include/include/Test.h
256.intermediates/mynativelib/android_arm64_armv8-a_core_shared/mynativelib.so -> arm64/lib/mynativelib.so
257arm64/include/Arm64Test.h -> arm64/include/arm64/include/Arm64Test.h
258.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/mynativelib.so -> arm/lib/mynativelib.so`),
259 )
260}
261
Paul Duffin9ab556f2019-12-11 18:42:17 +0000262func TestSnapshotWithCcSharedLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000263 result := testSdkWithCc(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000264 sdk {
265 name: "mysdk",
266 native_shared_libs: ["mynativelib"],
267 }
268
269 cc_library_shared {
270 name: "mynativelib",
271 srcs: [
272 "Test.cpp",
273 "aidl/foo/bar/Test.aidl",
274 ],
275 export_include_dirs: ["include"],
276 aidl: {
277 export_aidl_headers: true,
278 },
279 system_shared_libs: [],
280 stl: "none",
281 }
282 `)
283
Paul Duffin593b3c92019-12-05 14:31:48 +0000284 result.CheckSnapshot("mysdk", "android_common", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000285 checkAndroidBpContents(`
286// This is auto-generated. DO NOT EDIT.
287
288cc_prebuilt_library_shared {
289 name: "mysdk_mynativelib@current",
290 sdk_member_name: "mynativelib",
291 arch: {
292 arm64: {
293 srcs: ["arm64/lib/mynativelib.so"],
294 export_include_dirs: [
295 "arm64/include/include",
296 "arm64/include_gen/mynativelib",
297 ],
298 },
299 arm: {
300 srcs: ["arm/lib/mynativelib.so"],
301 export_include_dirs: [
302 "arm/include/include",
303 "arm/include_gen/mynativelib",
304 ],
305 },
306 },
307 stl: "none",
308 system_shared_libs: [],
309}
310
311cc_prebuilt_library_shared {
312 name: "mynativelib",
313 prefer: false,
314 arch: {
315 arm64: {
316 srcs: ["arm64/lib/mynativelib.so"],
317 export_include_dirs: [
318 "arm64/include/include",
319 "arm64/include_gen/mynativelib",
320 ],
321 },
322 arm: {
323 srcs: ["arm/lib/mynativelib.so"],
324 export_include_dirs: [
325 "arm/include/include",
326 "arm/include_gen/mynativelib",
327 ],
328 },
329 },
330 stl: "none",
331 system_shared_libs: [],
332}
333
334sdk_snapshot {
335 name: "mysdk@current",
336 native_shared_libs: ["mysdk_mynativelib@current"],
337}
338`),
339 checkAllCopyRules(`
340.intermediates/mynativelib/android_arm64_armv8-a_core_shared/mynativelib.so -> arm64/lib/mynativelib.so
341include/Test.h -> arm64/include/include/Test.h
342.intermediates/mynativelib/android_arm64_armv8-a_core_shared/gen/aidl/aidl/foo/bar/Test.h -> arm64/include_gen/mynativelib/aidl/foo/bar/Test.h
343.intermediates/mynativelib/android_arm64_armv8-a_core_shared/gen/aidl/aidl/foo/bar/BnTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BnTest.h
344.intermediates/mynativelib/android_arm64_armv8-a_core_shared/gen/aidl/aidl/foo/bar/BpTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BpTest.h
345.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/mynativelib.so -> arm/lib/mynativelib.so
346include/Test.h -> arm/include/include/Test.h
347.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/gen/aidl/aidl/foo/bar/Test.h -> arm/include_gen/mynativelib/aidl/foo/bar/Test.h
348.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/gen/aidl/aidl/foo/bar/BnTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BnTest.h
349.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/gen/aidl/aidl/foo/bar/BpTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BpTest.h
350`),
351 )
352}
353
Paul Duffin9ab556f2019-12-11 18:42:17 +0000354func TestHostSnapshotWithCcSharedLibrary(t *testing.T) {
Paul Duffina80fdec2019-12-03 15:25:00 +0000355 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
356 SkipIfNotLinux(t)
357
Paul Duffind835daa2019-11-30 17:49:09 +0000358 result := testSdkWithCc(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000359 sdk {
360 name: "mysdk",
361 device_supported: false,
362 host_supported: true,
363 native_shared_libs: ["mynativelib"],
364 }
365
366 cc_library_shared {
367 name: "mynativelib",
368 device_supported: false,
369 host_supported: true,
370 srcs: [
371 "Test.cpp",
372 "aidl/foo/bar/Test.aidl",
373 ],
374 export_include_dirs: ["include"],
375 aidl: {
376 export_aidl_headers: true,
377 },
378 system_shared_libs: [],
379 stl: "none",
380 }
381 `)
382
Paul Duffin593b3c92019-12-05 14:31:48 +0000383 result.CheckSnapshot("mysdk", "linux_glibc_common", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000384 checkAndroidBpContents(`
385// This is auto-generated. DO NOT EDIT.
386
387cc_prebuilt_library_shared {
388 name: "mysdk_mynativelib@current",
389 sdk_member_name: "mynativelib",
390 device_supported: false,
391 host_supported: true,
392 arch: {
393 x86_64: {
394 srcs: ["x86_64/lib/mynativelib.so"],
395 export_include_dirs: [
396 "x86_64/include/include",
397 "x86_64/include_gen/mynativelib",
398 ],
399 },
400 x86: {
401 srcs: ["x86/lib/mynativelib.so"],
402 export_include_dirs: [
403 "x86/include/include",
404 "x86/include_gen/mynativelib",
405 ],
406 },
407 },
408 stl: "none",
409 system_shared_libs: [],
410}
411
412cc_prebuilt_library_shared {
413 name: "mynativelib",
414 prefer: false,
415 device_supported: false,
416 host_supported: true,
417 arch: {
418 x86_64: {
419 srcs: ["x86_64/lib/mynativelib.so"],
420 export_include_dirs: [
421 "x86_64/include/include",
422 "x86_64/include_gen/mynativelib",
423 ],
424 },
425 x86: {
426 srcs: ["x86/lib/mynativelib.so"],
427 export_include_dirs: [
428 "x86/include/include",
429 "x86/include_gen/mynativelib",
430 ],
431 },
432 },
433 stl: "none",
434 system_shared_libs: [],
435}
436
437sdk_snapshot {
438 name: "mysdk@current",
439 device_supported: false,
440 host_supported: true,
441 native_shared_libs: ["mysdk_mynativelib@current"],
442}
443`),
444 checkAllCopyRules(`
445.intermediates/mynativelib/linux_glibc_x86_64_shared/mynativelib.so -> x86_64/lib/mynativelib.so
446include/Test.h -> x86_64/include/include/Test.h
447.intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/Test.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/Test.h
448.intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/BnTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BnTest.h
449.intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/BpTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BpTest.h
450.intermediates/mynativelib/linux_glibc_x86_shared/mynativelib.so -> x86/lib/mynativelib.so
451include/Test.h -> x86/include/include/Test.h
452.intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/Test.h -> x86/include_gen/mynativelib/aidl/foo/bar/Test.h
453.intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/BnTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BnTest.h
454.intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/BpTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BpTest.h
455`),
456 )
457}
Paul Duffin9ab556f2019-12-11 18:42:17 +0000458
459func TestSnapshotWithCcStaticLibrary(t *testing.T) {
460 result := testSdkWithCc(t, `
461 sdk {
462 name: "mysdk",
463 native_static_libs: ["mynativelib"],
464 }
465
466 cc_library_static {
467 name: "mynativelib",
468 srcs: [
469 "Test.cpp",
470 "aidl/foo/bar/Test.aidl",
471 ],
472 export_include_dirs: ["include"],
473 aidl: {
474 export_aidl_headers: true,
475 },
476 system_shared_libs: [],
477 stl: "none",
478 }
479 `)
480
481 result.CheckSnapshot("mysdk", "android_common", "",
482 checkAndroidBpContents(`
483// This is auto-generated. DO NOT EDIT.
484
485cc_prebuilt_library_static {
486 name: "mysdk_mynativelib@current",
487 sdk_member_name: "mynativelib",
488 arch: {
489 arm64: {
490 srcs: ["arm64/lib/mynativelib.a"],
491 export_include_dirs: [
492 "arm64/include/include",
493 "arm64/include_gen/mynativelib",
494 ],
495 },
496 arm: {
497 srcs: ["arm/lib/mynativelib.a"],
498 export_include_dirs: [
499 "arm/include/include",
500 "arm/include_gen/mynativelib",
501 ],
502 },
503 },
504 stl: "none",
505 system_shared_libs: [],
506}
507
508cc_prebuilt_library_static {
509 name: "mynativelib",
510 prefer: false,
511 arch: {
512 arm64: {
513 srcs: ["arm64/lib/mynativelib.a"],
514 export_include_dirs: [
515 "arm64/include/include",
516 "arm64/include_gen/mynativelib",
517 ],
518 },
519 arm: {
520 srcs: ["arm/lib/mynativelib.a"],
521 export_include_dirs: [
522 "arm/include/include",
523 "arm/include_gen/mynativelib",
524 ],
525 },
526 },
527 stl: "none",
528 system_shared_libs: [],
529}
530
531sdk_snapshot {
532 name: "mysdk@current",
533 native_static_libs: ["mysdk_mynativelib@current"],
534}
535`),
536 checkAllCopyRules(`
537.intermediates/mynativelib/android_arm64_armv8-a_core_static/mynativelib.a -> arm64/lib/mynativelib.a
538include/Test.h -> arm64/include/include/Test.h
539.intermediates/mynativelib/android_arm64_armv8-a_core_static/gen/aidl/aidl/foo/bar/Test.h -> arm64/include_gen/mynativelib/aidl/foo/bar/Test.h
540.intermediates/mynativelib/android_arm64_armv8-a_core_static/gen/aidl/aidl/foo/bar/BnTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BnTest.h
541.intermediates/mynativelib/android_arm64_armv8-a_core_static/gen/aidl/aidl/foo/bar/BpTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BpTest.h
542.intermediates/mynativelib/android_arm_armv7-a-neon_core_static/mynativelib.a -> arm/lib/mynativelib.a
543include/Test.h -> arm/include/include/Test.h
544.intermediates/mynativelib/android_arm_armv7-a-neon_core_static/gen/aidl/aidl/foo/bar/Test.h -> arm/include_gen/mynativelib/aidl/foo/bar/Test.h
545.intermediates/mynativelib/android_arm_armv7-a-neon_core_static/gen/aidl/aidl/foo/bar/BnTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BnTest.h
546.intermediates/mynativelib/android_arm_armv7-a-neon_core_static/gen/aidl/aidl/foo/bar/BpTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BpTest.h
547`),
548 )
549}
550
551func TestHostSnapshotWithCcStaticLibrary(t *testing.T) {
552 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
553 SkipIfNotLinux(t)
554
555 result := testSdkWithCc(t, `
556 sdk {
557 name: "mysdk",
558 device_supported: false,
559 host_supported: true,
560 native_static_libs: ["mynativelib"],
561 }
562
563 cc_library_static {
564 name: "mynativelib",
565 device_supported: false,
566 host_supported: true,
567 srcs: [
568 "Test.cpp",
569 "aidl/foo/bar/Test.aidl",
570 ],
571 export_include_dirs: ["include"],
572 aidl: {
573 export_aidl_headers: true,
574 },
575 system_shared_libs: [],
576 stl: "none",
577 }
578 `)
579
580 result.CheckSnapshot("mysdk", "linux_glibc_common", "",
581 checkAndroidBpContents(`
582// This is auto-generated. DO NOT EDIT.
583
584cc_prebuilt_library_static {
585 name: "mysdk_mynativelib@current",
586 sdk_member_name: "mynativelib",
587 device_supported: false,
588 host_supported: true,
589 arch: {
590 x86_64: {
591 srcs: ["x86_64/lib/mynativelib.a"],
592 export_include_dirs: [
593 "x86_64/include/include",
594 "x86_64/include_gen/mynativelib",
595 ],
596 },
597 x86: {
598 srcs: ["x86/lib/mynativelib.a"],
599 export_include_dirs: [
600 "x86/include/include",
601 "x86/include_gen/mynativelib",
602 ],
603 },
604 },
605 stl: "none",
606 system_shared_libs: [],
607}
608
609cc_prebuilt_library_static {
610 name: "mynativelib",
611 prefer: false,
612 device_supported: false,
613 host_supported: true,
614 arch: {
615 x86_64: {
616 srcs: ["x86_64/lib/mynativelib.a"],
617 export_include_dirs: [
618 "x86_64/include/include",
619 "x86_64/include_gen/mynativelib",
620 ],
621 },
622 x86: {
623 srcs: ["x86/lib/mynativelib.a"],
624 export_include_dirs: [
625 "x86/include/include",
626 "x86/include_gen/mynativelib",
627 ],
628 },
629 },
630 stl: "none",
631 system_shared_libs: [],
632}
633
634sdk_snapshot {
635 name: "mysdk@current",
636 device_supported: false,
637 host_supported: true,
638 native_static_libs: ["mysdk_mynativelib@current"],
639}
640`),
641 checkAllCopyRules(`
642.intermediates/mynativelib/linux_glibc_x86_64_static/mynativelib.a -> x86_64/lib/mynativelib.a
643include/Test.h -> x86_64/include/include/Test.h
644.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/Test.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/Test.h
645.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BnTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BnTest.h
646.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BpTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BpTest.h
647.intermediates/mynativelib/linux_glibc_x86_static/mynativelib.a -> x86/lib/mynativelib.a
648include/Test.h -> x86/include/include/Test.h
649.intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/Test.h -> x86/include_gen/mynativelib/aidl/foo/bar/Test.h
650.intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/BnTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BnTest.h
651.intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/BpTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BpTest.h
652`),
653 )
654}