Add d8 target to BUILD.gn
authorjochen <jochen@chromium.org>
Tue, 20 Jan 2015 11:31:44 +0000 (03:31 -0800)
committerCommit bot <commit-bot@chromium.org>
Tue, 20 Jan 2015 11:31:53 +0000 (11:31 +0000)
R=machenbach@chromium.org,brettw@chromium.org
LOG=n
BUG=none

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

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

BUILD.gn

index 1be045c..1605495 100644 (file)
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -20,6 +20,7 @@ v8_postmortem_support = false
 v8_use_snapshot = true
 v8_target_arch = cpu_arch
 v8_random_seed = "314159265"
+v8_toolset_for_d8 = "host"
 
 ###############################################################################
 # Configurations
@@ -233,6 +234,24 @@ action("js2c_experimental") {
   }
 }
 
+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)
+}
+
 if (v8_use_external_startup_data) {
   action("natives_blob") {
     visibility = [ ":*" ]  # Only targets in this file can depend on this.
@@ -1474,3 +1493,46 @@ if (component_mode == "shared_library") {
     direct_dependent_configs = [ ":external_config" ]
   }
 }
+
+if ((current_toolchain == host_toolchain && v8_toolset_for_d8 == "host") ||
+    (current_toolchain != host_toolchain && v8_toolset_for_d8 == "target")) {
+  executable("d8") {
+    sources = [
+      "src/d8.cc",
+      "src/d8.h",
+    ]
+
+    configs -= [ "//build/config/compiler:chromium_code" ]
+    configs += [ "//build/config/compiler:no_chromium_code" ]
+    configs += [
+      ":internal_config",
+      ":features",
+      ":toolchain",
+    ]
+
+    deps = [
+      ":d8_js2c",
+      ":v8",
+      ":v8_libplatform",
+      "//build/config/sanitizers:deps",
+    ]
+
+    # TODO(jochen): Add support for readline and vtunejit.
+
+    if (is_posix) {
+      sources += [ "src/d8-posix.cc" ]
+    } else if (is_win) {
+      sources += [ "src/d8-windows.cc" ]
+    }
+
+    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" ]
+    }
+  }
+}