mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Add support for the GN configuration language (#3368)
* Add samples and definition for GN build files * Add grammar to provide GN syntax highlighting * Fix failing tests * Add Python extensions for GYP includes and .gclient configs
This commit is contained in:
committed by
Brandon Black
parent
33ce2d7264
commit
45c27f26a2
193
samples/GN/isolate.gni
Normal file
193
samples/GN/isolate.gni
Normal file
@@ -0,0 +1,193 @@
|
||||
# Copyright 2016 the V8 project authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
import("//build/config/sanitizers/sanitizers.gni")
|
||||
import("//third_party/icu/config.gni")
|
||||
import("v8.gni")
|
||||
|
||||
declare_args() {
|
||||
# Sets the test isolation mode (noop|prepare|check).
|
||||
v8_test_isolation_mode = "noop"
|
||||
}
|
||||
|
||||
template("v8_isolate_run") {
|
||||
forward_variables_from(invoker,
|
||||
"*",
|
||||
[
|
||||
"deps",
|
||||
"isolate",
|
||||
])
|
||||
|
||||
# Remember target name as within the action scope the target name will be
|
||||
# different.
|
||||
name = target_name
|
||||
|
||||
assert(defined(invoker.deps))
|
||||
assert(defined(invoker.isolate))
|
||||
|
||||
if (name != "" && v8_test_isolation_mode != "noop") {
|
||||
action(name + "_run") {
|
||||
testonly = true
|
||||
|
||||
deps = invoker.deps
|
||||
|
||||
script = "//tools/isolate_driver.py"
|
||||
|
||||
sources = [
|
||||
invoker.isolate,
|
||||
]
|
||||
|
||||
inputs = [
|
||||
# Files that are known to be involved in this step.
|
||||
"//tools/swarming_client/isolate.py",
|
||||
"//tools/swarming_client/run_isolated.py",
|
||||
]
|
||||
|
||||
if (v8_test_isolation_mode == "prepare") {
|
||||
outputs = [
|
||||
"$root_out_dir/$name.isolated.gen.json",
|
||||
]
|
||||
} else if (v8_test_isolation_mode == "check") {
|
||||
outputs = [
|
||||
"$root_out_dir/$name.isolated",
|
||||
"$root_out_dir/$name.isolated.state",
|
||||
]
|
||||
}
|
||||
|
||||
# Translate gn to gyp variables.
|
||||
if (is_asan) {
|
||||
asan = "1"
|
||||
} else {
|
||||
asan = "0"
|
||||
}
|
||||
if (is_msan) {
|
||||
msan = "1"
|
||||
} else {
|
||||
msan = "0"
|
||||
}
|
||||
if (is_tsan) {
|
||||
tsan = "1"
|
||||
} else {
|
||||
tsan = "0"
|
||||
}
|
||||
if (is_cfi) {
|
||||
cfi_vptr = "1"
|
||||
} else {
|
||||
cfi_vptr = "0"
|
||||
}
|
||||
if (target_cpu == "x86") {
|
||||
target_arch = "ia32"
|
||||
} else {
|
||||
target_arch = target_cpu
|
||||
}
|
||||
if (is_debug) {
|
||||
configuration_name = "Debug"
|
||||
} else {
|
||||
configuration_name = "Release"
|
||||
}
|
||||
if (is_component_build) {
|
||||
component = "shared_library"
|
||||
} else {
|
||||
component = "static_library"
|
||||
}
|
||||
if (icu_use_data_file) {
|
||||
icu_use_data_file_flag = "1"
|
||||
} else {
|
||||
icu_use_data_file_flag = "0"
|
||||
}
|
||||
if (v8_enable_inspector) {
|
||||
enable_inspector = "1"
|
||||
} else {
|
||||
enable_inspector = "0"
|
||||
}
|
||||
if (v8_use_external_startup_data) {
|
||||
use_external_startup_data = "1"
|
||||
} else {
|
||||
use_external_startup_data = "0"
|
||||
}
|
||||
if (v8_use_snapshot) {
|
||||
use_snapshot = "true"
|
||||
} else {
|
||||
use_snapshot = "false"
|
||||
}
|
||||
if (v8_has_valgrind) {
|
||||
has_valgrind = "1"
|
||||
} else {
|
||||
has_valgrind = "0"
|
||||
}
|
||||
if (v8_gcmole) {
|
||||
gcmole = "1"
|
||||
} else {
|
||||
gcmole = "0"
|
||||
}
|
||||
|
||||
# Note, all paths will be rebased in isolate_driver.py to be relative to
|
||||
# the isolate file.
|
||||
args = [
|
||||
v8_test_isolation_mode,
|
||||
"--isolated",
|
||||
rebase_path("$root_out_dir/$name.isolated", root_build_dir),
|
||||
"--isolate",
|
||||
rebase_path(invoker.isolate, root_build_dir),
|
||||
|
||||
# Path variables are used to replace file paths when loading a .isolate
|
||||
# file
|
||||
"--path-variable",
|
||||
"DEPTH",
|
||||
rebase_path("//", root_build_dir),
|
||||
"--path-variable",
|
||||
"PRODUCT_DIR",
|
||||
rebase_path(root_out_dir, root_build_dir),
|
||||
|
||||
# TODO(machenbach): Set variables for remaining features.
|
||||
"--config-variable",
|
||||
"CONFIGURATION_NAME=$configuration_name",
|
||||
"--config-variable",
|
||||
"OS=$target_os",
|
||||
"--config-variable",
|
||||
"asan=$asan",
|
||||
"--config-variable",
|
||||
"cfi_vptr=$cfi_vptr",
|
||||
"--config-variable",
|
||||
"gcmole=$gcmole",
|
||||
"--config-variable",
|
||||
"has_valgrind=$has_valgrind",
|
||||
"--config-variable",
|
||||
"icu_use_data_file_flag=$icu_use_data_file_flag",
|
||||
"--config-variable",
|
||||
"is_gn=1",
|
||||
"--config-variable",
|
||||
"msan=$msan",
|
||||
"--config-variable",
|
||||
"tsan=$tsan",
|
||||
"--config-variable",
|
||||
"coverage=0",
|
||||
"--config-variable",
|
||||
"sanitizer_coverage=0",
|
||||
"--config-variable",
|
||||
"component=$component",
|
||||
"--config-variable",
|
||||
"target_arch=$target_arch",
|
||||
"--config-variable",
|
||||
"v8_enable_inspector=$enable_inspector",
|
||||
"--config-variable",
|
||||
"v8_use_external_startup_data=$use_external_startup_data",
|
||||
"--config-variable",
|
||||
"v8_use_snapshot=$use_snapshot",
|
||||
]
|
||||
|
||||
if (is_win) {
|
||||
args += [
|
||||
"--config-variable",
|
||||
"msvs_version=2015",
|
||||
]
|
||||
} else {
|
||||
args += [
|
||||
"--config-variable",
|
||||
"msvs_version=0",
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user