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 17 art_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 67 art_cc_library { 68 name: "libart-disassembler", 69 defaults: ["libart-disassembler-defaults"], 70 shared_libs: [ 71 // For disassembler_arm*. 72 "libvixl", 73 ], 74 } 75 76 art_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