summaryrefslogtreecommitdiff
path: root/deps/v8/bazel/defs.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/bazel/defs.bzl')
-rw-r--r--deps/v8/bazel/defs.bzl59
1 files changed, 59 insertions, 0 deletions
diff --git a/deps/v8/bazel/defs.bzl b/deps/v8/bazel/defs.bzl
index fbd1830ecb..58fd53ed60 100644
--- a/deps/v8/bazel/defs.bzl
+++ b/deps/v8/bazel/defs.bzl
@@ -237,3 +237,62 @@ v8_mksnapshot = rule(
),
}
)
+
+def _quote(val):
+ if val[0] == '"' and val[-1] == '"':
+ fail("String", val, "already quoted")
+ return '"' + val + '"'
+
+def _kv_bool_pair(k, v):
+ return _quote(k) + ": " + v
+
+def _json(kv_pairs):
+ content = "{"
+ for (k, v) in kv_pairs[:-1]:
+ content += _kv_bool_pair(k, v) + ", "
+ (k, v) = kv_pairs[-1]
+ content += _kv_bool_pair(k, v)
+ content += "}\n"
+ return content
+
+# TODO(victorgomes): Create a rule (instead of a macro), that can
+# dynamically populate the build config.
+def v8_build_config(name):
+ cpu = _quote("x64")
+ content = _json([
+ ("current_cpu", cpu),
+ ("dcheck_always_on", "false"),
+ ("is_android", "false"),
+ ("is_asan", "false"),
+ ("is_cfi", "false"),
+ ("is_clang", "true"),
+ ("is_component_build", "false"),
+ ("is_debug", "false"),
+ ("is_full_debug", "false"),
+ ("is_gcov_coverage", "false"),
+ ("is_msan", "false"),
+ ("is_tsan", "false"),
+ ("is_ubsan_vptr", "false"),
+ ("target_cpu", cpu),
+ ("v8_current_cpu", cpu),
+ ("v8_enable_atomic_marking_state", "false"),
+ ("v8_enable_atomic_object_field_writes", "false"),
+ ("v8_enable_concurrent_marking", "false"),
+ ("v8_enable_i18n_support", "true"),
+ ("v8_enable_verify_predictable", "false"),
+ ("v8_enable_verify_csa", "false"),
+ ("v8_enable_lite_mode", "false"),
+ ("v8_enable_runtime_call_stats", "false"),
+ ("v8_enable_pointer_compression", "true"),
+ ("v8_enable_pointer_compression_shared_cage", "false"),
+ ("v8_enable_third_party_heap", "false"),
+ ("v8_enable_webassembly", "false"),
+ ("v8_control_flow_integrity", "false"),
+ ("v8_enable_single_generation", "false"),
+ ("v8_target_cpu", cpu),
+ ])
+ native.genrule(
+ name = name,
+ outs = [name + ".json"],
+ cmd = "echo '" + content + "' > \"$@\"",
+ )