| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 # Because standalone V8 builds are not supported, assume this is part of a | 5 # Because standalone V8 builds are not supported, assume this is part of a |
| 6 # Chromium build. | 6 # Chromium build. |
| 7 import("//build/module_args/v8.gni") | 7 import("//build/module_args/v8.gni") |
| 8 | 8 |
| 9 # TODO(jochen): These will need to be user-settable to support standalone V8 | 9 # TODO(jochen): These will need to be user-settable to support standalone V8 |
| 10 # builds. | 10 # builds. |
| 11 v8_deprecation_warnings = false | 11 v8_deprecation_warnings = false |
| 12 v8_enable_disassembler = false | 12 v8_enable_disassembler = false |
| 13 v8_enable_gdbjit = false | 13 v8_enable_gdbjit = false |
| 14 v8_enable_handle_zapping = true | 14 v8_enable_handle_zapping = true |
| 15 v8_enable_i18n_support = true | 15 v8_enable_i18n_support = true |
| 16 v8_enable_verify_heap = false | 16 v8_enable_verify_heap = false |
| 17 v8_interpreted_regexp = false | 17 v8_interpreted_regexp = false |
| 18 v8_object_print = false | 18 v8_object_print = false |
| 19 v8_postmortem_support = false | 19 v8_postmortem_support = false |
| 20 v8_use_snapshot = true | 20 v8_use_snapshot = true |
| 21 v8_enable_extra_checks = is_debug | 21 v8_enable_extra_checks = is_debug |
| 22 v8_target_arch = cpu_arch | 22 v8_target_arch = cpu_arch |
| 23 v8_random_seed = "314159265" | 23 v8_random_seed = "314159265" |
| 24 | 24 |
| 25 |
| 25 ############################################################################### | 26 ############################################################################### |
| 26 # Configurations | 27 # Configurations |
| 27 # | 28 # |
| 28 config("internal_config") { | 29 config("internal_config") { |
| 29 visibility = [ ":*" ] # Only targets in this file can depend on this. | 30 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 30 | 31 |
| 31 include_dirs = [ "." ] | 32 include_dirs = [ "." ] |
| 32 | 33 |
| 33 if (component_mode == "shared_library") { | 34 if (component_mode == "shared_library") { |
| 34 defines = [ | 35 defines = [ |
| (...skipping 20 matching lines...) Expand all Loading... |
| 55 } | 56 } |
| 56 include_dirs = [ "include" ] | 57 include_dirs = [ "include" ] |
| 57 } | 58 } |
| 58 | 59 |
| 59 config("features") { | 60 config("features") { |
| 60 visibility = [ ":*" ] # Only targets in this file can depend on this. | 61 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 61 | 62 |
| 62 defines = [] | 63 defines = [] |
| 63 | 64 |
| 64 if (v8_enable_disassembler == true) { | 65 if (v8_enable_disassembler == true) { |
| 65 defines += [ "ENABLE_DISASSEMBLER" ] | 66 defines += [ |
| 67 "ENABLE_DISASSEMBLER", |
| 68 ] |
| 66 } | 69 } |
| 67 if (v8_enable_gdbjit == true) { | 70 if (v8_enable_gdbjit == true) { |
| 68 defines += [ "ENABLE_GDB_JIT_INTERFACE" ] | 71 defines += [ |
| 72 "ENABLE_GDB_JIT_INTERFACE", |
| 73 ] |
| 69 } | 74 } |
| 70 if (v8_object_print == true) { | 75 if (v8_object_print == true) { |
| 71 defines += [ "OBJECT_PRINT" ] | 76 defines += [ |
| 77 "OBJECT_PRINT", |
| 78 ] |
| 72 } | 79 } |
| 73 if (v8_enable_verify_heap == true) { | 80 if (v8_enable_verify_heap == true) { |
| 74 defines += [ "VERIFY_HEAP" ] | 81 defines += [ |
| 82 "VERIFY_HEAP", |
| 83 ] |
| 75 } | 84 } |
| 76 if (v8_interpreted_regexp == true) { | 85 if (v8_interpreted_regexp == true) { |
| 77 defines += [ "V8_INTERPRETED_REGEXP" ] | 86 defines += [ |
| 87 "V8_INTERPRETED_REGEXP", |
| 88 ] |
| 78 } | 89 } |
| 79 if (v8_deprecation_warnings == true) { | 90 if (v8_deprecation_warnings == true) { |
| 80 defines += [ "V8_DEPRECATION_WARNINGS" ] | 91 defines += [ |
| 92 "V8_DEPRECATION_WARNINGS", |
| 93 ] |
| 81 } | 94 } |
| 82 if (v8_enable_i18n_support == true) { | 95 if (v8_enable_i18n_support == true) { |
| 83 defines += [ "V8_I18N_SUPPORT" ] | 96 defines += [ |
| 97 "V8_I18N_SUPPORT", |
| 98 ] |
| 84 } | 99 } |
| 85 if (v8_enable_extra_checks == true) { | 100 if (v8_enable_extra_checks == true) { |
| 86 defines += [ "ENABLE_EXTRA_CHECKS" ] | 101 defines += [ |
| 102 "ENABLE_EXTRA_CHECKS", |
| 103 ] |
| 87 } | 104 } |
| 88 if (v8_enable_handle_zapping == true) { | 105 if (v8_enable_handle_zapping == true) { |
| 89 defines += [ "ENABLE_HANDLE_ZAPPING" ] | 106 defines += [ |
| 107 "ENABLE_HANDLE_ZAPPING", |
| 108 ] |
| 90 } | 109 } |
| 91 if (v8_use_external_startup_data == true) { | 110 if (v8_use_external_startup_data == true) { |
| 92 defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ] | 111 defines += [ |
| 112 "V8_USE_EXTERNAL_STARTUP_DATA", |
| 113 ] |
| 93 } | 114 } |
| 94 } | 115 } |
| 95 | 116 |
| 96 config("toolchain") { | 117 config("toolchain") { |
| 97 visibility = [ ":*" ] # Only targets in this file can depend on this. | 118 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 98 | 119 |
| 99 defines = [] | 120 defines = [] |
| 100 cflags = [] | 121 cflags = [] |
| 101 | 122 |
| 102 # TODO(jochen): Add support for arm, mips, mipsel. | 123 # TODO(jochen): Add support for arm, mips, mipsel. |
| 103 | 124 |
| 104 if (v8_target_arch == "arm64") { | 125 if (v8_target_arch == "arm64") { |
| 105 defines += [ "V8_TARGET_ARCH_ARM64" ] | 126 defines += [ |
| 127 "V8_TARGET_ARCH_ARM64", |
| 128 ] |
| 106 } | 129 } |
| 107 if (v8_target_arch == "x86") { | 130 if (v8_target_arch == "x86") { |
| 108 defines += [ "V8_TARGET_ARCH_IA32" ] | 131 defines += [ |
| 132 "V8_TARGET_ARCH_IA32", |
| 133 ] |
| 109 } | 134 } |
| 110 if (v8_target_arch == "x64") { | 135 if (v8_target_arch == "x64") { |
| 111 defines += [ "V8_TARGET_ARCH_X64" ] | 136 defines += [ |
| 137 "V8_TARGET_ARCH_X64", |
| 138 ] |
| 112 } | 139 } |
| 113 if (is_win) { | 140 if (is_win) { |
| 114 defines += [ "WIN32" ] | 141 defines += [ |
| 142 "WIN32", |
| 143 ] |
| 115 # TODO(jochen): Support v8_enable_prof. | 144 # TODO(jochen): Support v8_enable_prof. |
| 116 } | 145 } |
| 117 | 146 |
| 118 # TODO(jochen): Add support for compiling with simulators. | 147 # TODO(jochen): Add support for compiling with simulators. |
| 119 | 148 |
| 120 if (is_debug) { | 149 if (is_debug) { |
| 121 # TODO(jochen): Add support for different debug optimization levels. | 150 # TODO(jochen): Add support for different debug optimization levels. |
| 122 defines += [ | 151 defines += [ |
| 123 "ENABLE_DISASSEMBLER", | 152 "ENABLE_DISASSEMBLER", |
| 124 "V8_ENABLE_CHECKS", | 153 "V8_ENABLE_CHECKS", |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 "src/json.js", | 196 "src/json.js", |
| 168 "src/array-iterator.js", | 197 "src/array-iterator.js", |
| 169 "src/string-iterator.js", | 198 "src/string-iterator.js", |
| 170 "src/debug-debugger.js", | 199 "src/debug-debugger.js", |
| 171 "src/mirror-debugger.js", | 200 "src/mirror-debugger.js", |
| 172 "src/liveedit-debugger.js", | 201 "src/liveedit-debugger.js", |
| 173 "src/macros.py", | 202 "src/macros.py", |
| 174 ] | 203 ] |
| 175 | 204 |
| 176 outputs = [ | 205 outputs = [ |
| 177 "$target_gen_dir/libraries.cc", | 206 "$target_gen_dir/libraries.cc" |
| 178 ] | 207 ] |
| 179 | 208 |
| 180 if (v8_enable_i18n_support) { | 209 if (v8_enable_i18n_support) { |
| 181 sources += [ "src/i18n.js" ] | 210 sources += [ "src/i18n.js" ] |
| 182 } | 211 } |
| 183 | 212 |
| 184 args = [ | 213 args = [ |
| 185 rebase_path("$target_gen_dir/libraries.cc", root_build_dir), | 214 rebase_path("$target_gen_dir/libraries.cc", root_build_dir), |
| 186 "CORE", | 215 "CORE", |
| 187 ] + rebase_path(sources, root_build_dir) | 216 ] + rebase_path(sources, root_build_dir) |
| 188 | 217 |
| 189 if (v8_use_external_startup_data) { | 218 if (v8_use_external_startup_data) { |
| 190 outputs += [ "$target_gen_dir/libraries.bin" ] | 219 outputs += [ "$target_gen_dir/libraries.bin" ] |
| 191 args += [ | 220 args += [ |
| 192 "--startup_blob", | 221 "--startup_blob", |
| 193 rebase_path("$target_gen_dir/libraries.bin", root_build_dir), | 222 rebase_path("$target_gen_dir/libraries.bin", root_build_dir) |
| 194 ] | 223 ] |
| 195 } | 224 } |
| 196 } | 225 } |
| 197 | 226 |
| 198 action("d8_js2c") { | |
| 199 visibility = [ ":*" ] # Only targets in this file can depend on this. | |
| 200 | |
| 201 script = "tools/js2c.py" | |
| 202 | |
| 203 inputs = [ | |
| 204 "src/d8.js", | |
| 205 "src/macros.py", | |
| 206 ] | |
| 207 outputs = [ | |
| 208 "$target_gen_dir/d8-js.cc", | |
| 209 ] | |
| 210 | |
| 211 args = rebase_path(outputs, root_build_dir) + [ "D8" ] + | |
| 212 rebase_path(inputs, root_build_dir) | |
| 213 } | |
| 214 | |
| 215 action("js2c_experimental") { | 227 action("js2c_experimental") { |
| 216 visibility = [ ":*" ] # Only targets in this file can depend on this. | 228 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 217 | 229 |
| 218 script = "tools/js2c.py" | 230 script = "tools/js2c.py" |
| 219 | 231 |
| 220 # The script depends on this other script, this rule causes a rebuild if it | 232 # The script depends on this other script, this rule causes a rebuild if it |
| 221 # changes. | 233 # changes. |
| 222 source_prereqs = [ "tools/jsmin.py" ] | 234 source_prereqs = [ "tools/jsmin.py" ] |
| 223 | 235 |
| 224 sources = [ | 236 sources = [ |
| 225 "src/macros.py", | 237 "src/macros.py", |
| 226 "src/proxy.js", | 238 "src/proxy.js", |
| 227 "src/generator.js", | 239 "src/generator.js", |
| 228 "src/harmony-string.js", | 240 "src/harmony-string.js", |
| 229 "src/harmony-array.js", | 241 "src/harmony-array.js", |
| 230 "src/harmony-array-includes.js", | 242 "src/harmony-array-includes.js", |
| 231 "src/harmony-typedarray.js", | 243 "src/harmony-typedarray.js", |
| 232 "src/harmony-classes.js", | 244 "src/harmony-classes.js", |
| 233 "src/harmony-tostring.js", | 245 "src/harmony-tostring.js", |
| 234 "src/harmony-templates.js", | 246 "src/harmony-templates.js", |
| 235 "src/harmony-regexp.js", | 247 "src/harmony-regexp.js" |
| 236 ] | 248 ] |
| 237 | 249 |
| 238 outputs = [ | 250 outputs = [ |
| 239 "$target_gen_dir/experimental-libraries.cc", | 251 "$target_gen_dir/experimental-libraries.cc" |
| 240 ] | 252 ] |
| 241 | 253 |
| 242 args = [ | 254 args = [ |
| 243 rebase_path("$target_gen_dir/experimental-libraries.cc", | 255 rebase_path("$target_gen_dir/experimental-libraries.cc", root_build_dir), |
| 244 root_build_dir), | 256 "EXPERIMENTAL", |
| 245 "EXPERIMENTAL", | 257 ] + rebase_path(sources, root_build_dir) |
| 246 ] + rebase_path(sources, root_build_dir) | |
| 247 | 258 |
| 248 if (v8_use_external_startup_data) { | 259 if (v8_use_external_startup_data) { |
| 249 outputs += [ "$target_gen_dir/libraries_experimental.bin" ] | 260 outputs += [ "$target_gen_dir/libraries_experimental.bin" ] |
| 250 args += [ | 261 args += [ |
| 251 "--startup_blob", | 262 "--startup_blob", |
| 252 rebase_path("$target_gen_dir/libraries_experimental.bin", root_build_dir), | 263 rebase_path("$target_gen_dir/libraries_experimental.bin", root_build_dir) |
| 253 ] | 264 ] |
| 254 } | 265 } |
| 255 } | 266 } |
| 256 | 267 |
| 257 if (v8_use_external_startup_data) { | 268 if (v8_use_external_startup_data) { |
| 258 action("natives_blob") { | 269 action("natives_blob") { |
| 259 visibility = [ ":*" ] # Only targets in this file can depend on this. | 270 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 260 | 271 |
| 261 deps = [ | 272 deps = [ |
| 262 ":js2c", | 273 ":js2c", |
| 263 ":js2c_experimental", | 274 ":js2c_experimental" |
| 264 ] | 275 ] |
| 265 | 276 |
| 266 sources = [ | 277 sources = [ |
| 267 "$target_gen_dir/libraries.bin", | 278 "$target_gen_dir/libraries.bin", |
| 268 "$target_gen_dir/libraries_experimental.bin", | 279 "$target_gen_dir/libraries_experimental.bin" |
| 269 ] | 280 ] |
| 270 | 281 |
| 271 outputs = [ | 282 outputs = [ |
| 272 "$root_out_dir/natives_blob.bin", | 283 "$root_out_dir/natives_blob.bin" |
| 273 ] | 284 ] |
| 274 | 285 |
| 275 script = "tools/concatenate-files.py" | 286 script = "tools/concatenate-files.py" |
| 276 | 287 |
| 277 args = rebase_path(sources + outputs, root_build_dir) | 288 args = rebase_path(sources + outputs, root_build_dir) |
| 278 } | 289 } |
| 279 } | 290 } |
| 280 | 291 |
| 281 action("postmortem-metadata") { | 292 action("postmortem-metadata") { |
| 282 visibility = [ ":*" ] # Only targets in this file can depend on this. | 293 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 283 | 294 |
| 284 script = "tools/gen-postmortem-metadata.py" | 295 script = "tools/gen-postmortem-metadata.py" |
| 285 | 296 |
| 286 sources = [ | 297 sources = [ |
| 287 "src/objects.h", | 298 "src/objects.h", |
| 288 "src/objects-inl.h", | 299 "src/objects-inl.h", |
| 289 ] | 300 ] |
| 290 | 301 |
| 291 outputs = [ | 302 outputs = [ |
| 292 "$target_gen_dir/debug-support.cc", | 303 "$target_gen_dir/debug-support.cc" |
| 293 ] | 304 ] |
| 294 | 305 |
| 295 args = rebase_path(outputs, root_build_dir) + | 306 args = |
| 296 rebase_path(sources, root_build_dir) | 307 rebase_path(outputs, root_build_dir) + |
| 308 rebase_path(sources, root_build_dir) |
| 297 } | 309 } |
| 298 | 310 |
| 299 action("run_mksnapshot") { | 311 action("run_mksnapshot") { |
| 300 visibility = [ ":*" ] # Only targets in this file can depend on this. | 312 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 301 | 313 |
| 302 deps = [ | 314 deps = [ ":mksnapshot($host_toolchain)" ] |
| 303 ":mksnapshot($host_toolchain)", | |
| 304 ] | |
| 305 | 315 |
| 306 script = "tools/run.py" | 316 script = "tools/run.py" |
| 307 | 317 |
| 308 outputs = [ | 318 outputs = [ |
| 309 "$target_gen_dir/snapshot.cc", | 319 "$target_gen_dir/snapshot.cc" |
| 310 ] | 320 ] |
| 311 | 321 |
| 312 args = [ | 322 args = [ |
| 313 "./" + rebase_path(get_label_info(":mksnapshot($host_toolchain)", | 323 "./" + rebase_path(get_label_info(":mksnapshot($host_toolchain)", |
| 314 "root_out_dir") + "/mksnapshot", | 324 "root_out_dir") + "/mksnapshot", |
| 315 root_build_dir), | 325 root_build_dir), |
| 316 "--log-snapshot-positions", | 326 "--log-snapshot-positions", |
| 317 "--logfile", | 327 "--logfile", rebase_path("$target_gen_dir/snapshot.log", root_build_dir), |
| 318 rebase_path("$target_gen_dir/snapshot.log", root_build_dir), | 328 rebase_path("$target_gen_dir/snapshot.cc", root_build_dir) |
| 319 rebase_path("$target_gen_dir/snapshot.cc", root_build_dir), | |
| 320 ] | 329 ] |
| 321 | 330 |
| 322 if (v8_random_seed != "0") { | 331 if (v8_random_seed != "0") { |
| 323 args += [ | 332 args += [ "--random-seed", v8_random_seed ] |
| 324 "--random-seed", | |
| 325 v8_random_seed, | |
| 326 ] | |
| 327 } | 333 } |
| 328 | 334 |
| 329 if (v8_use_external_startup_data) { | 335 if (v8_use_external_startup_data) { |
| 330 outputs += [ "$root_out_dir/snapshot_blob.bin" ] | 336 outputs += [ "$root_out_dir/snapshot_blob.bin" ] |
| 331 args += [ | 337 args += [ |
| 332 "--startup_blob", | 338 "--startup_blob", |
| 333 rebase_path("$root_out_dir/snapshot_blob.bin", root_build_dir), | 339 rebase_path("$root_out_dir/snapshot_blob.bin", root_build_dir) |
| 334 ] | 340 ] |
| 335 } | 341 } |
| 336 } | 342 } |
| 337 | 343 |
| 344 |
| 338 ############################################################################### | 345 ############################################################################### |
| 339 # Source Sets (aka static libraries) | 346 # Source Sets (aka static libraries) |
| 340 # | 347 # |
| 341 | 348 |
| 342 source_set("v8_nosnapshot") { | 349 source_set("v8_nosnapshot") { |
| 343 visibility = [ ":*" ] # Only targets in this file can depend on this. | 350 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 344 | 351 |
| 345 deps = [ | 352 deps = [ |
| 346 ":js2c", | 353 ":js2c", |
| 347 ":js2c_experimental", | 354 ":js2c_experimental", |
| 348 ":v8_base", | 355 ":v8_base", |
| 349 ] | 356 ] |
| 350 | 357 |
| 351 sources = [ | 358 sources = [ |
| 352 "$target_gen_dir/libraries.cc", | 359 "$target_gen_dir/libraries.cc", |
| 353 "$target_gen_dir/experimental-libraries.cc", | 360 "$target_gen_dir/experimental-libraries.cc", |
| 354 "src/snapshot-empty.cc", | 361 "src/snapshot-empty.cc", |
| 355 ] | 362 ] |
| 356 | 363 |
| 357 configs -= [ "//build/config/compiler:chromium_code" ] | 364 configs -= [ "//build/config/compiler:chromium_code" ] |
| 358 configs += [ "//build/config/compiler:no_chromium_code" ] | 365 configs += [ "//build/config/compiler:no_chromium_code" ] |
| 359 configs += [ | 366 configs += [ ":internal_config", ":features", ":toolchain" ] |
| 360 ":internal_config", | |
| 361 ":features", | |
| 362 ":toolchain", | |
| 363 ] | |
| 364 } | 367 } |
| 365 | 368 |
| 366 source_set("v8_snapshot") { | 369 source_set("v8_snapshot") { |
| 367 visibility = [ ":*" ] # Only targets in this file can depend on this. | 370 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 368 | 371 |
| 369 deps = [ | 372 deps = [ |
| 370 ":js2c", | 373 ":js2c", |
| 371 ":js2c_experimental", | 374 ":js2c_experimental", |
| 372 ":run_mksnapshot", | 375 ":run_mksnapshot", |
| 373 ":v8_base", | 376 ":v8_base", |
| 374 ] | 377 ] |
| 375 | 378 |
| 376 sources = [ | 379 sources = [ |
| 377 "$target_gen_dir/libraries.cc", | 380 "$target_gen_dir/libraries.cc", |
| 378 "$target_gen_dir/experimental-libraries.cc", | 381 "$target_gen_dir/experimental-libraries.cc", |
| 379 "$target_gen_dir/snapshot.cc", | 382 "$target_gen_dir/snapshot.cc", |
| 380 ] | 383 ] |
| 381 | 384 |
| 382 configs -= [ "//build/config/compiler:chromium_code" ] | 385 configs -= [ "//build/config/compiler:chromium_code" ] |
| 383 configs += [ "//build/config/compiler:no_chromium_code" ] | 386 configs += [ "//build/config/compiler:no_chromium_code" ] |
| 384 configs += [ | 387 configs += [ ":internal_config", ":features", ":toolchain" ] |
| 385 ":internal_config", | |
| 386 ":features", | |
| 387 ":toolchain", | |
| 388 ] | |
| 389 } | 388 } |
| 390 | 389 |
| 391 if (v8_use_external_startup_data) { | 390 if (v8_use_external_startup_data) { |
| 392 source_set("v8_external_snapshot") { | 391 source_set("v8_external_snapshot") { |
| 393 visibility = [ ":*" ] # Only targets in this file can depend on this. | 392 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 394 | 393 |
| 395 deps = [ | 394 deps = [ |
| 396 ":js2c", | 395 ":js2c", |
| 397 ":js2c_experimental", | 396 ":js2c_experimental", |
| 398 ":run_mksnapshot", | 397 ":run_mksnapshot", |
| 399 ":v8_base", | 398 ":v8_base", |
| 400 ":natives_blob", | 399 ":natives_blob", |
| 401 ] | 400 ] |
| 402 | 401 |
| 403 sources = [ | 402 sources = [ |
| 404 "src/natives-external.cc", | 403 "src/natives-external.cc", |
| 405 "src/snapshot-external.cc", | 404 "src/snapshot-external.cc", |
| 406 ] | 405 ] |
| 407 | 406 |
| 408 configs -= [ "//build/config/compiler:chromium_code" ] | 407 configs -= [ "//build/config/compiler:chromium_code" ] |
| 409 configs += [ "//build/config/compiler:no_chromium_code" ] | 408 configs += [ "//build/config/compiler:no_chromium_code" ] |
| 410 configs += [ | 409 configs += [ ":internal_config", ":features", ":toolchain" ] |
| 411 ":internal_config", | |
| 412 ":features", | |
| 413 ":toolchain", | |
| 414 ] | |
| 415 } | 410 } |
| 416 } | 411 } |
| 417 | 412 |
| 418 source_set("v8_base") { | 413 source_set("v8_base") { |
| 419 visibility = [ ":*" ] # Only targets in this file can depend on this. | 414 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 420 | 415 |
| 421 sources = [ | 416 sources = [ |
| 422 "src/accessors.cc", | 417 "src/accessors.cc", |
| 423 "src/accessors.h", | 418 "src/accessors.h", |
| 424 "src/allocation.cc", | 419 "src/allocation.cc", |
| (...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1207 "src/ic/mips64/access-compiler-mips64.cc", | 1202 "src/ic/mips64/access-compiler-mips64.cc", |
| 1208 "src/ic/mips64/handler-compiler-mips64.cc", | 1203 "src/ic/mips64/handler-compiler-mips64.cc", |
| 1209 "src/ic/mips64/ic-mips64.cc", | 1204 "src/ic/mips64/ic-mips64.cc", |
| 1210 "src/ic/mips64/ic-compiler-mips64.cc", | 1205 "src/ic/mips64/ic-compiler-mips64.cc", |
| 1211 "src/ic/mips64/stub-cache-mips64.cc", | 1206 "src/ic/mips64/stub-cache-mips64.cc", |
| 1212 ] | 1207 ] |
| 1213 } | 1208 } |
| 1214 | 1209 |
| 1215 configs -= [ "//build/config/compiler:chromium_code" ] | 1210 configs -= [ "//build/config/compiler:chromium_code" ] |
| 1216 configs += [ "//build/config/compiler:no_chromium_code" ] | 1211 configs += [ "//build/config/compiler:no_chromium_code" ] |
| 1217 configs += [ | 1212 configs += [ ":internal_config", ":features", ":toolchain" ] |
| 1218 ":internal_config", | |
| 1219 ":features", | |
| 1220 ":toolchain", | |
| 1221 ] | |
| 1222 | 1213 |
| 1223 if (!is_debug) { | 1214 if (!is_debug) { |
| 1224 configs -= [ "//build/config/compiler:optimize" ] | 1215 configs -= [ "//build/config/compiler:optimize" ] |
| 1225 configs += [ "//build/config/compiler:optimize_max" ] | 1216 configs += [ "//build/config/compiler:optimize_max" ] |
| 1226 } | 1217 } |
| 1227 | 1218 |
| 1228 defines = [] | 1219 defines = [] |
| 1229 deps = [ | 1220 deps = [ ":v8_libbase" ] |
| 1230 ":v8_libbase", | |
| 1231 ] | |
| 1232 | 1221 |
| 1233 if (is_win) { | 1222 if (is_win) { |
| 1234 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. | 1223 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. |
| 1235 cflags = [ "/wd4267" ] | 1224 cflags = [ "/wd4267" ] |
| 1236 } | 1225 } |
| 1237 | 1226 |
| 1238 if (v8_enable_i18n_support) { | 1227 if (v8_enable_i18n_support) { |
| 1239 deps += [ "//third_party/icu" ] | 1228 deps += [ "//third_party/icu" ] |
| 1240 if (is_win) { | 1229 if (is_win) { |
| 1241 deps += [ "//third_party/icu:icudata" ] | 1230 deps += [ "//third_party/icu:icudata" ] |
| 1242 } | 1231 } |
| 1243 | |
| 1244 # TODO(jochen): Add support for icu_use_data_file_flag | 1232 # TODO(jochen): Add support for icu_use_data_file_flag |
| 1245 defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ] | 1233 defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ] |
| 1246 } else { | 1234 } else { |
| 1247 sources -= [ | 1235 sources -= [ |
| 1248 "src/i18n.cc", | 1236 "src/i18n.cc", |
| 1249 "src/i18n.h", | 1237 "src/i18n.h", |
| 1250 ] | 1238 ] |
| 1251 } | 1239 } |
| 1252 | 1240 |
| 1253 if (v8_postmortem_support) { | 1241 if (v8_postmortem_support) { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1302 "src/base/safe_math.h", | 1290 "src/base/safe_math.h", |
| 1303 "src/base/safe_math_impl.h", | 1291 "src/base/safe_math_impl.h", |
| 1304 "src/base/sys-info.cc", | 1292 "src/base/sys-info.cc", |
| 1305 "src/base/sys-info.h", | 1293 "src/base/sys-info.h", |
| 1306 "src/base/utils/random-number-generator.cc", | 1294 "src/base/utils/random-number-generator.cc", |
| 1307 "src/base/utils/random-number-generator.h", | 1295 "src/base/utils/random-number-generator.h", |
| 1308 ] | 1296 ] |
| 1309 | 1297 |
| 1310 configs -= [ "//build/config/compiler:chromium_code" ] | 1298 configs -= [ "//build/config/compiler:chromium_code" ] |
| 1311 configs += [ "//build/config/compiler:no_chromium_code" ] | 1299 configs += [ "//build/config/compiler:no_chromium_code" ] |
| 1312 configs += [ | 1300 configs += [ ":internal_config_base", ":features", ":toolchain" ] |
| 1313 ":internal_config_base", | |
| 1314 ":features", | |
| 1315 ":toolchain", | |
| 1316 ] | |
| 1317 | 1301 |
| 1318 if (!is_debug) { | 1302 if (!is_debug) { |
| 1319 configs -= [ "//build/config/compiler:optimize" ] | 1303 configs -= [ "//build/config/compiler:optimize" ] |
| 1320 configs += [ "//build/config/compiler:optimize_max" ] | 1304 configs += [ "//build/config/compiler:optimize_max" ] |
| 1321 } | 1305 } |
| 1322 | 1306 |
| 1323 defines = [] | 1307 defines = [] |
| 1324 | 1308 |
| 1325 if (is_posix) { | 1309 if (is_posix) { |
| 1326 sources += [ "src/base/platform/platform-posix.cc" ] | 1310 sources += [ |
| 1311 "src/base/platform/platform-posix.cc" |
| 1312 ] |
| 1327 } | 1313 } |
| 1328 | 1314 |
| 1329 if (is_linux) { | 1315 if (is_linux) { |
| 1330 sources += [ "src/base/platform/platform-linux.cc" ] | 1316 sources += [ |
| 1317 "src/base/platform/platform-linux.cc" |
| 1318 ] |
| 1331 | 1319 |
| 1332 libs = [ "rt" ] | 1320 libs = [ "rt" ] |
| 1333 } else if (is_android) { | 1321 } else if (is_android) { |
| 1334 defines += [ "CAN_USE_VFP_INSTRUCTIONS" ] | 1322 defines += [ "CAN_USE_VFP_INSTRUCTIONS" ] |
| 1335 | 1323 |
| 1336 if (build_os == "mac") { | 1324 if (build_os == "mac") { |
| 1337 if (current_toolchain == host_toolchain) { | 1325 if (current_toolchain == host_toolchain) { |
| 1338 sources += [ "src/base/platform/platform-macos.cc" ] | 1326 sources += [ "src/base/platform/platform-macos.cc" ] |
| 1339 } else { | 1327 } else { |
| 1340 sources += [ "src/base/platform/platform-linux.cc" ] | 1328 sources += [ "src/base/platform/platform-linux.cc" ] |
| 1341 } | 1329 } |
| 1342 } else { | 1330 } else { |
| 1343 sources += [ "src/base/platform/platform-linux.cc" ] | 1331 sources += [ "src/base/platform/platform-linux.cc" ] |
| 1344 if (current_toolchain == host_toolchain) { | 1332 if (current_toolchain == host_toolchain) { |
| 1345 defines += [ "V8_LIBRT_NOT_AVAILABLE" ] | 1333 defines += [ "V8_LIBRT_NOT_AVAILABLE" ] |
| 1346 } | 1334 } |
| 1347 } | 1335 } |
| 1348 } else if (is_mac) { | 1336 } else if (is_mac) { |
| 1349 sources += [ "src/base/platform/platform-macos.cc" ] | 1337 sources += [ "src/base/platform/platform-macos.cc" ] |
| 1350 } else if (is_win) { | 1338 } else if (is_win) { |
| 1351 # TODO(jochen): Add support for cygwin. | 1339 # TODO(jochen): Add support for cygwin. |
| 1352 sources += [ | 1340 sources += [ |
| 1353 "src/base/platform/platform-win32.cc", | 1341 "src/base/platform/platform-win32.cc", |
| 1354 "src/base/win32-headers.h", | 1342 "src/base/win32-headers.h", |
| 1355 ] | 1343 ] |
| 1356 | 1344 |
| 1357 defines += [ "_CRT_RAND_S" ] # for rand_s() | 1345 defines += [ "_CRT_RAND_S" ] # for rand_s() |
| 1358 | 1346 |
| 1359 libs = [ | 1347 libs = [ "winmm.lib", "ws2_32.lib" ] |
| 1360 "winmm.lib", | |
| 1361 "ws2_32.lib", | |
| 1362 ] | |
| 1363 } | 1348 } |
| 1364 | 1349 |
| 1365 # TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris. | 1350 # TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris. |
| 1366 } | 1351 } |
| 1367 | 1352 |
| 1368 source_set("v8_libplatform") { | 1353 source_set("v8_libplatform") { |
| 1369 sources = [ | 1354 sources = [ |
| 1370 "include/libplatform/libplatform.h", | 1355 "include/libplatform/libplatform.h", |
| 1371 "src/libplatform/default-platform.cc", | 1356 "src/libplatform/default-platform.cc", |
| 1372 "src/libplatform/default-platform.h", | 1357 "src/libplatform/default-platform.h", |
| 1373 "src/libplatform/task-queue.cc", | 1358 "src/libplatform/task-queue.cc", |
| 1374 "src/libplatform/task-queue.h", | 1359 "src/libplatform/task-queue.h", |
| 1375 "src/libplatform/worker-thread.cc", | 1360 "src/libplatform/worker-thread.cc", |
| 1376 "src/libplatform/worker-thread.h", | 1361 "src/libplatform/worker-thread.h", |
| 1377 ] | 1362 ] |
| 1378 | 1363 |
| 1379 configs -= [ "//build/config/compiler:chromium_code" ] | 1364 configs -= [ "//build/config/compiler:chromium_code" ] |
| 1380 configs += [ "//build/config/compiler:no_chromium_code" ] | 1365 configs += [ "//build/config/compiler:no_chromium_code" ] |
| 1381 configs += [ | 1366 configs += [ ":internal_config_base", ":features", ":toolchain" ] |
| 1382 ":internal_config_base", | |
| 1383 ":features", | |
| 1384 ":toolchain", | |
| 1385 ] | |
| 1386 | 1367 |
| 1387 if (!is_debug) { | 1368 if (!is_debug) { |
| 1388 configs -= [ "//build/config/compiler:optimize" ] | 1369 configs -= [ "//build/config/compiler:optimize" ] |
| 1389 configs += [ "//build/config/compiler:optimize_max" ] | 1370 configs += [ "//build/config/compiler:optimize_max" ] |
| 1390 } | 1371 } |
| 1391 | 1372 |
| 1392 deps = [ | 1373 deps = [ |
| 1393 ":v8_libbase", | 1374 ":v8_libbase", |
| 1394 ] | 1375 ] |
| 1395 } | 1376 } |
| 1396 | 1377 |
| 1397 ############################################################################### | 1378 ############################################################################### |
| 1398 # Executables | 1379 # Executables |
| 1399 # | 1380 # |
| 1400 | 1381 |
| 1401 if (current_toolchain == host_toolchain) { | 1382 if (current_toolchain == host_toolchain) { |
| 1402 executable("mksnapshot") { | 1383 executable("mksnapshot") { |
| 1403 visibility = [ ":*" ] # Only targets in this file can depend on this. | 1384 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 1404 | 1385 |
| 1405 sources = [ | 1386 sources = [ |
| 1406 "src/mksnapshot.cc", | 1387 "src/mksnapshot.cc", |
| 1407 ] | 1388 ] |
| 1408 | 1389 |
| 1409 configs -= [ "//build/config/compiler:chromium_code" ] | 1390 configs -= [ "//build/config/compiler:chromium_code" ] |
| 1410 configs += [ "//build/config/compiler:no_chromium_code" ] | 1391 configs += [ "//build/config/compiler:no_chromium_code" ] |
| 1411 configs += [ | 1392 configs += [ ":internal_config", ":features", ":toolchain" ] |
| 1412 ":internal_config", | |
| 1413 ":features", | |
| 1414 ":toolchain", | |
| 1415 ] | |
| 1416 | 1393 |
| 1417 deps = [ | 1394 deps = [ |
| 1418 ":v8_base", | 1395 ":v8_base", |
| 1419 ":v8_libplatform", | 1396 ":v8_libplatform", |
| 1420 ":v8_nosnapshot", | 1397 ":v8_nosnapshot", |
| 1421 "//build/config/sanitizers:deps", | 1398 "//build/config/sanitizers:deps", |
| 1422 ] | 1399 ] |
| 1423 } | 1400 } |
| 1424 | |
| 1425 executable("d8") { | |
| 1426 sources = [ | |
| 1427 "src/d8.cc", | |
| 1428 ] | |
| 1429 deps = [ | |
| 1430 ":d8_js2c", | |
| 1431 ":v8", | |
| 1432 ":v8_libplatform", | |
| 1433 ] | |
| 1434 | |
| 1435 configs += [ | |
| 1436 ":internal_config", | |
| 1437 ":features", | |
| 1438 ":toolchain", | |
| 1439 ] | |
| 1440 | |
| 1441 # TODO(GYP): Build option for readline support. | |
| 1442 | |
| 1443 if (is_posix) { | |
| 1444 sources += [ "src/d8-posix.cc" ] | |
| 1445 } else if (is_win) { | |
| 1446 sources += [ "src/d8-windows.cc" ] | |
| 1447 } | |
| 1448 | |
| 1449 if (component_mode != "shared_library") { | |
| 1450 sources += [ | |
| 1451 "src/d8-debug.cc", | |
| 1452 "$target_gen_dir/d8-js.cc", | |
| 1453 ] | |
| 1454 } | |
| 1455 if (v8_enable_i18n_support) { | |
| 1456 deps += [ "//third_party/icu" ] | |
| 1457 } | |
| 1458 | |
| 1459 # TODO(GYP) v8_enable_vtunejit support in d8. | |
| 1460 } | |
| 1461 } | 1401 } |
| 1462 | 1402 |
| 1463 ############################################################################### | 1403 ############################################################################### |
| 1464 # Public targets | 1404 # Public targets |
| 1465 # | 1405 # |
| 1466 | 1406 |
| 1467 if (component_mode == "shared_library") { | 1407 if (component_mode == "shared_library") { |
| 1468 component("v8") { | 1408 |
| 1469 sources = [ | 1409 component("v8") { |
| 1470 "src/v8dll-main.cc", | 1410 sources = [ |
| 1411 "src/v8dll-main.cc", |
| 1412 ] |
| 1413 |
| 1414 if (v8_use_snapshot && v8_use_external_startup_data) { |
| 1415 deps = [ |
| 1416 ":v8_base", |
| 1417 ":v8_external_snapshot", |
| 1471 ] | 1418 ] |
| 1419 } else if (v8_use_snapshot) { |
| 1420 deps = [ |
| 1421 ":v8_base", |
| 1422 ":v8_snapshot", |
| 1423 ] |
| 1424 } else { |
| 1425 assert(!v8_use_external_startup_data) |
| 1426 deps = [ |
| 1427 ":v8_base", |
| 1428 ":v8_nosnapshot", |
| 1429 ] |
| 1430 } |
| 1472 | 1431 |
| 1473 if (v8_use_snapshot && v8_use_external_startup_data) { | 1432 configs -= [ "//build/config/compiler:chromium_code" ] |
| 1474 deps = [ | 1433 configs += [ "//build/config/compiler:no_chromium_code" ] |
| 1475 ":v8_base", | 1434 configs += [ ":internal_config", ":features", ":toolchain" ] |
| 1476 ":v8_external_snapshot", | |
| 1477 ] | |
| 1478 } else if (v8_use_snapshot) { | |
| 1479 deps = [ | |
| 1480 ":v8_base", | |
| 1481 ":v8_snapshot", | |
| 1482 ] | |
| 1483 } else { | |
| 1484 assert(!v8_use_external_startup_data) | |
| 1485 deps = [ | |
| 1486 ":v8_base", | |
| 1487 ":v8_nosnapshot", | |
| 1488 ] | |
| 1489 } | |
| 1490 | 1435 |
| 1491 configs -= [ "//build/config/compiler:chromium_code" ] | 1436 direct_dependent_configs = [ ":external_config" ] |
| 1492 configs += [ "//build/config/compiler:no_chromium_code" ] | |
| 1493 configs += [ | |
| 1494 ":internal_config", | |
| 1495 ":features", | |
| 1496 ":toolchain", | |
| 1497 ] | |
| 1498 | 1437 |
| 1499 direct_dependent_configs = [ ":external_config" ] | 1438 libs = [] |
| 1500 | 1439 if (is_android && current_toolchain != host_toolchain) { |
| 1501 libs = [] | 1440 libs += [ "log" ] |
| 1502 if (is_android && current_toolchain != host_toolchain) { | |
| 1503 libs += [ "log" ] | |
| 1504 } | |
| 1505 } | |
| 1506 } else { | |
| 1507 group("v8") { | |
| 1508 if (v8_use_snapshot && v8_use_external_startup_data) { | |
| 1509 deps = [ | |
| 1510 ":v8_base", | |
| 1511 ":v8_external_snapshot", | |
| 1512 ] | |
| 1513 } else if (v8_use_snapshot) { | |
| 1514 deps = [ | |
| 1515 ":v8_base", | |
| 1516 ":v8_snapshot", | |
| 1517 ] | |
| 1518 } else { | |
| 1519 assert(!v8_use_external_startup_data) | |
| 1520 deps = [ | |
| 1521 ":v8_base", | |
| 1522 ":v8_nosnapshot", | |
| 1523 ] | |
| 1524 } | |
| 1525 | |
| 1526 direct_dependent_configs = [ ":external_config" ] | |
| 1527 } | 1441 } |
| 1528 } | 1442 } |
| 1443 |
| 1444 } else { |
| 1445 |
| 1446 group("v8") { |
| 1447 if (v8_use_snapshot && v8_use_external_startup_data) { |
| 1448 deps = [ |
| 1449 ":v8_base", |
| 1450 ":v8_external_snapshot", |
| 1451 ] |
| 1452 } else if (v8_use_snapshot) { |
| 1453 deps = [ |
| 1454 ":v8_base", |
| 1455 ":v8_snapshot", |
| 1456 ] |
| 1457 } else { |
| 1458 assert(!v8_use_external_startup_data) |
| 1459 deps = [ |
| 1460 ":v8_base", |
| 1461 ":v8_nosnapshot", |
| 1462 ] |
| 1463 } |
| 1464 |
| 1465 direct_dependent_configs = [ ":external_config" ] |
| 1466 } |
| 1467 |
| 1468 } |
| OLD | NEW |