1 // 2 // Copyright (C) 2011 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 cc_defaults { 18 name: "libdexfile_defaults", 19 defaults: ["art_defaults"], 20 host_supported: true, 21 srcs: [ 22 "dex/compact_dex_file.cc", 23 "dex/compact_offset_table.cc", 24 "dex/descriptors_names.cc", 25 "dex/dex_file.cc", 26 "dex/dex_file_exception_helpers.cc", 27 "dex/dex_file_layout.cc", 28 "dex/dex_file_loader.cc", 29 "dex/dex_file_tracking_registrar.cc", 30 "dex/dex_file_verifier.cc", 31 "dex/dex_instruction.cc", 32 "dex/modifiers.cc", 33 "dex/primitive.cc", 34 "dex/standard_dex_file.cc", 35 "dex/utf.cc", 36 ], 37 38 target: { 39 android: { 40 static_libs: [ 41 "libziparchive", 42 "libz", 43 ], 44 shared_libs: [ 45 "libutils", 46 ], 47 }, 48 host: { 49 shared_libs: [ 50 "libziparchive", 51 "libz", 52 ], 53 }, 54 }, 55 generated_sources: ["dexfile_operator_srcs"], 56 shared_libs: [ 57 // Important note: relying on libartbase's header_lib is perfectly acceptable. 58 // However, relying on the libartbase shared library introduces further, possibly cyclic, 59 // dependencies for clients outside of ART. 60 "liblog", 61 // For common macros. 62 "libbase", 63 "libz", 64 ], 65 header_libs: [ 66 "art_libartbase_headers", 67 ], 68 export_include_dirs: ["."], 69 export_shared_lib_headers: [ 70 "libbase", 71 ], 72 export_header_lib_headers: [ 73 "art_libartbase_headers", 74 ], 75 } 76 77 gensrcs { 78 name: "dexfile_operator_srcs", 79 cmd: "$(location generate_operator_out) art/libdexfile $(in) > $(out)", 80 tools: ["generate_operator_out"], 81 srcs: [ 82 "dex/dex_file.h", 83 "dex/dex_file_layout.h", 84 "dex/dex_instruction.h", 85 "dex/dex_instruction_utils.h", 86 "dex/invoke_type.h", 87 "dex/method_reference.h", 88 ], 89 output_extension: "operator_out.cc", 90 } 91 92 art_cc_library { 93 name: "libdexfile", 94 defaults: ["libdexfile_defaults"], 95 // Leave the symbols in the shared library so that stack unwinders can 96 // produce meaningful name resolution. 97 strip: { 98 keep_symbols: true, 99 }, 100 } 101 102 art_cc_library { 103 name: "libdexfiled", 104 defaults: [ 105 "art_debug_defaults", 106 "libdexfile_defaults", 107 ], 108 } 109 110 art_cc_test { 111 name: "art_libdexfile_tests", 112 defaults: [ 113 "art_gtest_defaults", 114 ], 115 srcs: [ 116 "dex/code_item_accessors_test.cc", 117 "dex/compact_dex_file_test.cc", 118 "dex/compact_offset_table_test.cc", 119 "dex/descriptors_names_test.cc", 120 "dex/test_dex_file_builder_test.cc", 121 "dex/dex_file_loader_test.cc", 122 "dex/dex_file_verifier_test.cc", 123 "dex/dex_instruction_test.cc", 124 "dex/primitive_test.cc", 125 "dex/string_reference_test.cc", 126 "dex/utf_test.cc", 127 ], 128 shared_libs: [ 129 "libbacktrace", 130 "libziparchive", 131 ], 132 include_dirs: [ 133 "external/zlib", 134 ], 135 } 136