1// 2// Copyright (C) 2016 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 17cc_defaults { 18 name: "header-checker-defaults", 19 20 defaults: [ 21 "llvm-build-host-tools-defaults", 22 ], 23 24 cflags: [ 25 "-Wall", 26 "-Werror", 27 "-Wno-unused-parameter", 28 "-DGOOGLE_PROTOBUF_NO_RTTI", 29 "-UNDEBUG", 30 ], 31 32 cppflags: [ 33 "-fno-exceptions", 34 "-fno-rtti", 35 "-std=c++17", 36 ], 37 38 target: { 39 windows: { 40 enabled: false, 41 }, 42 }, 43 44 local_include_dirs: [ 45 "src", 46 ], 47 48 compile_multilib: "64", 49 stl: "none", 50} 51 52cc_binary_host { 53 name: "header-abi-dumper", 54 55 defaults: [ 56 "header-checker-defaults", 57 ], 58 59 srcs: [ 60 "src/dumper/abi_wrappers.cpp", 61 "src/dumper/ast_processing.cpp", 62 "src/dumper/diagnostic_consumer.cpp", 63 "src/dumper/fake_decl_source.cpp", 64 "src/dumper/fixed_argv.cpp", 65 "src/dumper/frontend_action.cpp", 66 "src/dumper/frontend_action_factory.cpp", 67 "src/dumper/header_checker.cpp", 68 ], 69 70 static_libs: [ 71 "libheader-checker", 72 "libheader-checker-proto", 73 "libjsoncpp", 74 ], 75 76 shared_libs: [ 77 "libprotobuf-cpp-full", 78 "libLLVM_host", 79 "libclang_cxx_host", 80 "libc++_host", 81 ], 82} 83 84cc_defaults { 85 name: "header-abi-linker-defaults", 86 87 defaults: ["header-checker-defaults"], 88 89 static_libs: [ 90 "libheader-checker", 91 "libheader-checker-proto", 92 "libjsoncpp", 93 ], 94 95 shared_libs: [ 96 "libprotobuf-cpp-full", 97 "libLLVM_host", 98 "libclang_cxx_host", 99 "libc++_host", 100 ], 101} 102 103cc_binary_host { 104 name: "header-abi-linker", 105 106 defaults: [ 107 "header-checker-defaults", 108 "header-abi-linker-defaults", 109 ], 110 111 srcs: [ 112 "src/linker/header_abi_linker.cpp", 113 ], 114} 115 116cc_binary_host { 117 name: "header-abi-diff", 118 119 defaults: [ 120 "header-checker-defaults", 121 "header-abi-linker-defaults", 122 ], 123 124 srcs: [ 125 "src/diff/abi_diff.cpp", 126 "src/diff/abi_diff_wrappers.cpp", 127 "src/diff/header_abi_diff.cpp", 128 ], 129} 130 131cc_binary_host { 132 name: "merge-abi-diff", 133 134 defaults: [ 135 "header-checker-defaults", 136 "header-abi-linker-defaults", 137 ], 138 139 srcs: [ 140 "src/diff_merge/merge_abi_diff.cpp", 141 ], 142} 143 144cc_library_host_static { 145 name: "libheader-checker", 146 147 defaults: [ 148 "header-checker-defaults", 149 ], 150 151 srcs: [ 152 "src/repr/abi_diff_helpers.cpp", 153 "src/repr/ir_diff_dumper.cpp", 154 "src/repr/ir_dumper.cpp", 155 "src/repr/ir_reader.cpp", 156 "src/repr/ir_representation.cpp", 157 "src/repr/json/converter.cpp", 158 "src/repr/json/ir_dumper.cpp", 159 "src/repr/json/ir_reader.cpp", 160 "src/repr/protobuf/converter.cpp", 161 "src/repr/protobuf/ir_diff_dumper.cpp", 162 "src/repr/protobuf/ir_dumper.cpp", 163 "src/repr/protobuf/ir_reader.cpp", 164 "src/repr/symbol/exported_symbol_set.cpp", 165 "src/repr/symbol/so_file_parser.cpp", 166 "src/repr/symbol/version_script_parser.cpp", 167 "src/utils/api_level.cpp", 168 "src/utils/config_file.cpp", 169 "src/utils/collect_exported_headers.cpp", 170 "src/utils/string_utils.cpp", 171 ], 172 173 static_libs: [ 174 "libheader-checker-proto", 175 "libjsoncpp", 176 ], 177 178 shared_libs: [ 179 "libLLVM_host", 180 "libc++_host", 181 "libprotobuf-cpp-full", 182 ], 183 184 cflags: [ 185 "-Wcast-qual", 186 "-Wno-long-long", 187 "-Wno-unused-parameter", 188 ], 189} 190 191cc_test_host { 192 name: "header-checker-unittests", 193 194 defaults: [ 195 "header-checker-defaults", 196 ], 197 198 srcs: [ 199 "src/repr/symbol/exported_symbol_set_test.cpp", 200 "src/repr/symbol/version_script_parser_test.cpp", 201 "src/utils/api_level_test.cpp", 202 "src/utils/config_file_test.cpp", 203 "src/utils/string_utils_test.cpp", 204 ], 205 206 static_libs: [ 207 "libgtest", 208 "libgtest_main", 209 "libheader-checker", 210 ], 211 212 shared_libs: [ 213 "libc++_host", 214 ], 215 216 test_suites: ["general-tests"], 217} 218