Android.bp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730
  1. subdirs = [
  2. "androidmk",
  3. "bpfix",
  4. "cmd/*",
  5. "fs",
  6. "finder",
  7. "jar",
  8. "zip",
  9. "third_party/zip",
  10. "ui/*",
  11. ]
  12. bootstrap_go_package {
  13. name: "soong-env",
  14. pkgPath: "android/soong/env",
  15. srcs: [
  16. "env/env.go",
  17. ],
  18. }
  19. bootstrap_go_package {
  20. name: "soong",
  21. pkgPath: "android/soong",
  22. deps: [
  23. "blueprint",
  24. ],
  25. srcs: [
  26. "doc.go",
  27. ],
  28. }
  29. bootstrap_go_package {
  30. name: "soong-android",
  31. pkgPath: "android/soong/android",
  32. deps: [
  33. "blueprint",
  34. "blueprint-bootstrap",
  35. "soong",
  36. "soong-android-soongconfig",
  37. "soong-env",
  38. "soong-shared",
  39. "soong-ui-metrics_proto",
  40. ],
  41. srcs: [
  42. "android/androidmk.go",
  43. "android/apex.go",
  44. "android/api_levels.go",
  45. "android/arch.go",
  46. "android/config.go",
  47. "android/csuite_config.go",
  48. "android/defaults.go",
  49. "android/defs.go",
  50. "android/expand.go",
  51. "android/filegroup.go",
  52. "android/hooks.go",
  53. "android/image.go",
  54. "android/makevars.go",
  55. "android/metrics.go",
  56. "android/module.go",
  57. "android/mutator.go",
  58. "android/namespace.go",
  59. "android/neverallow.go",
  60. "android/notices.go",
  61. "android/onceper.go",
  62. "android/override_module.go",
  63. "android/package.go",
  64. "android/package_ctx.go",
  65. "android/path_properties.go",
  66. "android/paths.go",
  67. "android/prebuilt.go",
  68. "android/prebuilt_etc.go",
  69. "android/proto.go",
  70. "android/register.go",
  71. "android/rule_builder.go",
  72. "android/sandbox.go",
  73. "android/sdk.go",
  74. "android/sh_binary.go",
  75. "android/singleton.go",
  76. "android/soong_config_modules.go",
  77. "android/testing.go",
  78. "android/util.go",
  79. "android/variable.go",
  80. "android/visibility.go",
  81. "android/vts_config.go",
  82. "android/writedocs.go",
  83. // Lock down environment access last
  84. "android/env.go",
  85. ],
  86. testSrcs: [
  87. "android/android_test.go",
  88. "android/androidmk_test.go",
  89. "android/arch_test.go",
  90. "android/config_test.go",
  91. "android/csuite_config_test.go",
  92. "android/expand_test.go",
  93. "android/module_test.go",
  94. "android/mutator_test.go",
  95. "android/namespace_test.go",
  96. "android/neverallow_test.go",
  97. "android/onceper_test.go",
  98. "android/package_test.go",
  99. "android/path_properties_test.go",
  100. "android/paths_test.go",
  101. "android/prebuilt_test.go",
  102. "android/prebuilt_etc_test.go",
  103. "android/rule_builder_test.go",
  104. "android/soong_config_modules_test.go",
  105. "android/util_test.go",
  106. "android/variable_test.go",
  107. "android/visibility_test.go",
  108. "android/vts_config_test.go",
  109. ],
  110. }
  111. bootstrap_go_package {
  112. name: "soong-android-soongconfig",
  113. pkgPath: "android/soong/android/soongconfig",
  114. deps: [
  115. "blueprint",
  116. "blueprint-parser",
  117. "blueprint-proptools",
  118. ],
  119. srcs: [
  120. "android/soongconfig/config.go",
  121. "android/soongconfig/modules.go",
  122. ],
  123. }
  124. bootstrap_go_package {
  125. name: "soong-cc-config",
  126. pkgPath: "android/soong/cc/config",
  127. deps: [
  128. "soong-android",
  129. ],
  130. srcs: [
  131. "cc/config/clang.go",
  132. "cc/config/global.go",
  133. "cc/config/tidy.go",
  134. "cc/config/toolchain.go",
  135. "cc/config/vndk.go",
  136. "cc/config/arm_device.go",
  137. "cc/config/arm64_device.go",
  138. "cc/config/arm64_fuchsia_device.go",
  139. "cc/config/x86_device.go",
  140. "cc/config/x86_64_device.go",
  141. "cc/config/x86_64_fuchsia_device.go",
  142. "cc/config/x86_darwin_host.go",
  143. "cc/config/x86_linux_host.go",
  144. "cc/config/x86_linux_bionic_host.go",
  145. "cc/config/x86_windows_host.go",
  146. ],
  147. testSrcs: [
  148. "cc/config/tidy_test.go",
  149. ],
  150. }
  151. bootstrap_go_package {
  152. name: "soong-cc",
  153. pkgPath: "android/soong/cc",
  154. deps: [
  155. "blueprint",
  156. "blueprint-pathtools",
  157. "soong",
  158. "soong-android",
  159. "soong-cc-config",
  160. "soong-genrule",
  161. "soong-tradefed",
  162. ],
  163. srcs: [
  164. "cc/androidmk.go",
  165. "cc/builder.go",
  166. "cc/cc.go",
  167. "cc/ccdeps.go",
  168. "cc/check.go",
  169. "cc/coverage.go",
  170. "cc/gen.go",
  171. "cc/linkable.go",
  172. "cc/lto.go",
  173. "cc/makevars.go",
  174. "cc/pgo.go",
  175. "cc/prebuilt.go",
  176. "cc/proto.go",
  177. "cc/rs.go",
  178. "cc/sanitize.go",
  179. "cc/sabi.go",
  180. "cc/snapshot_utils.go",
  181. "cc/stl.go",
  182. "cc/strip.go",
  183. "cc/sysprop.go",
  184. "cc/tidy.go",
  185. "cc/util.go",
  186. "cc/vendor_snapshot.go",
  187. "cc/vndk.go",
  188. "cc/vndk_prebuilt.go",
  189. "cc/cflag_artifacts.go",
  190. "cc/cmakelists.go",
  191. "cc/compdb.go",
  192. "cc/compiler.go",
  193. "cc/installer.go",
  194. "cc/linker.go",
  195. "cc/binary.go",
  196. "cc/binary_sdk_member.go",
  197. "cc/fuzz.go",
  198. "cc/library.go",
  199. "cc/library_headers.go",
  200. "cc/library_sdk_member.go",
  201. "cc/object.go",
  202. "cc/test.go",
  203. "cc/toolchain_library.go",
  204. "cc/ndk_prebuilt.go",
  205. "cc/ndk_headers.go",
  206. "cc/ndk_library.go",
  207. "cc/ndk_sysroot.go",
  208. "cc/llndk_library.go",
  209. "cc/kernel_headers.go",
  210. "cc/genrule.go",
  211. "cc/vendor_public_library.go",
  212. "cc/testing.go",
  213. ],
  214. testSrcs: [
  215. "cc/cc_test.go",
  216. "cc/compiler_test.go",
  217. "cc/gen_test.go",
  218. "cc/genrule_test.go",
  219. "cc/library_headers_test.go",
  220. "cc/library_test.go",
  221. "cc/object_test.go",
  222. "cc/prebuilt_test.go",
  223. "cc/proto_test.go",
  224. "cc/test_data_test.go",
  225. ],
  226. pluginFor: ["soong_build"],
  227. }
  228. bootstrap_go_package {
  229. name: "soong-genrule",
  230. pkgPath: "android/soong/genrule",
  231. deps: [
  232. "blueprint",
  233. "blueprint-pathtools",
  234. "soong",
  235. "soong-android",
  236. "soong-shared",
  237. ],
  238. srcs: [
  239. "genrule/genrule.go",
  240. ],
  241. testSrcs: [
  242. "genrule/genrule_test.go",
  243. ],
  244. pluginFor: ["soong_build"],
  245. }
  246. bootstrap_go_package {
  247. name: "soong-phony",
  248. pkgPath: "android/soong/phony",
  249. deps: [
  250. "blueprint",
  251. "soong-android",
  252. ],
  253. srcs: [
  254. "phony/phony.go",
  255. ],
  256. pluginFor: ["soong_build"],
  257. }
  258. bootstrap_go_package {
  259. name: "soong-java",
  260. pkgPath: "android/soong/java",
  261. deps: [
  262. "blueprint",
  263. "blueprint-pathtools",
  264. "soong",
  265. "soong-android",
  266. "soong-cc",
  267. "soong-dexpreopt",
  268. "soong-genrule",
  269. "soong-java-config",
  270. "soong-tradefed",
  271. ],
  272. srcs: [
  273. "java/aapt2.go",
  274. "java/aar.go",
  275. "java/android_manifest.go",
  276. "java/android_resources.go",
  277. "java/androidmk.go",
  278. "java/app_builder.go",
  279. "java/app.go",
  280. "java/builder.go",
  281. "java/device_host_converter.go",
  282. "java/dex.go",
  283. "java/dexpreopt.go",
  284. "java/dexpreopt_bootjars.go",
  285. "java/dexpreopt_config.go",
  286. "java/droiddoc.go",
  287. "java/gen.go",
  288. "java/genrule.go",
  289. "java/hiddenapi.go",
  290. "java/hiddenapi_singleton.go",
  291. "java/jacoco.go",
  292. "java/java.go",
  293. "java/jdeps.go",
  294. "java/java_resources.go",
  295. "java/kotlin.go",
  296. "java/platform_compat_config.go",
  297. "java/plugin.go",
  298. "java/prebuilt_apis.go",
  299. "java/proto.go",
  300. "java/robolectric.go",
  301. "java/sdk.go",
  302. "java/sdk_library.go",
  303. "java/support_libraries.go",
  304. "java/sysprop.go",
  305. "java/system_modules.go",
  306. "java/testing.go",
  307. "java/tradefed.go",
  308. ],
  309. testSrcs: [
  310. "java/androidmk_test.go",
  311. "java/app_test.go",
  312. "java/device_host_converter_test.go",
  313. "java/dexpreopt_test.go",
  314. "java/dexpreopt_bootjars_test.go",
  315. "java/java_test.go",
  316. "java/jdeps_test.go",
  317. "java/kotlin_test.go",
  318. "java/plugin_test.go",
  319. "java/sdk_test.go",
  320. ],
  321. pluginFor: ["soong_build"],
  322. }
  323. bootstrap_go_package {
  324. name: "soong-java-config",
  325. pkgPath: "android/soong/java/config",
  326. deps: [
  327. "blueprint-proptools",
  328. "soong-android",
  329. ],
  330. srcs: [
  331. "java/config/config.go",
  332. "java/config/error_prone.go",
  333. "java/config/kotlin.go",
  334. "java/config/makevars.go",
  335. ],
  336. }
  337. bootstrap_go_package {
  338. name: "soong-rust-config",
  339. pkgPath: "android/soong/rust/config",
  340. deps: [
  341. "soong-android",
  342. "soong-cc-config",
  343. ],
  344. srcs: [
  345. "rust/config/arm_device.go",
  346. "rust/config/arm64_device.go",
  347. "rust/config/global.go",
  348. "rust/config/toolchain.go",
  349. "rust/config/whitelist.go",
  350. "rust/config/x86_darwin_host.go",
  351. "rust/config/x86_linux_host.go",
  352. "rust/config/x86_device.go",
  353. "rust/config/x86_64_device.go",
  354. ],
  355. }
  356. bootstrap_go_package {
  357. name: "soong-rust",
  358. pkgPath: "android/soong/rust",
  359. deps: [
  360. "soong",
  361. "soong-android",
  362. "soong-cc",
  363. "soong-rust-config",
  364. ],
  365. srcs: [
  366. "rust/androidmk.go",
  367. "rust/compiler.go",
  368. "rust/binary.go",
  369. "rust/builder.go",
  370. "rust/library.go",
  371. "rust/prebuilt.go",
  372. "rust/proc_macro.go",
  373. "rust/rust.go",
  374. "rust/test.go",
  375. "rust/testing.go",
  376. ],
  377. testSrcs: [
  378. "rust/binary_test.go",
  379. "rust/compiler_test.go",
  380. "rust/library_test.go",
  381. "rust/rust_test.go",
  382. "rust/test_test.go",
  383. ],
  384. pluginFor: ["soong_build"],
  385. }
  386. bootstrap_go_package {
  387. name: "soong-python",
  388. pkgPath: "android/soong/python",
  389. deps: [
  390. "blueprint",
  391. "soong-android",
  392. "soong-tradefed",
  393. ],
  394. srcs: [
  395. "python/androidmk.go",
  396. "python/binary.go",
  397. "python/builder.go",
  398. "python/defaults.go",
  399. "python/installer.go",
  400. "python/library.go",
  401. "python/proto.go",
  402. "python/python.go",
  403. "python/test.go",
  404. ],
  405. testSrcs: [
  406. "python/python_test.go",
  407. ],
  408. pluginFor: ["soong_build"],
  409. }
  410. bootstrap_go_package {
  411. name: "soong-shared",
  412. pkgPath: "android/soong/shared",
  413. srcs: [
  414. "shared/paths.go",
  415. ],
  416. }
  417. bootstrap_go_package {
  418. name: "soong-tradefed",
  419. pkgPath: "android/soong/tradefed",
  420. deps: [
  421. "blueprint",
  422. "soong-android",
  423. ],
  424. srcs: [
  425. "tradefed/autogen.go",
  426. "tradefed/config.go",
  427. "tradefed/makevars.go",
  428. ],
  429. pluginFor: ["soong_build"],
  430. }
  431. bootstrap_go_package {
  432. name: "soong-xml",
  433. pkgPath: "android/soong/xml",
  434. deps: [
  435. "blueprint",
  436. "blueprint-pathtools",
  437. "soong",
  438. "soong-android",
  439. ],
  440. srcs: [
  441. "xml/xml.go",
  442. ],
  443. testSrcs: [
  444. "xml/xml_test.go",
  445. ],
  446. pluginFor: ["soong_build"],
  447. }
  448. bootstrap_go_package {
  449. name: "soong-apex",
  450. pkgPath: "android/soong/apex",
  451. deps: [
  452. "blueprint",
  453. "soong",
  454. "soong-android",
  455. "soong-cc",
  456. "soong-java",
  457. "soong-python",
  458. ],
  459. srcs: [
  460. "apex/androidmk.go",
  461. "apex/apex.go",
  462. "apex/builder.go",
  463. "apex/key.go",
  464. "apex/prebuilt.go",
  465. "apex/vndk.go",
  466. ],
  467. testSrcs: [
  468. "apex/apex_test.go",
  469. "apex/vndk_test.go",
  470. ],
  471. pluginFor: ["soong_build"],
  472. }
  473. bootstrap_go_package {
  474. name: "soong-sysprop",
  475. pkgPath: "android/soong/sysprop",
  476. deps: [
  477. "blueprint",
  478. "soong",
  479. "soong-android",
  480. "soong-cc",
  481. "soong-java",
  482. ],
  483. srcs: [
  484. "sysprop/sysprop_library.go",
  485. ],
  486. testSrcs: [
  487. "sysprop/sysprop_test.go",
  488. ],
  489. pluginFor: ["soong_build"],
  490. }
  491. bootstrap_go_package {
  492. name: "soong-sdk",
  493. pkgPath: "android/soong/sdk",
  494. deps: [
  495. "blueprint",
  496. "soong",
  497. "soong-android",
  498. "soong-apex",
  499. "soong-cc",
  500. "soong-java",
  501. ],
  502. srcs: [
  503. "sdk/bp.go",
  504. "sdk/exports.go",
  505. "sdk/sdk.go",
  506. "sdk/update.go",
  507. ],
  508. testSrcs: [
  509. "sdk/bp_test.go",
  510. "sdk/cc_sdk_test.go",
  511. "sdk/exports_test.go",
  512. "sdk/java_sdk_test.go",
  513. "sdk/sdk_test.go",
  514. "sdk/testing.go",
  515. ],
  516. pluginFor: ["soong_build"],
  517. }
  518. //
  519. // Defaults to enable various configurations of host bionic
  520. //
  521. cc_defaults {
  522. name: "linux_bionic_supported",
  523. host_supported: true,
  524. target: {
  525. host: {
  526. enabled: false,
  527. },
  528. linux_bionic: {
  529. enabled: true,
  530. },
  531. },
  532. }
  533. //
  534. // C static libraries extracted from the gcc toolchain
  535. //
  536. toolchain_library {
  537. name: "libatomic",
  538. defaults: ["linux_bionic_supported"],
  539. vendor_available: true,
  540. ramdisk_available: true,
  541. recovery_available: true,
  542. native_bridge_supported: true,
  543. arch: {
  544. arm: {
  545. src: "prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/arm-linux-androideabi/lib/libatomic.a",
  546. },
  547. arm64: {
  548. src: "prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/aarch64-linux-android/lib64/libatomic.a",
  549. },
  550. x86: {
  551. src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/x86_64-linux-android/lib/libatomic.a",
  552. },
  553. x86_64: {
  554. src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/x86_64-linux-android/lib64/libatomic.a",
  555. },
  556. },
  557. }
  558. toolchain_library {
  559. name: "libgcc",
  560. defaults: ["linux_bionic_supported"],
  561. vendor_available: true,
  562. recovery_available: true,
  563. native_bridge_supported: true,
  564. arch: {
  565. arm: {
  566. src: "prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a",
  567. },
  568. arm64: {
  569. src: "prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9.x/libgcc.a",
  570. },
  571. x86: {
  572. src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/lib/gcc/x86_64-linux-android/4.9.x/32/libgcc.a",
  573. },
  574. x86_64: {
  575. src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/lib/gcc/x86_64-linux-android/4.9.x/libgcc.a",
  576. },
  577. },
  578. }
  579. toolchain_library {
  580. name: "libgcc_stripped",
  581. defaults: ["linux_bionic_supported"],
  582. vendor_available: true,
  583. ramdisk_available: true,
  584. recovery_available: true,
  585. native_bridge_supported: true,
  586. sdk_version: "current",
  587. arch: {
  588. arm: {
  589. src: "prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a",
  590. repack_objects_to_keep: ["unwind-arm.o", "libunwind.o", "pr-support.o"],
  591. },
  592. arm64: {
  593. src: "prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9.x/libgcc.a",
  594. repack_objects_to_keep: ["unwind-dw2.o", "unwind-dw2-fde-dip.o"],
  595. },
  596. x86: {
  597. src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/lib/gcc/x86_64-linux-android/4.9.x/32/libgcc.a",
  598. repack_objects_to_keep: ["unwind-dw2.o", "unwind-dw2-fde-dip.o"],
  599. },
  600. x86_64: {
  601. src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/lib/gcc/x86_64-linux-android/4.9.x/libgcc.a",
  602. repack_objects_to_keep: ["unwind-dw2.o", "unwind-dw2-fde-dip.o"],
  603. },
  604. },
  605. }
  606. toolchain_library {
  607. name: "libwinpthread",
  608. host_supported: true,
  609. enabled: false,
  610. target: {
  611. windows: {
  612. enabled: true,
  613. },
  614. windows_x86: {
  615. src: "prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib32/libwinpthread.a",
  616. },
  617. windows_x86_64: {
  618. src: "prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/libwinpthread.a",
  619. },
  620. },
  621. notice: ":mingw-libwinpthread-notice",
  622. }
  623. toolchain_library {
  624. name: "libgcov",
  625. defaults: ["linux_bionic_supported"],
  626. arch: {
  627. arm: {
  628. src: "prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/lib/gcc/arm-linux-androideabi/4.9.x/libgcov.a",
  629. },
  630. arm64: {
  631. src: "prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9.x/libgcov.a",
  632. },
  633. x86: {
  634. src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/lib/gcc/x86_64-linux-android/4.9.x/32/libgcov.a",
  635. },
  636. x86_64: {
  637. src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/lib/gcc/x86_64-linux-android/4.9.x/libgcov.a",
  638. },
  639. },
  640. }
  641. kernel_headers {
  642. name: "device_kernel_headers",
  643. vendor: true,
  644. recovery_available: true,
  645. }
  646. cc_genrule {
  647. name: "host_bionic_linker_asm",
  648. host_supported: true,
  649. device_supported: false,
  650. target: {
  651. linux_bionic: {
  652. enabled: true,
  653. },
  654. linux_glibc: {
  655. enabled: false,
  656. },
  657. darwin: {
  658. enabled: false,
  659. },
  660. },
  661. tools: ["extract_linker"],
  662. cmd: "$(location) -s $(out) $(in)",
  663. srcs: [":linker"],
  664. out: ["linker.s"],
  665. }
  666. cc_genrule {
  667. name: "host_bionic_linker_flags",
  668. host_supported: true,
  669. device_supported: false,
  670. target: {
  671. linux_bionic: {
  672. enabled: true,
  673. },
  674. linux_glibc: {
  675. enabled: false,
  676. },
  677. darwin: {
  678. enabled: false,
  679. },
  680. },
  681. tools: ["extract_linker"],
  682. cmd: "$(location) -f $(out) $(in)",
  683. srcs: [":linker"],
  684. out: ["linker.flags"],
  685. }