1subdirs = [
2    "androidmk",
3    "bpfix",
4    "cmd/*",
5    "fs",
6    "finder",
7    "jar",
8    "zip",
9    "third_party/zip",
10    "ui/*",
11]
12
13bootstrap_go_package {
14    name: "soong-env",
15    pkgPath: "android/soong/env",
16    srcs: [
17        "env/env.go",
18    ],
19}
20
21bootstrap_go_package {
22    name: "soong",
23    pkgPath: "android/soong",
24    deps: [
25        "blueprint",
26    ],
27    srcs: [
28        "doc.go",
29    ],
30}
31
32bootstrap_go_package {
33    name: "soong-android",
34    pkgPath: "android/soong/android",
35    deps: [
36        "blueprint",
37        "blueprint-bootstrap",
38        "soong",
39        "soong-env",
40    ],
41    srcs: [
42        "android/androidmk.go",
43        "android/api_levels.go",
44        "android/arch.go",
45        "android/config.go",
46        "android/defaults.go",
47        "android/defs.go",
48        "android/expand.go",
49        "android/hooks.go",
50        "android/makevars.go",
51        "android/module.go",
52        "android/mutator.go",
53        "android/namespace.go",
54        "android/neverallow.go",
55        "android/onceper.go",
56        "android/package_ctx.go",
57        "android/paths.go",
58        "android/prebuilt.go",
59        "android/proto.go",
60        "android/register.go",
61        "android/singleton.go",
62        "android/testing.go",
63        "android/util.go",
64        "android/variable.go",
65        "android/writedocs.go",
66
67        // Lock down environment access last
68        "android/env.go",
69    ],
70    testSrcs: [
71        "android/config_test.go",
72        "android/expand_test.go",
73        "android/namespace_test.go",
74        "android/neverallow_test.go",
75        "android/paths_test.go",
76        "android/prebuilt_test.go",
77        "android/util_test.go",
78        "android/variable_test.go",
79    ],
80}
81
82bootstrap_go_package {
83    name: "soong-cc-config",
84    pkgPath: "android/soong/cc/config",
85    deps: [
86        "soong-android",
87    ],
88    srcs: [
89        "cc/config/clang.go",
90        "cc/config/global.go",
91        "cc/config/tidy.go",
92        "cc/config/toolchain.go",
93
94        "cc/config/arm_device.go",
95        "cc/config/arm64_device.go",
96        "cc/config/mips_device.go",
97        "cc/config/mips64_device.go",
98        "cc/config/x86_device.go",
99        "cc/config/x86_64_device.go",
100
101        "cc/config/x86_darwin_host.go",
102        "cc/config/x86_linux_host.go",
103        "cc/config/x86_linux_bionic_host.go",
104        "cc/config/x86_windows_host.go",
105    ],
106    testSrcs: [
107        "cc/config/tidy_test.go",
108    ],
109}
110
111bootstrap_go_package {
112    name: "soong-cc",
113    pkgPath: "android/soong/cc",
114    deps: [
115        "blueprint",
116        "blueprint-pathtools",
117        "soong",
118        "soong-android",
119        "soong-cc-config",
120        "soong-genrule",
121    ],
122    srcs: [
123        "cc/androidmk.go",
124        "cc/builder.go",
125        "cc/cc.go",
126        "cc/check.go",
127        "cc/coverage.go",
128        "cc/gen.go",
129        "cc/lto.go",
130        "cc/makevars.go",
131        "cc/pgo.go",
132        "cc/prebuilt.go",
133        "cc/proto.go",
134        "cc/relocation_packer.go",
135        "cc/rs.go",
136        "cc/sanitize.go",
137        "cc/sabi.go",
138        "cc/stl.go",
139        "cc/strip.go",
140        "cc/tidy.go",
141        "cc/util.go",
142        "cc/vndk.go",
143        "cc/vndk_prebuilt.go",
144
145        "cc/cmakelists.go",
146        "cc/compiler.go",
147        "cc/installer.go",
148        "cc/linker.go",
149
150        "cc/binary.go",
151        "cc/library.go",
152        "cc/object.go",
153        "cc/test.go",
154        "cc/toolchain_library.go",
155
156        "cc/ndk_prebuilt.go",
157        "cc/ndk_headers.go",
158        "cc/ndk_library.go",
159        "cc/ndk_sysroot.go",
160
161        "cc/llndk_library.go",
162
163        "cc/kernel_headers.go",
164
165        "cc/genrule.go",
166
167        "cc/vendor_public_library.go",
168    ],
169    testSrcs: [
170        "cc/cc_test.go",
171        "cc/gen_test.go",
172        "cc/library_test.go",
173        "cc/test_data_test.go",
174    ],
175    pluginFor: ["soong_build"],
176}
177
178bootstrap_go_package {
179    name: "soong-genrule",
180    pkgPath: "android/soong/genrule",
181    deps: [
182        "blueprint",
183        "blueprint-pathtools",
184        "soong",
185        "soong-android",
186        "soong-shared",
187    ],
188    srcs: [
189        "genrule/filegroup.go",
190        "genrule/genrule.go",
191    ],
192    pluginFor: ["soong_build"],
193}
194
195bootstrap_go_package {
196    name: "soong-phony",
197    pkgPath: "android/soong/phony",
198    deps: [
199        "blueprint",
200        "soong-android",
201    ],
202    srcs: [
203        "phony/phony.go",
204    ],
205    pluginFor: ["soong_build"],
206}
207
208bootstrap_go_package {
209    name: "soong-java",
210    pkgPath: "android/soong/java",
211    deps: [
212        "blueprint",
213        "blueprint-pathtools",
214        "soong",
215        "soong-android",
216        "soong-genrule",
217        "soong-java-config",
218    ],
219    srcs: [
220        "java/aapt2.go",
221        "java/aar.go",
222        "java/android_resources.go",
223        "java/androidmk.go",
224        "java/app_builder.go",
225        "java/app.go",
226        "java/builder.go",
227        "java/dex.go",
228        "java/droiddoc.go",
229        "java/gen.go",
230        "java/genrule.go",
231        "java/jacoco.go",
232        "java/java.go",
233        "java/java_resources.go",
234        "java/proto.go",
235        "java/support_libraries.go",
236        "java/system_modules.go",
237    ],
238    testSrcs: [
239        "java/app_test.go",
240        "java/java_test.go",
241    ],
242    pluginFor: ["soong_build"],
243}
244
245bootstrap_go_package {
246    name: "soong-java-config",
247    pkgPath: "android/soong/java/config",
248    deps: [
249        "blueprint-proptools",
250        "soong-android",
251    ],
252    srcs: [
253        "java/config/config.go",
254        "java/config/error_prone.go",
255        "java/config/kotlin.go",
256        "java/config/makevars.go",
257    ],
258}
259
260bootstrap_go_package {
261    name: "soong-python",
262    pkgPath: "android/soong/python",
263    deps: [
264        "blueprint",
265        "soong-android",
266    ],
267    srcs: [
268        "python/androidmk.go",
269        "python/binary.go",
270        "python/builder.go",
271        "python/defaults.go",
272        "python/installer.go",
273        "python/library.go",
274        "python/python.go",
275        "python/test.go",
276    ],
277    testSrcs: [
278        "python/python_test.go",
279    ],
280    pluginFor: ["soong_build"],
281}
282
283bootstrap_go_package {
284    name: "soong-shared",
285    pkgPath: "android/soong/shared",
286    srcs: [
287        "shared/paths.go",
288    ],
289}
290
291//
292// Defaults to enable various configurations of host bionic
293//
294
295cc_defaults {
296    name: "linux_bionic_supported",
297    host_supported: true,
298    target: {
299        host: {
300            enabled: false,
301        },
302        linux_bionic: {
303            enabled: true,
304        },
305    },
306}
307
308//
309// C static libraries extracted from the gcc toolchain
310//
311
312toolchain_library {
313    name: "libatomic",
314    defaults: ["linux_bionic_supported"],
315    vendor_available: true,
316    arch: {
317        arm: {
318            instruction_set: "arm",
319        },
320    },
321}
322
323toolchain_library {
324    name: "libgcc",
325    defaults: ["linux_bionic_supported"],
326    vendor_available: true,
327    arch: {
328        arm: {
329            instruction_set: "arm",
330        },
331    },
332}
333
334toolchain_library {
335    name: "libwinpthread",
336    host_supported: true,
337    enabled: false,
338    target: {
339        windows: {
340            enabled: true,
341        },
342    },
343}
344
345toolchain_library {
346    name: "libgcov",
347    defaults: ["linux_bionic_supported"],
348    arch: {
349        arm: {
350            instruction_set: "arm",
351        },
352    },
353}
354
355kernel_headers {
356    name: "device_kernel_headers",
357    vendor: true,
358}
359
360cc_genrule {
361    name: "host_bionic_linker_asm",
362    host_supported: true,
363    device_supported: false,
364    target: {
365        linux_bionic: {
366            enabled: true,
367        },
368        linux_glibc: {
369            enabled: false,
370        },
371        darwin: {
372            enabled: false,
373        },
374    },
375    tools: ["extract_linker"],
376    cmd: "$(location) -s $(out) $(in)",
377    srcs: [":linker"],
378    out: ["linker.s"],
379}
380
381cc_genrule {
382    name: "host_bionic_linker_script",
383    host_supported: true,
384    device_supported: false,
385    target: {
386        linux_bionic: {
387            enabled: true,
388        },
389        linux_glibc: {
390            enabled: false,
391        },
392        darwin: {
393            enabled: false,
394        },
395    },
396    tools: ["extract_linker"],
397    cmd: "$(location) -T $(out) $(in)",
398    srcs: [":linker"],
399    out: ["linker.script"],
400}
401