blob: 07e0e8d10637c8d1381d1ce10ed658cec0531022 [file] [log] [blame]
Zhi Dou709eb6d2023-06-16 17:34:10 +00001package {
2 default_applicable_licenses: ["Android-Apache-2.0"],
3}
Zhi Dou648c0812023-06-22 19:42:48 +00004
Zhi Dou32120e42023-08-31 18:22:19 +00005android_app {
6 name: "AconfigDemoActivity",
Zhi Dou648c0812023-06-22 19:42:48 +00007 manifest: "AndroidManifest.xml",
Zhi Dou52f94982023-06-23 22:35:41 +00008 srcs: [
Oriol Prieto Gascoe9a6bd52024-02-03 02:38:37 +00009 "src/**/*.java",
Zhi Dou52f94982023-06-23 22:35:41 +000010 ],
Dennis Shen22860d22023-07-28 19:14:09 +000011 platform_apis: true,
Zhi Dou648c0812023-06-22 19:42:48 +000012 certificate: "platform",
Zhi Dou648c0812023-06-22 19:42:48 +000013 static_libs: [
Zhi Dou32120e42023-08-31 18:22:19 +000014 "ContentLibs",
Zhi Dou52f94982023-06-23 22:35:41 +000015 "dagger2",
16 "jsr330",
Zhi Dou648c0812023-06-22 19:42:48 +000017 ],
Dennis Shen22860d22023-07-28 19:14:09 +000018 jni_libs: [
19 "libexample_cpp_lib",
20 ],
Dennis Shenf422a8b2023-08-11 18:12:26 +000021 required: ["libexample_rust_jni"],
Zhi Dou32120e42023-08-31 18:22:19 +000022 plugins: ["dagger2-compiler"],
23 optimize: {
24 proguard_flags_files: ["proguard.flags"],
25 },
Zhi Dou3c4cc122023-08-16 15:14:48 +000026}
27
Zhi Dou648c0812023-06-22 19:42:48 +000028aconfig_declarations {
29 name: "aconfig_demo_flags",
Zhi Dou52f94982023-06-23 22:35:41 +000030 package: "com.example.android.aconfig.demo.flags",
Oriol Prieto Gascoe9a6bd52024-02-03 02:38:37 +000031 container: "system",
Zhi Dou648c0812023-06-22 19:42:48 +000032 srcs: ["aconfig_demo_flags.aconfig"],
33}
34
Zhi Dou648c0812023-06-22 19:42:48 +000035java_aconfig_library {
Dennis Shen22860d22023-07-28 19:14:09 +000036 name: "aconfig_demo_flags_java_lib",
Zhi Dou648c0812023-06-22 19:42:48 +000037 aconfig_declarations: "aconfig_demo_flags",
38}
39
Zhi Dou4a8cecd2023-07-28 21:38:35 +000040filegroup {
41 name: "ContentLibsFile",
42 srcs: [
43 "lib/**/*.java",
44 ],
45}
46
Zhi Dou3c4cc122023-08-16 15:14:48 +000047java_defaults {
48 name: "ContentLibsDefault",
49 sdk_version: "current",
Zhi Dou648c0812023-06-22 19:42:48 +000050 srcs: [
Zhi Dou4a8cecd2023-07-28 21:38:35 +000051 ":ContentLibsFile",
Zhi Dou648c0812023-06-22 19:42:48 +000052 ],
Zhi Dou3c4cc122023-08-16 15:14:48 +000053 libs: ["jsr330"],
54}
55
56java_library {
57 name: "ContentLibs",
58 defaults: ["ContentLibsDefault"],
Zhi Dou648c0812023-06-22 19:42:48 +000059 static_libs: [
Dennis Shen22860d22023-07-28 19:14:09 +000060 "aconfig_demo_flags_java_lib",
Zhi Dou648c0812023-06-22 19:42:48 +000061 ],
62}
Dennis Shen22860d22023-07-28 19:14:09 +000063
64cc_aconfig_library {
65 name: "aconfig_demo_flags_c_lib",
66 aconfig_declarations: "aconfig_demo_flags",
67}
68
69cc_library {
70 name: "libexample_cpp_lib",
71 srcs: ["src/example_cpp_lib.cc"],
72 double_loadable: true,
73 cflags: [
74 "-Wall",
75 "-Werror",
76 "-Wno-unused-function",
77 "-Wno-unused-parameter",
78 ],
79 header_libs: [
Oriol Prieto Gascoe9a6bd52024-02-03 02:38:37 +000080 "jni_headers",
Dennis Shen22860d22023-07-28 19:14:09 +000081 ],
82 shared_libs: [
83 "server_configurable_flags",
84 ],
85 static_libs: [
86 "aconfig_demo_flags_c_lib",
87 ],
88 export_include_dirs: ["src/include"],
Ted Bauer6844e772024-04-24 00:48:20 +000089 defaults: [
90 "aconfig_lib_cc_static_link.defaults",
91 ],
Dennis Shen22860d22023-07-28 19:14:09 +000092}
Dennis Shenf422a8b2023-08-11 18:12:26 +000093
94rust_aconfig_library {
95 name: "libaconfig_demo_flags_rust",
96 crate_name: "aconfig_demo_flags_rust",
97 aconfig_declarations: "aconfig_demo_flags",
98}
99
100rust_ffi_shared {
101 name: "libexample_rust_jni",
102 crate_name: "example_rust_jni",
103 srcs: ["src/lib.rs"],
104 rustlibs: [
105 "libjni",
106 "libaconfig_demo_flags_rust",
Oriol Prieto Gascoe9a6bd52024-02-03 02:38:37 +0000107 ],
Dennis Shenf422a8b2023-08-11 18:12:26 +0000108}
Zhi Dou3c4cc122023-08-16 15:14:48 +0000109
110// Test setup
111
Matthew Sedamc9e91fe2023-11-07 21:09:22 +0000112// Create test verion of the java flag library
Zhi Dou3c4cc122023-08-16 15:14:48 +0000113// It needs to use the same aconfig_declarations as
114// the production one
115java_aconfig_library {
116 name: "aconfig_demo_flags_java_lib_test",
117 aconfig_declarations: "aconfig_demo_flags",
118 // host_supported is set to true here for test running
119 // one host, in tests/unittests/Android.bp
120 host_supported: true,
Zi Wang3fe8b062023-11-09 16:38:45 -0800121 mode: "test",
Zhi Dou3c4cc122023-08-16 15:14:48 +0000122}