xref: /aosp_15_r20/frameworks/layoutlib/Android.bp (revision fc3927be90a325f95c74a9043993a80ef388dc46)
1//
2// Copyright (C) 2008 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//
18// Define rules to build temp_layoutlib.jar, which contains a subset of
19// the classes in framework.jar.  The layoutlib_create tool is used to
20// transform the framework jar into the temp_layoutlib jar.
21//
22
23package {
24    // See: http://go/android-license-faq
25    default_applicable_licenses: ["Android-Apache-2.0"],
26}
27
28java_genrule_host {
29    name: "temp_layoutlib",
30    tools: ["layoutlib_create"],
31    out: ["temp_layoutlib.jar"],
32    srcs: [
33        ":atf-prebuilt-557133692{.jar}", // HOST
34        ":icu4j-icudata-jarjar{.jar}", // HOST
35        ":icu4j-icutzdata-jarjar{.jar}", // HOST
36    ],
37    device_common_srcs: [
38        ":core-icu4j-for-host{.jar}",
39        ":core-libart-for-host{.jar}",
40        ":framework-all{.jar}",
41        ":ext{.jar}",
42        ":iconloader_base{.jar}",
43        ":monet{.jar}",
44    ],
45    cmd: "rm -f $(out) && $(location layoutlib_create) --create-stub $(out) $(in)",
46}
47
48java_device_for_host {
49    name: "layoutlib_create-classpath",
50    libs: [
51        "conscrypt-for-host",
52        "core-icu4j-for-host",
53        "core-libart-for-host",
54        "ext",
55        "framework-all",
56        "iconloader_base",
57        "icu4j-icudata-jarjar",
58        "icu4j-icutzdata-jarjar",
59        "monet",
60    ],
61}
62
63cc_library_host_shared {
64    name: "layoutlib_jni",
65    srcs: [
66        "jni/android_view_LayoutlibRenderer.cpp",
67        "jni/LayoutlibLoader.cpp",
68    ],
69    cflags: [
70        "-Wno-unused-parameter",
71    ],
72    header_libs: [
73        "libbase_headers",
74        "libhostgraphics_headers",
75        "libnativebase_headers",
76        "libnativedisplay_headers",
77        "libnativewindow_headers",
78    ],
79    shared_libs: [
80        "libandroid_runtime",
81    ],
82    static_libs: [
83        "libhostgraphics",
84        "libinput",
85    ],
86    stl: "libc++_static",
87    target: {
88        linux: {
89            version_script: "jni/linux/layoutlib_jni_export.txt",
90        },
91        darwin: {
92            ldflags: ["-Wl,-exported_symbols_list,frameworks/layoutlib/jni/darwin/layoutlib_jni_export.exp"],
93            dist: {
94                targets: ["layoutlib_jni"],
95                dir: "layoutlib_native/darwin",
96            },
97        },
98        linux_glibc_x86_64: {
99            dist: {
100                targets: ["layoutlib"],
101                dir: "layoutlib_native/linux",
102                tag: "stripped_all",
103            },
104        },
105    },
106}
107