1// Copyright (C) 2017 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
15ndk_headers {
16    name: "libnativewindow_ndk_headers",
17    from: "include/android",
18    to: "android",
19    srcs: ["include/android/*.h"],
20    license: "NOTICE",
21}
22
23// TODO(b/118715870): cleanup header files
24cc_library_headers {
25    name: "libnativewindow_headers",
26    export_include_dirs: ["include"],
27    vendor_available: true,
28    // TODO(b/153609531): remove when no longer needed.
29    native_bridge_supported: true,
30    min_sdk_version: "29",
31}
32
33ndk_library {
34    name: "libnativewindow",
35    symbol_file: "libnativewindow.map.txt",
36
37    // Android O
38    first_version: "26",
39}
40
41cc_library {
42    name: "libnativewindow",
43    export_include_dirs: [
44        "include",
45        "include-private",
46    ],
47
48    clang: true,
49
50    cflags: [
51        "-Wall",
52        "-Werror",
53        "-Wno-enum-compare",
54        "-Wno-unused-function",
55    ],
56
57    version_script: "libnativewindow.map.txt",
58
59    srcs: [
60        "AHardwareBuffer.cpp",
61        "ANativeWindow.cpp",
62    ],
63
64    shared_libs: [
65        "libcutils",
66        "liblog",
67        "libutils",
68        "libui",
69        "android.hardware.graphics.common@1.1",
70    ],
71
72    static_libs: [
73        "libarect",
74        "libgrallocusage",
75    ],
76
77    header_libs: [
78        "libnativebase_headers",
79        "libnativewindow_headers",
80    ],
81
82    // headers we include in our public headers
83    export_static_lib_headers: [
84        "libarect",
85    ],
86
87    export_header_lib_headers: [
88        "libnativebase_headers",
89    ],
90
91    stubs: {
92        symbol_file: "libnativewindow.map.txt",
93        versions: ["29"],
94    },
95}
96
97llndk_library {
98    name: "libnativewindow",
99    symbol_file: "libnativewindow.map.txt",
100    unversioned: true,
101    export_include_dirs: ["include"],
102}
103
104subdirs = ["tests"]
105