Home | History | Annotate | Download | only in v8
      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
     16 build = [
     17     "Android.base.bp",
     18     "Android.platform.bp",
     19     "Android.sampler.bp",
     20     "Android.v8.bp",
     21     "Android.v8gen.bp",
     22 ]
     23 
     24 cc_defaults {
     25     name: "v8_defaults",
     26 
     27     cflags: [
     28         "-Wall",
     29         "-Werror",
     30         "-Wno-endif-labels",
     31         "-Wno-implicit-fallthrough",
     32         "-Wno-import",
     33         "-Wno-format",
     34         "-Wno-unused-variable",
     35         "-Wno-unused-parameter",
     36         "-Wno-unused-private-field",
     37         "-Wno-sign-compare",
     38         "-Wno-missing-field-initializers",
     39         "-Wno-ignored-qualifiers",
     40         "-Wno-undefined-var-template",
     41         "-Wno-null-pointer-arithmetic",
     42         "-Wno-non-virtual-dtor",
     43         "-Wno-user-defined-warnings",
     44         "-Wno-unused-lambda-capture",
     45         "-fno-exceptions",
     46         "-fvisibility=hidden",
     47         "-DENABLE_DEBUGGER_SUPPORT",
     48         "-DENABLE_LOGGING_AND_PROFILING",
     49         "-DENABLE_VMSTATE_TRACKING",
     50         "-DV8_NATIVE_REGEXP",
     51         "-DV8_INTL_SUPPORT",
     52         "-DV8_CONCURRENT_MARKING",
     53         "-std=gnu++0x",
     54         "-Os",
     55     ],
     56 
     57     arch: {
     58         arm: {
     59             cflags: ["-DV8_TARGET_ARCH_ARM"],
     60         },
     61         arm64: {
     62             cflags: ["-DV8_TARGET_ARCH_ARM64"],
     63         },
     64         mips: {
     65             cflags: [
     66                 "-DV8_TARGET_ARCH_MIPS",
     67                 "-Umips",
     68                 "-finline-limit=64",
     69                 "-fno-strict-aliasing",
     70             ],
     71         },
     72         mips64: {
     73             cflags: [
     74                 "-DV8_TARGET_ARCH_MIPS64",
     75                 "-Umips",
     76                 "-finline-limit=64",
     77                 "-fno-strict-aliasing",
     78             ],
     79         },
     80         x86: {
     81             cflags: ["-DV8_TARGET_ARCH_IA32"],
     82         },
     83         x86_64: {
     84             cflags: ["-DV8_TARGET_ARCH_X64"],
     85         },
     86     },
     87 }
     88 
     89 cc_library_static {
     90     name: "libv8gen",
     91     defaults: ["v8_defaults"],
     92     srcs: ["src/snapshot/snapshot-empty.cc"],
     93     generated_sources: [
     94         "v8gen_libraries",
     95         "v8gen_extra_libraries",
     96         "v8gen_experimental_extra_libraries",
     97     ],
     98     cflags: ["-DANDROID_LINK_SHARED_ICU4C"],
     99     header_libs: [
    100         "libicuuc_headers",
    101         "libicui18n_headers",
    102     ],
    103     generated_headers: ["v8_torque_file"],
    104 }
    105 
    106 cc_binary_host {
    107     name: "v8_torque",
    108     defaults: ["v8_defaults"],
    109     srcs: [
    110         "src/torque/declarable.cc",
    111         "src/torque/declaration-visitor.cc",
    112         "src/torque/declarations.cc",
    113         "src/torque/earley-parser.cc",
    114         "src/torque/file-visitor.cc",
    115         "src/torque/implementation-visitor.cc",
    116         "src/torque/scope.cc",
    117         "src/torque/source-positions.cc",
    118         "src/torque/torque-parser.cc",
    119         "src/torque/type-oracle.cc",
    120         "src/torque/types.cc",
    121         "src/torque/utils.cc",
    122 
    123         "src/torque/torque.cc",
    124     ],
    125     static_libs: [
    126         "libv8base",
    127     ],
    128 }
    129 
    130 genrule {
    131     name: "v8_torque_file",
    132     tools: ["v8_torque"],
    133     srcs: [
    134           "src/builtins/base.tq",
    135           "src/builtins/array.tq",
    136           "src/builtins/array-copywithin.tq",
    137           "src/builtins/array-foreach.tq",
    138           "src/builtins/array-reverse.tq",
    139           "src/builtins/typed-array.tq",
    140           "src/builtins/data-view.tq",
    141           "third_party/v8/builtins/array-sort.tq",
    142     ],
    143     cmd: "mkdir -p $(genDir)/torque-generated/ && $(location v8_torque) -o $(genDir)/torque-generated/ $(in) && $(location v8_torque) -o $(genDir)/ $(in)",
    144     out: [
    145         "torque-generated/builtin-definitions-from-dsl.h",
    146         "torque-generated/builtins-base-from-dsl-gen.h",
    147         "torque-generated/builtins-array-from-dsl-gen.h",
    148         "torque-generated/builtins-typed-array-from-dsl-gen.h",
    149         "torque-generated/builtins-data-view-from-dsl-gen.h",
    150         "builtin-definitions-from-dsl.h",
    151         "builtins-base-from-dsl-gen.h",
    152         "builtins-array-from-dsl-gen.h",
    153         "builtins-typed-array-from-dsl-gen.h",
    154         "builtins-data-view-from-dsl-gen.h",
    155     ],
    156 }
    157 
    158 genrule {
    159     name: "v8_torque_file_cc",
    160     tools: ["v8_torque"],
    161     srcs: [
    162           "src/builtins/base.tq",
    163           "src/builtins/array.tq",
    164           "src/builtins/array-copywithin.tq",
    165           "src/builtins/array-foreach.tq",
    166           "src/builtins/array-reverse.tq",
    167           "src/builtins/typed-array.tq",
    168           "src/builtins/data-view.tq",
    169           //"test/torque/test-torque.tq",
    170           "third_party/v8/builtins/array-sort.tq",
    171     ],
    172     cmd: "mkdir -p $(genDir)/torque-generated/ && $(location v8_torque) -o $(genDir)/ $(in)",
    173     out: [
    174         "builtins-base-from-dsl-gen.cc",
    175         "builtins-array-from-dsl-gen.cc",
    176         "builtins-typed-array-from-dsl-gen.cc",
    177         "builtins-data-view-from-dsl-gen.cc",
    178     ],
    179 }
    180 
    181 
    182 python_binary_host {
    183     name: "v8_js2c",
    184     main: "tools/js2c.py",
    185     srcs: [
    186         "tools/js2c.py",
    187         "tools/jsmin.py",
    188     ],
    189     version: {
    190         py2: {
    191             enabled: true,
    192             embedded_launcher: true,
    193         },
    194         py3: {
    195             enabled: false,
    196         },
    197     },
    198 }
    199 
    200 genrule {
    201     name: "v8gen_libraries",
    202     tools: ["v8_js2c"],
    203     cmd: "$(location v8_js2c) $(out) CORE $(in)",
    204     srcs: [":v8_js_lib_files"],
    205     out: ["libraries.cc"],
    206 }
    207 
    208 genrule {
    209     name: "v8gen_extra_libraries",
    210     tools: ["v8_js2c"],
    211     cmd: "$(location v8_js2c) $(out) EXTRAS",
    212     out: ["extra-libraries.cc"],
    213 }
    214 
    215 genrule {
    216     name: "v8gen_experimental_extra_libraries",
    217     tools: ["v8_js2c"],
    218     cmd: "$(location v8_js2c) $(out) EXPERIMENTAL_EXTRAS",
    219     out: ["experimental-extra-libraries.cc"],
    220 }
    221 
    222 cc_library_static {
    223     name: "libv8",
    224     defaults: ["v8_defaults"],
    225     whole_static_libs: [
    226         "libv8base",
    227         "libv8platform",
    228         "libv8sampler",
    229         "libv8src",
    230         "libv8gen",
    231     ],
    232     export_include_dirs: ["include"],
    233 }
    234 
    235 // The bare 'd8' name conflicts with d8 from prebuilts/r8
    236 // NOT WORKING YET
    237 /*
    238 cc_binary {
    239     name: "v8_d8",
    240     defaults: ["v8_defaults"],
    241 
    242     srcs: [
    243         "src/d8.cc",
    244         "src/d8-posix.cc",
    245         "src/async-hooks-wrapper.cc",
    246         "src/d8-console.cc",
    247         //"src/inspector/v8-inspector-impl.cc",
    248     ],
    249     generated_sources: ["v8_d8_gen"],
    250     generated_headers: ["v8_torque_file"],
    251 
    252     static_libs: ["libv8"],
    253     shared_libs: [
    254         "liblog",
    255         "libicuuc",
    256         "libicui18n",
    257     ],
    258     cflags: ["-O0", "-DANDROID_LINK_SHARED_ICU4C"],
    259     local_include_dirs: ["include"],
    260 
    261     arch: {
    262         mips: {
    263             // Bug: http://b/31101212  WAR LLVM bug until next Clang update
    264             cflags: ["-O2"],
    265         },
    266     },
    267 }
    268 
    269 genrule {
    270     name: "v8_d8_gen",
    271     tools: ["v8_js2c"],
    272     cmd: "$(location v8_js2c) $(out) D8 $(in)",
    273     srcs: [
    274         "src/d8.js",
    275         "src/js/macros.py",
    276     ],
    277     out: ["d8-js.cc"],
    278 }
    279 */