1//
2// Copyright (C) 2019 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17// libartpalette-system is the implementation of the platform
18// abstraction layer for ART. It is intended to be dynamically loaded by
19// ART which now ships as an APEX and not part of the system.
20package {
21    default_applicable_licenses: ["Android-Apache-2.0"],
22}
23
24cc_library {
25    name: "libartpalette-system",
26    cpp_std: "experimental",
27    compile_multilib: "both",
28    header_libs: [
29        "libartpalette-headers",
30        "jni_headers",
31    ],
32    host_supported: true,
33    target: {
34        android: {
35            srcs: [
36                "palette_android.cc",
37                "palette_android_partner.cc",
38            ],
39            header_libs: ["libbase_headers"],
40            shared_libs: [
41                "libbase",
42                "libcutils",
43                "liblog",
44                "libprocessgroup",
45                "libtombstoned_client",
46                "libselinux",
47            ],
48            static_libs: ["libc++fs"],
49        },
50        host: {
51            header_libs: ["libbase_headers"],
52            srcs: ["palette_fake.cc"],
53            shared_libs: ["libbase"],
54        },
55        darwin: {
56            enabled: false,
57        },
58        windows: {
59            enabled: false,
60        },
61    },
62    static: {
63        enabled: false,
64    },
65    version_script: "libartpalette.map.txt",
66    stubs: {
67        versions: [
68            "1",
69        ],
70        symbol_file: "libartpalette.map.txt",
71    },
72}
73
74// Definition of the extended SDK offered by the platform for mainline modules.
75// TODO: this is in the palette directory as it's only being used by ART.
76// It used to be in prebuilts/sdk/mainline, but this doesn't work for ART
77// unbundled which also includes the prebuilts/sdk git repository. We need to find
78// a better location for this SDK, see b/162706448.
79sdk {
80    name: "platform-mainline-sdk",
81    host_supported: true,
82    native_shared_libs: [
83        "libartpalette-system",
84    ],
85    target: {
86        darwin: {
87            enabled: false,
88        },
89        android: {
90            native_shared_libs: [
91                "heapprofd_client_api",
92                "liblog",
93            ],
94            native_static_libs: [
95                "libperfetto_client_experimental",
96                "perfetto_trace_protos",
97            ],
98        },
99        not_windows: {
100            native_libs: [
101                "liblog",
102            ],
103        }
104    },
105}
106
107module_exports {
108    name: "platform-mainline-test-exports",
109    host_supported: false,
110    native_shared_libs: [
111        // Required by the implementation of libartpalette-system,
112        // which ART uses in replacement of stubs in its testing environment.
113        "libtombstoned_client",
114    ],
115}
116