1//
2// Copyright (C) 2012 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
17art_cc_defaults {
18    name: "libart-disassembler-defaults",
19    defaults: ["art_defaults"],
20    host_supported: true,
21    srcs: [
22        "disassembler.cc",
23        "disassembler_mips.cc",
24        "disassembler_x86.cc",
25    ],
26    codegen: {
27        arm: {
28            srcs: ["disassembler_arm.cc"]
29        },
30        arm64: {
31            srcs: ["disassembler_arm64.cc"]
32        },
33        // TODO: We should also conditionally include the MIPS32/MIPS64 and the
34        // x86/x86-64 disassembler definitions (b/119090273). However, using the
35        // following syntax here:
36        //
37        //   mips: {
38        //       srcs: ["disassembler_mips.cc"]
39        //   },
40        //   mips64: {
41        //       srcs: ["disassembler_mips.cc"]
42        //   },
43        //   x86: {
44        //       srcs: ["disassembler_x86.cc"]
45        //   },
46        //   x86_64: {
47        //       srcs: ["disassembler_x86.cc"]
48        //   },
49        //
50        // does not work, as it generates a file rejected by ninja with this
51        // error message (e.g. on host, where we include all the back ends by
52        // default):
53        //
54        //   FAILED: ninja: out/soong/build.ninja:320768: multiple rules generate out/soong/.intermediates/art/disassembler/libart-disassembler/linux_glibc_x86_64_static/obj/art/disassembler/disassembler_mips.o [-w dupbuild=err]
55    },
56    include_dirs: ["art/runtime"],
57
58    shared_libs: [
59        "libbase",
60    ],
61    header_libs: [
62        "art_libartbase_headers",
63    ],
64    export_include_dirs: ["."],
65}
66
67art_cc_library {
68    name: "libart-disassembler",
69    defaults: ["libart-disassembler-defaults"],
70    shared_libs: [
71        // For disassembler_arm*.
72        "libvixl",
73    ],
74}
75
76art_cc_library {
77    name: "libartd-disassembler",
78    defaults: [
79        "art_debug_defaults",
80        "libart-disassembler-defaults",
81    ],
82    shared_libs: [
83        // For disassembler_arm*.
84        "libvixld",
85    ],
86}
87