• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_library_host {
49    name: "layoutlib-framework",
50    static_libs: ["temp_layoutlib"],
51    jarjar_rules: "jarjar-rules.txt",
52}
53
54java_device_for_host {
55    name: "layoutlib_create-classpath",
56    libs: [
57        "conscrypt-for-host",
58        "core-icu4j-for-host",
59        "core-libart-for-host",
60        "ext",
61        "framework-all",
62        "iconloader_base",
63        "icu4j-icudata-jarjar",
64        "icu4j-icutzdata-jarjar",
65        "monet",
66    ],
67}
68
69cc_library_host_shared {
70    name: "layoutlib_jni",
71    srcs: [
72        "jni/LayoutlibLoader.cpp",
73    ],
74    cflags: [
75        "-Wno-unused-parameter",
76    ],
77    header_libs: [
78        "libbase_headers",
79    ],
80    shared_libs: [
81        "libandroid_runtime",
82    ],
83    static_libs: [
84        "libbase",
85        "libbinder",
86        "libcutils",
87        "libinput",
88        "libui-types",
89        "libutils",
90    ],
91    stl: "libc++_static",
92    target: {
93        linux: {
94            version_script: "jni/linux/layoutlib_jni_export.txt",
95        },
96        darwin: {
97            exported_symbols_list: "jni/darwin/layoutlib_jni_export.exp",
98            dist: {
99                targets: ["layoutlib_jni"],
100                dir: "layoutlib_native/darwin",
101            },
102        },
103        linux_glibc_x86_64: {
104            dist: {
105                targets: ["layoutlib"],
106                dir: "layoutlib_native/linux",
107                tag: "stripped_all",
108            },
109        },
110    },
111}
112