Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Unified Diff: tools/v8_context_snapshot/BUILD.gn

Issue 2841443005: [Bindings] Create and use V8 context snapshots (Closed)
Patch Set: Rebase Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/public/web/WebV8ContextSnapshot.h ('k') | tools/v8_context_snapshot/DEPS » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/v8_context_snapshot/BUILD.gn
diff --git a/tools/v8_context_snapshot/BUILD.gn b/tools/v8_context_snapshot/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..57c22e481eaef6c7a92e0f9838aeaded691160b0
--- /dev/null
+++ b/tools/v8_context_snapshot/BUILD.gn
@@ -0,0 +1,97 @@
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Targets in ths file are to take a V8 context snapshot on build time.
+# Created V8 context snapshot is used in
+# third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.{cpp|h}.
+# to speedup creating a V8 context and setting up around it.
+
+import("//build/config/c++/c++.gni")
+import("//v8/snapshot_toolchain.gni")
+
+if (is_android) {
+ import("//build/config/android/rules.gni")
+}
+
+if (is_android) {
+ android_assets("v8_context_snapshot_assets") {
+ deps = [
+ ":v8_context_snapshot",
+ ]
+ sources = [
+ "$root_out_dir/v8_context_snapshot.bin",
+ ]
+ disable_compression = true
+ }
+}
+
+group("v8_context_snapshot") {
+ if (!is_chromeos) {
+ public_deps = [
+ ":generate_v8_context_snapshot",
+ ]
+ }
+}
+
+if (!is_chromeos && !is_android) {
+ action("generate_v8_context_snapshot") {
+ script = "run.py"
+ output_file = "$root_out_dir/v8_context_snapshot.bin"
+ output_path = rebase_path(output_file, root_build_dir)
+
+ args = [
+ "./" + rebase_path(
+ get_label_info(
+ ":v8_context_snapshot_generator($v8_snapshot_toolchain)",
+ "root_out_dir") + "/v8_context_snapshot_generator",
+ root_build_dir),
+ "--output_file=$output_path",
+ ]
+
+ outputs = [
+ output_file,
+ ]
+
+ deps = [
+ ":v8_context_snapshot_generator($v8_snapshot_toolchain)",
+ ]
+ }
+
+ # This config disables a link time optimization "ICF", which may merge different
+ # functions into one if the function signature and body of them are identical.
+ #
+ # ICF breaks 1:1 mappings of the external references for V8 snapshot, so we
+ # disable it while taking a V8 snapshot.
+ config("disable_icf") {
+ visibility = [ ":*" ] # Only targets in this file can depend on this.
+ if (is_win) {
+ ldflags = [ "/OPT:NOICF" ]
+ } else if (is_posix && !is_mac) {
+ ldflags = [ "-Wl,--icf=none" ]
+ }
+ }
+
+ executable("v8_context_snapshot_generator") {
+ sources = [
+ "v8_context_snapshot_generator.cc",
+ ]
+
+ deps = [
+ "//gin:gin",
+ "//mojo/edk/system:system",
+ "//third_party/WebKit/public:blink",
+ "//v8",
+ ]
+
+ if (is_linux && (is_component_build || using_sanitizer) &&
+ use_custom_libcxx) {
+ deps += [ "//buildtools/third_party/libc++:libc++" ]
+ }
+
+ configs += [
+ "//v8:external_startup_data",
+ ":disable_icf",
+ ]
+ }
+}
« no previous file with comments | « third_party/WebKit/public/web/WebV8ContextSnapshot.h ('k') | tools/v8_context_snapshot/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698