Revert of Revert of Add d8 target to the GN build. (patchset #1 id:1 of https://coder...
authoryangguo <yangguo@chromium.org>
Thu, 8 Jan 2015 13:21:52 +0000 (05:21 -0800)
committerCommit bot <commit-bot@chromium.org>
Thu, 8 Jan 2015 13:22:02 +0000 (13:22 +0000)
Reason for revert:
Relanding because this is not actually blocking the roll.

Original issue's description:
> Revert of Add d8 target to the GN build. (patchset #2 id:40001 of https://codereview.chromium.org/834113005/)
>
> Reason for revert:
> V8 roll fails due to this change. (see https://codereview.chromium.org/843673003/)
>
> Original issue's description:
> > Add d8 target to the GN build.
> >
> > Also formats the rest of the file with "gn format". This accounts for all the changes except for the "d8" target additions.
> >
> > Committed: https://crrev.com/36383f08c1f692ea797d54a27d7c6b3d3d53b440
> > Cr-Commit-Position: refs/heads/master@{#25984}
>
> TBR=jochen@chromium.org,machenbach@chromium.org,brettw@chromium.org
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/ef50fdfdb05e1a3a3822962f5235b804218a5f4e
> Cr-Commit-Position: refs/heads/master@{#25985}

TBR=jochen@chromium.org,machenbach@chromium.org,brettw@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/833563004

Cr-Commit-Position: refs/heads/master@{#25996}

BUILD.gn

index 62da990..5a8cfbc 100644 (file)
--- 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",
+    ]
   }
 }
 
@@ -1211,7 +1216,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" ]
@@ -1219,7 +1228,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.
@@ -1231,6 +1242,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 {
@@ -1299,7 +1311,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" ]
@@ -1309,15 +1325,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) {
@@ -1346,7 +1358,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.
@@ -1365,7 +1380,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" ]
@@ -1391,7 +1410,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",
@@ -1400,71 +1423,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" ]
+  }
 }