xref: /aosp_15_r20/frameworks/native/cmds/servicemanager/Android.bp (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1package {
2    // See: http://go/android-license-faq
3    // A large-scale-change added 'default_applicable_licenses' to import
4    // all of the 'license_kinds' from "frameworks_native_license"
5    // to get the below license kinds:
6    //   SPDX-license-identifier-Apache-2.0
7    default_applicable_licenses: ["frameworks_native_license"],
8}
9
10cc_defaults {
11    name: "servicemanager_defaults",
12
13    cflags: [
14        "-Wall",
15        "-Wextra",
16        "-Werror",
17        "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION",
18    ],
19
20    srcs: [
21        "Access.cpp",
22        "ServiceManager.cpp",
23    ],
24
25    shared_libs: [
26        "libbase",
27        "libvintf",
28        "libcutils",
29        "liblog",
30        "libutils",
31        "libselinux",
32        "libperfetto_c",
33    ],
34
35    target: {
36        android: {
37            shared_libs: [
38                "libbinder",
39                "libutils",
40            ],
41        },
42        host: {
43            static_libs: [
44                "libbinder",
45                "libutils",
46            ],
47        },
48        darwin: {
49            enabled: false,
50        },
51        vendor: {
52            exclude_shared_libs: [
53                "libvintf",
54                "libperfetto_c",
55            ],
56        },
57        recovery: {
58            exclude_shared_libs: ["libperfetto_c"],
59        },
60    },
61}
62
63cc_binary {
64    name: "servicemanager",
65    defaults: ["servicemanager_defaults"],
66    init_rc: ["servicemanager.rc"],
67    srcs: ["main.cpp"],
68    bootstrap: true,
69}
70
71cc_binary {
72    name: "servicemanager.recovery",
73    stem: "servicemanager",
74    recovery: true,
75    defaults: ["servicemanager_defaults"],
76    init_rc: ["servicemanager.recovery.rc"],
77    srcs: ["main.cpp"],
78}
79
80cc_binary {
81    name: "vndservicemanager",
82    defaults: ["servicemanager_defaults"],
83    init_rc: ["vndservicemanager.rc"],
84    vendor: true,
85    cflags: [
86        "-DVENDORSERVICEMANAGER=1",
87    ],
88    required: [
89        "vndservice",
90    ],
91    srcs: ["main.cpp"],
92}
93
94cc_test {
95    name: "servicemanager_test",
96    host_supported: true,
97    test_suites: ["device-tests"],
98    defaults: ["servicemanager_defaults"],
99    srcs: [
100        "test_sm.cpp",
101    ],
102    static_libs: ["libgmock"],
103}
104
105cc_test_host {
106    name: "servicemanager_unittest",
107    test_suites: ["general-tests"],
108    defaults: ["servicemanager_defaults"],
109    srcs: [
110        "ServiceManagerUnittest.cpp",
111    ],
112    static_libs: ["libgmock"],
113}
114
115cc_fuzz {
116    name: "servicemanager_fuzzer",
117    defaults: [
118        "servicemanager_defaults",
119        "service_fuzzer_defaults",
120    ],
121    host_supported: true,
122    srcs: ["ServiceManagerFuzzer.cpp"],
123    fuzz_config: {
124        libfuzzer_options: [
125            "max_len=50000",
126        ],
127        cc: [
128            "[email protected]",
129            "[email protected]",
130        ],
131    },
132}
133