• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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