Index: BUILD.gn |
diff --git a/BUILD.gn b/BUILD.gn |
index 6534eea85948104dffd43635282a3d14f370bc82..08723de2a8fb6631e11e91c3ff3523d27c592acd 100644 |
--- a/BUILD.gn |
+++ b/BUILD.gn |
@@ -22,7 +22,6 @@ v8_enable_extra_checks = is_debug |
v8_target_arch = cpu_arch |
v8_random_seed = "314159265" |
- |
############################################################################### |
# Configurations |
# |
@@ -63,54 +62,34 @@ config("features") { |
defines = [] |
if (v8_enable_disassembler == true) { |
- defines += [ |
- "ENABLE_DISASSEMBLER", |
- ] |
+ defines += [ "ENABLE_DISASSEMBLER" ] |
} |
if (v8_enable_gdbjit == true) { |
- defines += [ |
- "ENABLE_GDB_JIT_INTERFACE", |
- ] |
+ defines += [ "ENABLE_GDB_JIT_INTERFACE" ] |
} |
if (v8_object_print == true) { |
- defines += [ |
- "OBJECT_PRINT", |
- ] |
+ defines += [ "OBJECT_PRINT" ] |
} |
if (v8_enable_verify_heap == true) { |
- defines += [ |
- "VERIFY_HEAP", |
- ] |
+ defines += [ "VERIFY_HEAP" ] |
} |
if (v8_interpreted_regexp == true) { |
- defines += [ |
- "V8_INTERPRETED_REGEXP", |
- ] |
+ defines += [ "V8_INTERPRETED_REGEXP" ] |
} |
if (v8_deprecation_warnings == true) { |
- defines += [ |
- "V8_DEPRECATION_WARNINGS", |
- ] |
+ defines += [ "V8_DEPRECATION_WARNINGS" ] |
} |
if (v8_enable_i18n_support == true) { |
- defines += [ |
- "V8_I18N_SUPPORT", |
- ] |
+ defines += [ "V8_I18N_SUPPORT" ] |
} |
if (v8_enable_extra_checks == true) { |
- defines += [ |
- "ENABLE_EXTRA_CHECKS", |
- ] |
+ defines += [ "ENABLE_EXTRA_CHECKS" ] |
} |
if (v8_enable_handle_zapping == true) { |
- defines += [ |
- "ENABLE_HANDLE_ZAPPING", |
- ] |
+ defines += [ "ENABLE_HANDLE_ZAPPING" ] |
} |
if (v8_use_external_startup_data == true) { |
- defines += [ |
- "V8_USE_EXTERNAL_STARTUP_DATA", |
- ] |
+ defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ] |
} |
} |
@@ -123,24 +102,16 @@ config("toolchain") { |
# TODO(jochen): Add support for arm, mips, mipsel. |
if (v8_target_arch == "arm64") { |
- defines += [ |
- "V8_TARGET_ARCH_ARM64", |
- ] |
+ defines += [ "V8_TARGET_ARCH_ARM64" ] |
} |
if (v8_target_arch == "x86") { |
- defines += [ |
- "V8_TARGET_ARCH_IA32", |
- ] |
+ defines += [ "V8_TARGET_ARCH_IA32" ] |
} |
if (v8_target_arch == "x64") { |
- defines += [ |
- "V8_TARGET_ARCH_X64", |
- ] |
+ defines += [ "V8_TARGET_ARCH_X64" ] |
} |
if (is_win) { |
- defines += [ |
- "WIN32", |
- ] |
+ defines += [ "WIN32" ] |
# TODO(jochen): Support v8_enable_prof. |
} |
@@ -203,7 +174,7 @@ action("js2c") { |
] |
outputs = [ |
- "$target_gen_dir/libraries.cc" |
+ "$target_gen_dir/libraries.cc", |
] |
if (v8_enable_i18n_support) { |
@@ -211,19 +182,36 @@ action("js2c") { |
} |
args = [ |
- rebase_path("$target_gen_dir/libraries.cc", root_build_dir), |
- "CORE", |
- ] + rebase_path(sources, root_build_dir) |
+ rebase_path("$target_gen_dir/libraries.cc", root_build_dir), |
+ "CORE", |
+ ] + rebase_path(sources, root_build_dir) |
if (v8_use_external_startup_data) { |
outputs += [ "$target_gen_dir/libraries.bin" ] |
args += [ |
"--startup_blob", |
- rebase_path("$target_gen_dir/libraries.bin", root_build_dir) |
+ rebase_path("$target_gen_dir/libraries.bin", root_build_dir), |
] |
} |
} |
+action("d8_js2c") { |
+ visibility = [ ":*" ] # Only targets in this file can depend on this. |
+ |
+ script = "tools/js2c.py" |
+ |
+ inputs = [ |
+ "src/d8.js", |
+ "src/macros.py", |
+ ] |
+ outputs = [ |
+ "$target_gen_dir/d8-js.cc", |
+ ] |
+ |
+ args = rebase_path(outputs, root_build_dir) + [ "D8" ] + |
+ rebase_path(inputs, root_build_dir) |
+} |
+ |
action("js2c_experimental") { |
visibility = [ ":*" ] # Only targets in this file can depend on this. |
@@ -244,23 +232,24 @@ action("js2c_experimental") { |
"src/harmony-classes.js", |
"src/harmony-tostring.js", |
"src/harmony-templates.js", |
- "src/harmony-regexp.js" |
+ "src/harmony-regexp.js", |
] |
outputs = [ |
- "$target_gen_dir/experimental-libraries.cc" |
+ "$target_gen_dir/experimental-libraries.cc", |
] |
args = [ |
- rebase_path("$target_gen_dir/experimental-libraries.cc", root_build_dir), |
- "EXPERIMENTAL", |
- ] + rebase_path(sources, root_build_dir) |
+ rebase_path("$target_gen_dir/experimental-libraries.cc", |
+ root_build_dir), |
+ "EXPERIMENTAL", |
+ ] + rebase_path(sources, root_build_dir) |
if (v8_use_external_startup_data) { |
outputs += [ "$target_gen_dir/libraries_experimental.bin" ] |
args += [ |
"--startup_blob", |
- rebase_path("$target_gen_dir/libraries_experimental.bin", root_build_dir) |
+ rebase_path("$target_gen_dir/libraries_experimental.bin", root_build_dir), |
] |
} |
} |
@@ -271,16 +260,16 @@ if (v8_use_external_startup_data) { |
deps = [ |
":js2c", |
- ":js2c_experimental" |
+ ":js2c_experimental", |
] |
sources = [ |
"$target_gen_dir/libraries.bin", |
- "$target_gen_dir/libraries_experimental.bin" |
+ "$target_gen_dir/libraries_experimental.bin", |
] |
outputs = [ |
- "$root_out_dir/natives_blob.bin" |
+ "$root_out_dir/natives_blob.bin", |
] |
script = "tools/concatenate-files.py" |
@@ -300,23 +289,24 @@ action("postmortem-metadata") { |
] |
outputs = [ |
- "$target_gen_dir/debug-support.cc" |
+ "$target_gen_dir/debug-support.cc", |
] |
- args = |
- rebase_path(outputs, root_build_dir) + |
- rebase_path(sources, root_build_dir) |
+ args = rebase_path(outputs, root_build_dir) + |
+ rebase_path(sources, root_build_dir) |
} |
action("run_mksnapshot") { |
visibility = [ ":*" ] # Only targets in this file can depend on this. |
- deps = [ ":mksnapshot($host_toolchain)" ] |
+ deps = [ |
+ ":mksnapshot($host_toolchain)", |
+ ] |
script = "tools/run.py" |
outputs = [ |
- "$target_gen_dir/snapshot.cc" |
+ "$target_gen_dir/snapshot.cc", |
] |
args = [ |
@@ -324,24 +314,27 @@ action("run_mksnapshot") { |
"root_out_dir") + "/mksnapshot", |
root_build_dir), |
"--log-snapshot-positions", |
- "--logfile", rebase_path("$target_gen_dir/snapshot.log", root_build_dir), |
- rebase_path("$target_gen_dir/snapshot.cc", root_build_dir) |
+ "--logfile", |
+ rebase_path("$target_gen_dir/snapshot.log", root_build_dir), |
+ rebase_path("$target_gen_dir/snapshot.cc", root_build_dir), |
] |
if (v8_random_seed != "0") { |
- args += [ "--random-seed", v8_random_seed ] |
+ args += [ |
+ "--random-seed", |
+ v8_random_seed, |
+ ] |
} |
if (v8_use_external_startup_data) { |
outputs += [ "$root_out_dir/snapshot_blob.bin" ] |
args += [ |
"--startup_blob", |
- rebase_path("$root_out_dir/snapshot_blob.bin", root_build_dir) |
+ rebase_path("$root_out_dir/snapshot_blob.bin", root_build_dir), |
] |
} |
} |
- |
############################################################################### |
# Source Sets (aka static libraries) |
# |
@@ -363,7 +356,11 @@ source_set("v8_nosnapshot") { |
configs -= [ "//build/config/compiler:chromium_code" ] |
configs += [ "//build/config/compiler:no_chromium_code" ] |
- configs += [ ":internal_config", ":features", ":toolchain" ] |
+ configs += [ |
+ ":internal_config", |
+ ":features", |
+ ":toolchain", |
+ ] |
} |
source_set("v8_snapshot") { |
@@ -384,7 +381,11 @@ source_set("v8_snapshot") { |
configs -= [ "//build/config/compiler:chromium_code" ] |
configs += [ "//build/config/compiler:no_chromium_code" ] |
- configs += [ ":internal_config", ":features", ":toolchain" ] |
+ configs += [ |
+ ":internal_config", |
+ ":features", |
+ ":toolchain", |
+ ] |
} |
if (v8_use_external_startup_data) { |
@@ -406,7 +407,11 @@ if (v8_use_external_startup_data) { |
configs -= [ "//build/config/compiler:chromium_code" ] |
configs += [ "//build/config/compiler:no_chromium_code" ] |
- configs += [ ":internal_config", ":features", ":toolchain" ] |
+ configs += [ |
+ ":internal_config", |
+ ":features", |
+ ":toolchain", |
+ ] |
} |
} |
@@ -1209,7 +1214,11 @@ source_set("v8_base") { |
configs -= [ "//build/config/compiler:chromium_code" ] |
configs += [ "//build/config/compiler:no_chromium_code" ] |
- configs += [ ":internal_config", ":features", ":toolchain" ] |
+ configs += [ |
+ ":internal_config", |
+ ":features", |
+ ":toolchain", |
+ ] |
if (!is_debug) { |
configs -= [ "//build/config/compiler:optimize" ] |
@@ -1217,7 +1226,9 @@ source_set("v8_base") { |
} |
defines = [] |
- deps = [ ":v8_libbase" ] |
+ deps = [ |
+ ":v8_libbase", |
+ ] |
if (is_win) { |
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations. |
@@ -1229,6 +1240,7 @@ source_set("v8_base") { |
if (is_win) { |
deps += [ "//third_party/icu:icudata" ] |
} |
+ |
# TODO(jochen): Add support for icu_use_data_file_flag |
defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ] |
} else { |
@@ -1297,7 +1309,11 @@ source_set("v8_libbase") { |
configs -= [ "//build/config/compiler:chromium_code" ] |
configs += [ "//build/config/compiler:no_chromium_code" ] |
- configs += [ ":internal_config_base", ":features", ":toolchain" ] |
+ configs += [ |
+ ":internal_config_base", |
+ ":features", |
+ ":toolchain", |
+ ] |
if (!is_debug) { |
configs -= [ "//build/config/compiler:optimize" ] |
@@ -1307,15 +1323,11 @@ source_set("v8_libbase") { |
defines = [] |
if (is_posix) { |
- sources += [ |
- "src/base/platform/platform-posix.cc" |
- ] |
+ sources += [ "src/base/platform/platform-posix.cc" ] |
} |
if (is_linux) { |
- sources += [ |
- "src/base/platform/platform-linux.cc" |
- ] |
+ sources += [ "src/base/platform/platform-linux.cc" ] |
libs = [ "rt" ] |
} else if (is_android) { |
@@ -1344,7 +1356,10 @@ source_set("v8_libbase") { |
defines += [ "_CRT_RAND_S" ] # for rand_s() |
- libs = [ "winmm.lib", "ws2_32.lib" ] |
+ libs = [ |
+ "winmm.lib", |
+ "ws2_32.lib", |
+ ] |
} |
# TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris. |
@@ -1363,7 +1378,11 @@ source_set("v8_libplatform") { |
configs -= [ "//build/config/compiler:chromium_code" ] |
configs += [ "//build/config/compiler:no_chromium_code" ] |
- configs += [ ":internal_config_base", ":features", ":toolchain" ] |
+ configs += [ |
+ ":internal_config_base", |
+ ":features", |
+ ":toolchain", |
+ ] |
if (!is_debug) { |
configs -= [ "//build/config/compiler:optimize" ] |
@@ -1389,7 +1408,11 @@ if (current_toolchain == host_toolchain) { |
configs -= [ "//build/config/compiler:chromium_code" ] |
configs += [ "//build/config/compiler:no_chromium_code" ] |
- configs += [ ":internal_config", ":features", ":toolchain" ] |
+ configs += [ |
+ ":internal_config", |
+ ":features", |
+ ":toolchain", |
+ ] |
deps = [ |
":v8_base", |
@@ -1398,71 +1421,108 @@ if (current_toolchain == host_toolchain) { |
"//build/config/sanitizers:deps", |
] |
} |
-} |
- |
-############################################################################### |
-# Public targets |
-# |
- |
-if (component_mode == "shared_library") { |
- |
-component("v8") { |
- sources = [ |
- "src/v8dll-main.cc", |
- ] |
- if (v8_use_snapshot && v8_use_external_startup_data) { |
- deps = [ |
- ":v8_base", |
- ":v8_external_snapshot", |
+ executable("d8") { |
+ sources = [ |
+ "src/d8.cc", |
] |
- } else if (v8_use_snapshot) { |
deps = [ |
- ":v8_base", |
- ":v8_snapshot", |
+ ":d8_js2c", |
+ ":v8", |
+ ":v8_libplatform", |
] |
- } else { |
- assert(!v8_use_external_startup_data) |
- deps = [ |
- ":v8_base", |
- ":v8_nosnapshot", |
+ |
+ configs += [ |
+ ":internal_config", |
+ ":features", |
+ ":toolchain", |
] |
- } |
- configs -= [ "//build/config/compiler:chromium_code" ] |
- configs += [ "//build/config/compiler:no_chromium_code" ] |
- configs += [ ":internal_config", ":features", ":toolchain" ] |
+ # TODO(GYP): Build option for readline support. |
- direct_dependent_configs = [ ":external_config" ] |
+ if (is_posix) { |
+ sources += [ "src/d8-posix.cc" ] |
+ } else if (is_win) { |
+ sources += [ "src/d8-windows.cc" ] |
+ } |
- libs = [] |
- if (is_android && current_toolchain != host_toolchain) { |
- libs += [ "log" ] |
+ if (component_mode != "shared_library") { |
+ sources += [ |
+ "src/d8-debug.cc", |
+ "$target_gen_dir/d8-js.cc", |
+ ] |
+ } |
+ if (v8_enable_i18n_support) { |
+ deps += [ "//third_party/icu" ] |
+ } |
+ |
+ # TODO(GYP) v8_enable_vtunejit support in d8. |
} |
} |
-} else { |
+############################################################################### |
+# Public targets |
+# |
-group("v8") { |
- if (v8_use_snapshot && v8_use_external_startup_data) { |
- deps = [ |
- ":v8_base", |
- ":v8_external_snapshot", |
- ] |
- } else if (v8_use_snapshot) { |
- deps = [ |
- ":v8_base", |
- ":v8_snapshot", |
+if (component_mode == "shared_library") { |
+ component("v8") { |
+ sources = [ |
+ "src/v8dll-main.cc", |
] |
- } else { |
- assert(!v8_use_external_startup_data) |
- deps = [ |
- ":v8_base", |
- ":v8_nosnapshot", |
+ |
+ if (v8_use_snapshot && v8_use_external_startup_data) { |
+ deps = [ |
+ ":v8_base", |
+ ":v8_external_snapshot", |
+ ] |
+ } else if (v8_use_snapshot) { |
+ deps = [ |
+ ":v8_base", |
+ ":v8_snapshot", |
+ ] |
+ } else { |
+ assert(!v8_use_external_startup_data) |
+ deps = [ |
+ ":v8_base", |
+ ":v8_nosnapshot", |
+ ] |
+ } |
+ |
+ configs -= [ "//build/config/compiler:chromium_code" ] |
+ configs += [ "//build/config/compiler:no_chromium_code" ] |
+ configs += [ |
+ ":internal_config", |
+ ":features", |
+ ":toolchain", |
] |
- } |
- direct_dependent_configs = [ ":external_config" ] |
-} |
+ direct_dependent_configs = [ ":external_config" ] |
+ libs = [] |
+ if (is_android && current_toolchain != host_toolchain) { |
+ libs += [ "log" ] |
+ } |
+ } |
+} else { |
+ group("v8") { |
+ if (v8_use_snapshot && v8_use_external_startup_data) { |
+ deps = [ |
+ ":v8_base", |
+ ":v8_external_snapshot", |
+ ] |
+ } else if (v8_use_snapshot) { |
+ deps = [ |
+ ":v8_base", |
+ ":v8_snapshot", |
+ ] |
+ } else { |
+ assert(!v8_use_external_startup_data) |
+ deps = [ |
+ ":v8_base", |
+ ":v8_nosnapshot", |
+ ] |
+ } |
+ |
+ direct_dependent_configs = [ ":external_config" ] |
+ } |
} |