• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (C) 2022 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//
15//
16
17package {
18    default_applicable_licenses: ["Android-Apache-2.0"],
19}
20
21cc_defaults {
22    name: "evsmanagerd_defaults",
23    defaults: ["android.hardware.graphics.common-ndk_static"],
24    shared_libs: [
25        "android.hardware.automotive.evs@1.0",
26        "android.hardware.automotive.evs@1.1",
27        "libbase",
28        "libbinder_ndk",
29        "libcamera_metadata",
30        "libhardware",
31        "libhidlbase",
32        "liblog",
33        "libprocessgroup",
34        "libstatslog_evsmanagerd",
35        "libutils",
36    ],
37    static_libs: [
38        "android.hardware.automotive.evs-V2-ndk",
39        "android.hardware.common-V2-ndk",
40        "libaidlcommonsupport",
41        "libc++fs",
42        "libcutils",
43    ],
44    header_libs: [
45        "libarect_headers",
46        "libui_headers",
47    ],
48    cflags: [
49        "-DGL_GLEXT_PROTOTYPES",
50        "-DEGL_EGLEXT_PROTOTYPES",
51        "-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS",
52        "-Wall",
53        "-Werror",
54        "-Wunused",
55        "-Wunreachable-code",
56        "-Wthread-safety",
57    ],
58    export_include_dirs: [
59        "include",
60    ],
61    local_include_dirs: [
62        "include",
63        "stats/include",
64        "wrappers/include",
65    ],
66    product_variables: {
67        debuggable: {
68            cflags: [
69                "-DEVS_DEBUG",
70            ]
71        },
72    },
73}
74
75filegroup {
76    name: "evsmanagerd_sources",
77    srcs: [
78        "wrappers/src/HidlCameraStream.cpp",
79        "wrappers/src/AidlDisplay.cpp",
80        "wrappers/src/AidlCamera.cpp",
81        "wrappers/src/HidlEnumerator.cpp",
82        "wrappers/src/AidlCameraStream.cpp",
83        "wrappers/src/AidlEnumerator.cpp",
84        "wrappers/src/HidlDisplay.cpp",
85        "wrappers/src/HidlCamera.cpp",
86        "stats/src/CameraUsageStats.cpp",
87        "stats/src/StatsCollector.cpp",
88        "stats/src/LooperWrapper.cpp",
89        "utils/src/Utils.cpp",
90        "src/HalDisplay.cpp",
91        "src/VirtualCamera.cpp",
92        "src/Enumerator.cpp",
93        "src/HalCamera.cpp",
94    ],
95}
96
97cc_library_static {
98    name : "libevsmanagerd",
99    defaults : ["evsmanagerd_defaults"],
100    srcs : [":evsmanagerd_sources"],
101    export_include_dirs : ["."],
102}
103
104cc_binary {
105    name: "evsmanagerd",
106    defaults: ["evsmanagerd_defaults"],
107    static_libs: ["libevsmanagerd"],
108    srcs: ["src/service.cpp"],
109    init_rc: ["evsmanagerd.rc"],
110    vintf_fragments: ["manifest_evsmanagerd.xml"],
111}
112
113cc_fuzz {
114    name: "evs_enumerator_fuzzer",
115    defaults: [
116        "evsmanagerd_defaults",
117        "service_fuzzer_defaults",
118    ],
119    static_libs: [
120        "liblog",
121    ],
122    srcs: [
123        ":evsmanagerd_sources",
124        "src/EnumeratorFuzzer.cpp",
125    ],
126    fuzz_config: {
127        cc: [
128            "keithmok@google.com",
129        ],
130    },
131}
132
133cc_test {
134    name: "evsmanagerd_test",
135    defaults: ["evsmanagerd_defaults"],
136    test_suites: [
137        "general-tests",
138        "automotive-tests",
139    ],
140    srcs: [
141        ":evsmanagerd_sources",
142        "tests/**/*.cpp"
143    ],
144    local_include_dirs: ["tests/include"],
145    shared_libs: [
146        "libcamera_client",
147        "libnativewindow",
148        "libui",
149    ],
150    static_libs: [
151        "libgmock",
152        "libgtest",
153        "libevsmanagerd",
154    ],
155}
156
157cc_test_library {
158    name: "libmockevshal",
159    defaults: ["android.hardware.graphics.common-ndk_static"],
160    local_include_dirs: [
161        "include",
162        "tests/include"
163    ],
164    export_include_dirs: ["tests/include"],
165    srcs: [
166        "tests/src/MockEvsHal.cpp",
167        "tests/src/MockHidlEvsHal.cpp",
168        "tests/src/MockHidlEvsHal_1_0.cpp",
169    ],
170    shared_libs: [
171        "android.hardware.automotive.evs@1.0",
172        "android.hardware.automotive.evs@1.1",
173        "libbase",
174        "libbinder_ndk",
175        "libcamera_client",
176        "libcamera_metadata",
177        "libcutils",
178        "libhidlbase",
179        "libnativewindow",
180        "libui",
181        "libutils",
182    ],
183    static_libs: [
184        "android.hardware.automotive.evs-V2-ndk",
185        "android.hardware.common-V2-ndk",
186        "libaidlcommonsupport",
187        "libgmock",
188        "libgtest",
189    ],
190    cflags: ["-DLOG_TAG=\"MockEVS\""],
191}
192
193cc_library {
194    name: "libstatslog_evsmanagerd",
195    generated_sources: ["statslog_evsmanagerd.cpp"],
196    generated_headers: ["statslog_evsmanagerd.h"],
197    export_generated_headers: ["statslog_evsmanagerd.h"],
198    min_sdk_version: "30",
199    shared_libs: [
200        "libbinder",
201        "libstatsbootstrap",
202        "libutils",
203        "android.os.statsbootstrap_aidl-cpp",
204    ],
205}
206
207genrule {
208    name: "statslog_evsmanagerd.h",
209    tools: ["stats-log-api-gen"],
210    cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_evsmanagerd.h --module evs" +
211         " --namespace aidl,android,automotive,evs,stats --bootstrap",
212    out: [
213        "statslog_evsmanagerd.h",
214    ],
215}
216
217genrule {
218    name: "statslog_evsmanagerd.cpp",
219    tools: ["stats-log-api-gen"],
220    cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_evsmanagerd.cpp --module evs" +
221         " --namespace aidl,android,automotive,evs,stats --importHeader statslog_evsmanagerd.h" +
222         " --bootstrap",
223    out: [
224        "statslog_evsmanagerd.cpp",
225    ],
226}
227