blob: e77d91478a73affd2a1afd6e2637434103f504bf [file] [log] [blame]
Colin Crossfe6064a2016-08-30 13:49:26 -07001//
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,
Colin Crossfe6064a2016-08-30 13:49:26 -070021 srcs: [
22 "disassembler.cc",
Colin Crossfe6064a2016-08-30 13:49:26 -070023 "disassembler_mips.cc",
24 "disassembler_x86.cc",
25 ],
Roland Levillain5725e7c2018-11-06 13:31:48 +000026 codegen: {
27 arm: {
Andreas Gampe0dc93b12019-05-15 10:30:22 -070028 srcs: ["disassembler_arm.cc"],
Roland Levillain5725e7c2018-11-06 13:31:48 +000029 },
30 arm64: {
Andreas Gampe0dc93b12019-05-15 10:30:22 -070031 srcs: ["disassembler_arm64.cc"],
Roland Levillain5725e7c2018-11-06 13:31:48 +000032 },
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 },
Colin Crossfe6064a2016-08-30 13:49:26 -070056 shared_libs: [
Colin Crossfe6064a2016-08-30 13:49:26 -070057 "libbase",
58 ],
David Sehr67bf42e2018-02-26 16:43:04 -080059 header_libs: [
60 "art_libartbase_headers",
Paul Duffin4345aac2019-07-17 15:51:54 +010061 "libart_runtime_headers_ndk",
David Sehr67bf42e2018-02-26 16:43:04 -080062 ],
Colin Crossfe6064a2016-08-30 13:49:26 -070063 export_include_dirs: ["."],
64}
65
66art_cc_library {
67 name: "libart-disassembler",
68 defaults: ["libart-disassembler-defaults"],
69 shared_libs: [
Anton Kirilov29b0cde2016-09-06 13:01:03 +010070 // For disassembler_arm*.
Roland Levillain12dd9ae2018-11-06 13:32:06 +000071 "libvixl",
Colin Crossfe6064a2016-08-30 13:49:26 -070072 ],
73}
74
75art_cc_library {
76 name: "libartd-disassembler",
77 defaults: [
Colin Crossfe6064a2016-08-30 13:49:26 -070078 "art_debug_defaults",
Andreas Gampe5115efb2017-05-24 16:55:54 -070079 "libart-disassembler-defaults",
Colin Crossfe6064a2016-08-30 13:49:26 -070080 ],
81 shared_libs: [
Anton Kirilov29b0cde2016-09-06 13:01:03 +010082 // For disassembler_arm*.
Roland Levillain12dd9ae2018-11-06 13:32:06 +000083 "libvixld",
Colin Crossfe6064a2016-08-30 13:49:26 -070084 ],
85}
Paul Duffin4345aac2019-07-17 15:51:54 +010086
87cc_library_headers {
88 name: "art_disassembler_headers",
89 host_supported: true,
90 export_include_dirs: [
91 ".",
92 ],
93}