1// Copyright 2018, The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Include generated Android.bp files 16build = [ 17 "Android.libbase.bp", 18 "Android.libplatform.bp", 19 "Android.libsampler.bp", 20 "Android.base.bp", 21 "Android.initializers.bp", 22 "Android.torque.bp", 23] 24 25cc_defaults { 26 name: "v8_defaults", 27 28 cflags: [ 29 "-Wall", 30 "-Werror", 31 "-Wno-endif-labels", 32 "-Wno-implicit-fallthrough", 33 "-Wno-import", 34 "-Wno-format", 35 "-Wno-unused-variable", 36 "-Wno-unused-parameter", 37 "-Wno-unused-private-field", 38 "-Wno-sign-compare", 39 "-Wno-missing-field-initializers", 40 "-Wno-ignored-qualifiers", 41 "-Wno-undefined-var-template", 42// "-Wno-null-pointer-arithmetic", 43 "-Wno-non-virtual-dtor", 44 "-Wno-user-defined-warnings", 45 "-Wno-unused-lambda-capture", 46 "-Wno-missing-braces", 47 "-fno-exceptions", 48 "-fvisibility=hidden", 49 "-fno-rtti", 50 "-g0", 51 "-Os", 52 "-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64", 53 "-DV8_ATOMIC_OBJECT_FIELD_WRITES", 54 "-DV8_ATOMIC_MARKING_STATE", 55 "-DV8_ENABLE_LAZY_SOURCE_POSITIONS", 56 "-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH", 57 "-DV8_SNAPSHOT_COMPRESSION", 58 "-DV8_NO_ARGUMENTS_ADAPTOR", 59 "-DDISABLE_UNTRUSTED_CODE_MITIGATIONS", 60 ], 61 cpp_std: "gnu++14", 62 arch: { 63 arm: { 64 cflags: [ 65 "-DV8_TARGET_ARCH_ARM", 66 "-DV8_SHARED_RO_HEAP", 67 ], 68 }, 69 arm64: { 70 cflags: ["-DV8_TARGET_ARCH_ARM64"], 71 }, 72 x86: { 73 cflags: ["-DV8_TARGET_ARCH_IA32"], 74 }, 75 x86_64: { 76 cflags: ["-DV8_TARGET_ARCH_X64"], 77 }, 78 }, 79} 80 81cc_library_static { 82 name: "libv8", 83 defaults: [ 84 "v8_defaults", 85 "v8_snapshot" 86 ], 87 whole_static_libs: [ 88 "v8_base", 89 "v8_libbase", 90 "v8_libplatform", 91 "v8_libsampler", 92 "v8_zlib", 93 ], 94 local_include_dirs: [ 95 "third_party/zlib" 96 ], 97 generated_headers: [ 98 "v8_generate_bytecode_builtins_list" 99 ], 100 101 export_include_dirs: ["include"], 102 apex_available: [ 103 "com.android.art.debug", 104 "com.android.art.release", 105 ], 106} 107 108cc_binary { 109 name: "v8_mksnapshot_32", 110 defaults: ["v8_mksnapshot_base"], 111 compile_multilib: "32", 112} 113 114cc_binary { 115 name: "v8_mksnapshot_64", 116 defaults: ["v8_mksnapshot_base"], 117 compile_multilib: "64", 118} 119 120cc_defaults { 121 name: "v8_mksnapshot_base", 122 defaults: [ 123 "v8_defaults", 124 "v8_torque_headers" 125 ], 126 srcs: [ 127 "src/snapshot/embedded/embedded-empty.cc", 128 "src/snapshot/embedded/embedded-file-writer.cc", 129 "src/snapshot/embedded/platform-embedded-file-writer-aix.cc", 130 "src/snapshot/embedded/platform-embedded-file-writer-base.cc", 131 "src/snapshot/embedded/platform-embedded-file-writer-generic.cc", 132 "src/snapshot/embedded/platform-embedded-file-writer-mac.cc", 133 "src/snapshot/embedded/platform-embedded-file-writer-win.cc", 134 "src/snapshot/mksnapshot.cc", 135 "src/snapshot/snapshot-empty.cc", 136 ":v8_init", 137 ], 138 // From v8_initializers 139 arch: { 140 arm: { 141 srcs: [ 142 "src/builtins/arm/builtins-arm.cc", 143 ], 144 }, 145 arm64: { 146 srcs: [ 147 "src/builtins/arm64/builtins-arm64.cc", 148 ], 149 }, 150 x86: { 151 srcs: [ 152 "src/builtins/ia32/builtins-ia32.cc", 153 ], 154 }, 155 x86_64: { 156 srcs: [ 157 "src/builtins/x64/builtins-x64.cc", 158 ], 159 }, 160 }, 161 generated_headers: [ 162 "v8_generate_bytecode_builtins_list" 163 ], 164 165 static_libs: [ 166 "v8_base", 167 "v8_libplatform", 168 "v8_libsampler", 169 "v8_libbase", 170 "v8_zlib", 171 ], 172 shared_libs: [ 173 "liblog", 174 ], 175 local_include_dirs: ["include"], 176} 177 178cc_binary_host { 179 name: "v8_bytecode_builtins_list_generator", 180 defaults: ["v8_defaults"], 181 host_ldlibs: ["-lrt"], 182 srcs: [ 183 "src/builtins/generate-bytecodes-builtins-list.cc", 184 "src/interpreter/bytecode-operands.cc", 185 "src/interpreter/bytecodes.cc", 186 ], 187 static_libs: [ 188 "v8_libbase", 189 ], 190} 191 192genrule { 193 name: "v8_generate_bytecode_builtins_list", 194 tools: ["v8_bytecode_builtins_list_generator"], 195 srcs: [], 196 cmd: "mkdir -p $(genDir)/builtins-generated/ && $(location v8_bytecode_builtins_list_generator) $(out)", 197 out: [ 198 "builtins-generated/bytecodes-builtins-list.h" 199 ], 200} 201 202cc_binary_host { 203 name: "v8_torque", 204 defaults: ["v8_defaults"], 205 cflags: [ 206 "-fexceptions", 207 "-frtti", 208 ], 209 host_ldlibs: ["-lrt"], 210 srcs: [ 211 "src/torque/cc-generator.cc", 212 "src/torque/cfg.cc", 213 "src/torque/class-debug-reader-generator.cc", 214 "src/torque/csa-generator.cc", 215 "src/torque/declarable.cc", 216 "src/torque/declaration-visitor.cc", 217 "src/torque/declarations.cc", 218 "src/torque/earley-parser.cc", 219 "src/torque/global-context.cc", 220 "src/torque/implementation-visitor.cc", 221 "src/torque/instance-type-generator.cc", 222 "src/torque/instructions.cc", 223 "src/torque/server-data.cc", 224 "src/torque/source-positions.cc", 225 "src/torque/torque-code-generator.cc", 226 "src/torque/torque-compiler.cc", 227 "src/torque/torque-parser.cc", 228 "src/torque/type-inference.cc", 229 "src/torque/type-oracle.cc", 230 "src/torque/type-visitor.cc", 231 "src/torque/types.cc", 232 "src/torque/utils.cc", 233 "src/torque/torque.cc", 234 ], 235 static_libs: [ 236 "v8_libbase", 237 ], 238} 239 240cc_defaults { 241 name: "v8_snapshot", 242 defaults: ["v8_torque_headers"], 243 srcs: [ 244 "src/init/setup-isolate-deserialize.cc", 245 ], 246 arch: { 247 arm: { 248 srcs: [ 249 "snapshot/embedded-arm.S", 250 "snapshot/snapshot-arm.cc", 251 ], 252 }, 253 arm64: { 254 srcs: [ 255 "snapshot/embedded-arm64.S", 256 "snapshot/snapshot-arm64.cc", 257 ], 258 }, 259 x86: { 260 srcs: [ 261 "snapshot/embedded-x86.S", 262 "snapshot/snapshot-x86.cc", 263 ], 264 }, 265 x86_64: { 266 srcs: [ 267 "snapshot/embedded-x86_64.S", 268 "snapshot/snapshot-x86_64.cc", 269 ], 270 }, 271 }, 272} 273 274cc_defaults { 275 name: "v8_torque_headers", 276 arch: { 277 arm: { 278 generated_headers: [ 279 "v8_torque_file_32", 280 ], 281 }, 282 arm64: { 283 generated_headers: [ 284 "v8_torque_file", 285 ], 286 }, 287 x86: { 288 generated_headers: [ 289 "v8_torque_file_32", 290 ], 291 }, 292 x86_64: { 293 generated_headers: [ 294 "v8_torque_file", 295 ], 296 }, 297 }, 298} 299 300filegroup { 301 name: "v8_init", 302 srcs: [ 303 "src/init/setup-isolate-full.cc", 304 ":v8_initializers", 305 ] 306} 307 308cc_library_static { 309 name: "v8_zlib", 310 defaults: ["v8_defaults"], 311 cflags: ["-Wno-error"], 312 srcs: [ 313 "third_party/zlib/adler32.c", 314 "third_party/zlib/compress.c", 315 "third_party/zlib/cpu_features.c", 316 "third_party/zlib/crc32.c", 317 "third_party/zlib/deflate.c", 318 "third_party/zlib/gzclose.c", 319 "third_party/zlib/gzlib.c", 320 "third_party/zlib/gzread.c", 321 "third_party/zlib/gzwrite.c", 322 "third_party/zlib/infback.c", 323 "third_party/zlib/inffast.c", 324 "third_party/zlib/inftrees.c", 325 "third_party/zlib/trees.c", 326 "third_party/zlib/uncompr.c", 327 "third_party/zlib/zutil.c", 328 "third_party/zlib/inflate.c", 329 ], 330 host_supported: true, 331 local_include_dirs: ["third_party/zlib"], 332 apex_available: [ 333 "com.android.art.debug", 334 "com.android.art.release", 335 ], 336} 337