1// Copyright (C) 2009 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
15cc_library_headers {
16    name: "jni_headers",
17    host_supported: true,
18    export_include_dirs: ["include_jni"],
19    vendor_available: true,
20}
21
22cc_library_headers {
23    name: "libnativehelper_header_only",
24    host_supported: true,
25    export_include_dirs: ["header_only_include"],
26}
27
28cc_library_headers {
29    name: "jni_platform_headers",
30    host_supported: true,
31    export_include_dirs: ["platform_include"],
32}
33
34cc_library {
35    name: "libnativehelper",
36    host_supported: true,
37    srcs: [
38        "JNIHelp.cpp",
39        "JniConstants.cpp",
40        "toStringArray.cpp",
41        "JniInvocation.cpp",
42    ],
43
44    target: {
45        linux: {
46            srcs: ["AsynchronousCloseMonitor.cpp"],
47        },
48    },
49
50    header_libs: [
51        "jni_headers",
52        "libnativehelper_header_only",
53        "jni_platform_headers"
54    ],
55    export_header_lib_headers: [
56        "jni_headers",
57        "libnativehelper_header_only",
58        "jni_platform_headers",
59    ],
60
61    shared_libs: [
62        "liblog",
63    ],
64    cflags: [
65        "-Werror",
66        "-fvisibility=protected",
67    ],
68
69    export_include_dirs: ["include"],
70}
71
72//
73// NDK-only build for the target (device), using libc++.
74// - Relies only on NDK exposed functionality.
75// - This doesn't include JniInvocation.
76//
77
78cc_library_shared {
79    name: "libnativehelper_compat_libc++",
80    export_include_dirs: [
81        "header_only_include",
82        "include",
83    ],
84    cflags: ["-Werror"],
85    include_dirs: [
86        "libnativehelper/header_only_include",
87        "libnativehelper/platform_include",
88    ],
89    srcs: [
90        "JNIHelp.cpp",
91        "JniConstants.cpp",
92        "toStringArray.cpp",
93    ],
94    shared_libs: [
95        "liblog",
96        "libdl",
97    ],
98    sdk_version: "19",
99    stl: "c++_static",
100}
101
102ndk_headers {
103    name: "ndk_jni.h",
104    from: "include_jni",
105    to: "",
106    srcs: ["include_jni/jni.h"],
107    license: "NOTICE",
108}
109
110//
111// Tests.
112//
113
114subdirs = ["tests"]
115