mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +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
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -803,3 +803,6 @@
|
|||||||
[submodule "vendor/grammars/language-fontforge"]
|
[submodule "vendor/grammars/language-fontforge"]
|
||||||
path = vendor/grammars/language-fontforge
|
path = vendor/grammars/language-fontforge
|
||||||
url = https://github.com/Alhadis/language-fontforge
|
url = https://github.com/Alhadis/language-fontforge
|
||||||
|
[submodule "vendor/grammars/language-gn"]
|
||||||
|
path = vendor/grammars/language-gn
|
||||||
|
url = https://github.com/devoncarew/language-gn
|
||||||
|
|||||||
@@ -368,6 +368,8 @@ vendor/grammars/language-fontforge:
|
|||||||
- text.sfd
|
- text.sfd
|
||||||
vendor/grammars/language-gfm:
|
vendor/grammars/language-gfm:
|
||||||
- source.gfm
|
- source.gfm
|
||||||
|
vendor/grammars/language-gn:
|
||||||
|
- source.gn
|
||||||
vendor/grammars/language-graphql:
|
vendor/grammars/language-graphql:
|
||||||
- source.graphql
|
- source.graphql
|
||||||
vendor/grammars/language-haml:
|
vendor/grammars/language-haml:
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
# language_id - Integer used as a language-name-independent indexed field so that we can rename
|
# language_id - Integer used as a language-name-independent indexed field so that we can rename
|
||||||
# languages in Linguist without reindexing all the code on GitHub. Must not be
|
# languages in Linguist without reindexing all the code on GitHub. Must not be
|
||||||
# changed for existing languages without the explicit permission of GitHub staff.
|
# changed for existing languages without the explicit permission of GitHub staff.
|
||||||
# color - CSS hex color to represent the language. Only used if type is "programming" or "prose"
|
# color - CSS hex color to represent the language. Only used if type is "programming" or "prose".
|
||||||
# tm_scope - The TextMate scope that represents this programming
|
# tm_scope - The TextMate scope that represents this programming
|
||||||
# language. This should match one of the scopes listed in
|
# language. This should match one of the scopes listed in
|
||||||
# the grammars.yml file. Use "none" if there is no grammar
|
# the grammars.yml file. Use "none" if there is no grammar
|
||||||
@@ -1393,6 +1393,18 @@ GLSL:
|
|||||||
- ".vshader"
|
- ".vshader"
|
||||||
ace_mode: glsl
|
ace_mode: glsl
|
||||||
language_id: 124
|
language_id: 124
|
||||||
|
GN:
|
||||||
|
type: data
|
||||||
|
extensions:
|
||||||
|
- ".gn"
|
||||||
|
- ".gni"
|
||||||
|
interpreters:
|
||||||
|
- gn
|
||||||
|
tm_scope: source.gn
|
||||||
|
ace_mode: python
|
||||||
|
codemirror_mode: python
|
||||||
|
codemirror_mime_type: text/x-python
|
||||||
|
language_id: 302957008
|
||||||
Game Maker Language:
|
Game Maker Language:
|
||||||
type: programming
|
type: programming
|
||||||
color: "#8fb200"
|
color: "#8fb200"
|
||||||
@@ -3392,6 +3404,7 @@ Python:
|
|||||||
- ".cgi"
|
- ".cgi"
|
||||||
- ".fcgi"
|
- ".fcgi"
|
||||||
- ".gyp"
|
- ".gyp"
|
||||||
|
- ".gypi"
|
||||||
- ".lmi"
|
- ".lmi"
|
||||||
- ".py3"
|
- ".py3"
|
||||||
- ".pyde"
|
- ".pyde"
|
||||||
@@ -3404,6 +3417,7 @@ Python:
|
|||||||
- ".wsgi"
|
- ".wsgi"
|
||||||
- ".xpy"
|
- ".xpy"
|
||||||
filenames:
|
filenames:
|
||||||
|
- .gclient
|
||||||
- BUCK
|
- BUCK
|
||||||
- BUILD
|
- BUILD
|
||||||
- SConscript
|
- SConscript
|
||||||
|
|||||||
59
samples/GN/BUILD.2.gn
Normal file
59
samples/GN/BUILD.2.gn
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
# 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("../gni/isolate.gni")
|
||||||
|
|
||||||
|
group("gn_all") {
|
||||||
|
testonly = true
|
||||||
|
|
||||||
|
if (v8_test_isolation_mode != "noop") {
|
||||||
|
deps = [
|
||||||
|
":check-static-initializers_run",
|
||||||
|
":jsfunfuzz_run",
|
||||||
|
":run-deopt-fuzzer_run",
|
||||||
|
":run-gcmole_run",
|
||||||
|
":run-valgrind_run",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
v8_isolate_run("check-static-initializers") {
|
||||||
|
deps = [
|
||||||
|
"..:d8_run",
|
||||||
|
]
|
||||||
|
|
||||||
|
isolate = "check-static-initializers.isolate"
|
||||||
|
}
|
||||||
|
|
||||||
|
v8_isolate_run("jsfunfuzz") {
|
||||||
|
deps = [
|
||||||
|
"..:d8_run",
|
||||||
|
]
|
||||||
|
|
||||||
|
isolate = "jsfunfuzz/jsfunfuzz.isolate"
|
||||||
|
}
|
||||||
|
|
||||||
|
v8_isolate_run("run-deopt-fuzzer") {
|
||||||
|
deps = [
|
||||||
|
"..:d8_run",
|
||||||
|
]
|
||||||
|
|
||||||
|
isolate = "run-deopt-fuzzer.isolate"
|
||||||
|
}
|
||||||
|
|
||||||
|
v8_isolate_run("run-gcmole") {
|
||||||
|
deps = [
|
||||||
|
"..:d8_run",
|
||||||
|
]
|
||||||
|
|
||||||
|
isolate = "gcmole/run-gcmole.isolate"
|
||||||
|
}
|
||||||
|
|
||||||
|
v8_isolate_run("run-valgrind") {
|
||||||
|
deps = [
|
||||||
|
"..:d8_run",
|
||||||
|
]
|
||||||
|
|
||||||
|
isolate = "run-valgrind.isolate"
|
||||||
|
}
|
||||||
1646
samples/GN/BUILD.3.gn
Normal file
1646
samples/GN/BUILD.3.gn
Normal file
File diff suppressed because it is too large
Load Diff
2583
samples/GN/BUILD.gn
Normal file
2583
samples/GN/BUILD.gn
Normal file
File diff suppressed because it is too large
Load Diff
2781
samples/GN/android-rules.gni
Normal file
2781
samples/GN/android-rules.gni
Normal file
File diff suppressed because it is too large
Load Diff
13
samples/GN/clang.gni
Normal file
13
samples/GN/clang.gni
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Copyright 2014 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.
|
||||||
|
|
||||||
|
import("//build/toolchain/toolchain.gni")
|
||||||
|
|
||||||
|
declare_args() {
|
||||||
|
# Indicates if the build should use the Chrome-specific plugins for enforcing
|
||||||
|
# coding guidelines, etc. Only used when compiling with Clang.
|
||||||
|
clang_use_chrome_plugins = is_clang && !is_nacl && !use_xcode_clang
|
||||||
|
|
||||||
|
clang_base_path = "//third_party/llvm-build/Release+Asserts"
|
||||||
|
}
|
||||||
25
samples/GN/filenames/.gn
Normal file
25
samples/GN/filenames/.gn
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# This file is used by the GN meta build system to find the root of the source
|
||||||
|
# tree and to set startup options. For documentation on the values set in this
|
||||||
|
# file, run "gn help dotfile" at the command line.
|
||||||
|
|
||||||
|
import("//build/dotfile_settings.gni")
|
||||||
|
|
||||||
|
# The location of the build configuration file.
|
||||||
|
buildconfig = "//build/config/BUILDCONFIG.gn"
|
||||||
|
|
||||||
|
# The secondary source root is a parallel directory tree where
|
||||||
|
# GN build files are placed when they can not be placed directly
|
||||||
|
# in the source tree, e.g. for third party source trees.
|
||||||
|
secondary_source = "//build/secondary/"
|
||||||
|
|
||||||
|
# These are the targets to check headers for by default. The files in targets
|
||||||
|
# matching these patterns (see "gn help label_pattern" for format) will have
|
||||||
|
# their includes checked for proper dependencies when you run either
|
||||||
|
# "gn check" or "gn gen --check".
|
||||||
|
check_targets = []
|
||||||
|
|
||||||
|
# These are the list of GN files that run exec_script. This whitelist exists
|
||||||
|
# to force additional review for new uses of exec_script, which is strongly
|
||||||
|
# discouraged except for gypi_to_gn calls.
|
||||||
|
exec_script_whitelist =
|
||||||
|
build_dotfile_settings.exec_script_whitelist + [ "//test/test262/BUILD.gn" ]
|
||||||
503
samples/GN/gcc_toolchain.gni
Normal file
503
samples/GN/gcc_toolchain.gni
Normal file
@@ -0,0 +1,503 @@
|
|||||||
|
# Copyright (c) 2013 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.
|
||||||
|
|
||||||
|
import("//build/config/android/config.gni")
|
||||||
|
import("//build/config/clang/clang.gni")
|
||||||
|
import("//build/config/nacl/config.gni")
|
||||||
|
import("//build/config/sanitizers/sanitizers.gni")
|
||||||
|
import("//build/config/v8_target_cpu.gni")
|
||||||
|
import("//build/toolchain/cc_wrapper.gni")
|
||||||
|
import("//build/toolchain/goma.gni")
|
||||||
|
import("//build/toolchain/toolchain.gni")
|
||||||
|
|
||||||
|
# This template defines a toolchain for something that works like gcc
|
||||||
|
# (including clang).
|
||||||
|
#
|
||||||
|
# It requires the following variables specifying the executables to run:
|
||||||
|
# - ar
|
||||||
|
# - cc
|
||||||
|
# - cxx
|
||||||
|
# - ld
|
||||||
|
#
|
||||||
|
# Optional parameters that control the tools:
|
||||||
|
#
|
||||||
|
# - extra_cflags
|
||||||
|
# Extra flags to be appended when compiling C files (but not C++ files).
|
||||||
|
# - extra_cppflags
|
||||||
|
# Extra flags to be appended when compiling both C and C++ files. "CPP"
|
||||||
|
# stands for "C PreProcessor" in this context, although it can be
|
||||||
|
# used for non-preprocessor flags as well. Not to be confused with
|
||||||
|
# "CXX" (which follows).
|
||||||
|
# - extra_cxxflags
|
||||||
|
# Extra flags to be appended when compiling C++ files (but not C files).
|
||||||
|
# - extra_ldflags
|
||||||
|
# Extra flags to be appended when linking
|
||||||
|
#
|
||||||
|
# - libs_section_prefix
|
||||||
|
# - libs_section_postfix
|
||||||
|
# The contents of these strings, if specified, will be placed around
|
||||||
|
# the libs section of the linker line. It allows one to inject libraries
|
||||||
|
# at the beginning and end for all targets in a toolchain.
|
||||||
|
# - solink_libs_section_prefix
|
||||||
|
# - solink_libs_section_postfix
|
||||||
|
# Same as libs_section_{pre,post}fix except used for solink instead of link.
|
||||||
|
# - link_outputs
|
||||||
|
# The content of this array, if specified, will be added to the list of
|
||||||
|
# outputs from the link command. This can be useful in conjunction with
|
||||||
|
# the post_link parameter.
|
||||||
|
# - post_link
|
||||||
|
# The content of this string, if specified, will be run as a separate
|
||||||
|
# command following the the link command.
|
||||||
|
# - deps
|
||||||
|
# Just forwarded to the toolchain definition.
|
||||||
|
# - executable_extension
|
||||||
|
# If this string is specified it will be used for the file extension
|
||||||
|
# for an executable, rather than using no extension; targets will
|
||||||
|
# still be able to override the extension using the output_extension
|
||||||
|
# variable.
|
||||||
|
# - rebuild_define
|
||||||
|
# The contents of this string, if specified, will be passed as a #define
|
||||||
|
# to the toolchain. It can be used to force recompiles whenever a
|
||||||
|
# toolchain is updated.
|
||||||
|
# - shlib_extension
|
||||||
|
# If this string is specified it will be used for the file extension
|
||||||
|
# for a shared library, rather than default value specified in
|
||||||
|
# toolchain.gni
|
||||||
|
# - strip
|
||||||
|
# Location of the strip executable. When specified, strip will be run on
|
||||||
|
# all shared libraries and executables as they are built. The pre-stripped
|
||||||
|
# artifacts will be put in lib.unstripped/ and exe.unstripped/.
|
||||||
|
template("gcc_toolchain") {
|
||||||
|
toolchain(target_name) {
|
||||||
|
assert(defined(invoker.ar), "gcc_toolchain() must specify a \"ar\" value")
|
||||||
|
assert(defined(invoker.cc), "gcc_toolchain() must specify a \"cc\" value")
|
||||||
|
assert(defined(invoker.cxx), "gcc_toolchain() must specify a \"cxx\" value")
|
||||||
|
assert(defined(invoker.ld), "gcc_toolchain() must specify a \"ld\" value")
|
||||||
|
|
||||||
|
# This define changes when the toolchain changes, forcing a rebuild.
|
||||||
|
# Nothing should ever use this define.
|
||||||
|
if (defined(invoker.rebuild_define)) {
|
||||||
|
rebuild_string = "-D" + invoker.rebuild_define + " "
|
||||||
|
} else {
|
||||||
|
rebuild_string = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
# GN's syntax can't handle more than one scope dereference at once, like
|
||||||
|
# "invoker.toolchain_args.foo", so make a temporary to hold the toolchain
|
||||||
|
# args so we can do "invoker_toolchain_args.foo".
|
||||||
|
assert(defined(invoker.toolchain_args),
|
||||||
|
"Toolchains must specify toolchain_args")
|
||||||
|
invoker_toolchain_args = invoker.toolchain_args
|
||||||
|
assert(defined(invoker_toolchain_args.current_cpu),
|
||||||
|
"toolchain_args must specify a current_cpu")
|
||||||
|
assert(defined(invoker_toolchain_args.current_os),
|
||||||
|
"toolchain_args must specify a current_os")
|
||||||
|
|
||||||
|
# When invoking this toolchain not as the default one, these args will be
|
||||||
|
# passed to the build. They are ignored when this is the default toolchain.
|
||||||
|
toolchain_args = {
|
||||||
|
# Populate toolchain args from the invoker.
|
||||||
|
forward_variables_from(invoker_toolchain_args, "*")
|
||||||
|
|
||||||
|
# The host toolchain value computed by the default toolchain's setup
|
||||||
|
# needs to be passed through unchanged to all secondary toolchains to
|
||||||
|
# ensure that it's always the same, regardless of the values that may be
|
||||||
|
# set on those toolchains.
|
||||||
|
host_toolchain = host_toolchain
|
||||||
|
|
||||||
|
if (!defined(invoker_toolchain_args.v8_current_cpu)) {
|
||||||
|
v8_current_cpu = invoker_toolchain_args.current_cpu
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# When the invoker has explicitly overridden use_goma or cc_wrapper in the
|
||||||
|
# toolchain args, use those values, otherwise default to the global one.
|
||||||
|
# This works because the only reasonable override that toolchains might
|
||||||
|
# supply for these values are to force-disable them.
|
||||||
|
if (defined(toolchain_args.use_goma)) {
|
||||||
|
toolchain_uses_goma = toolchain_args.use_goma
|
||||||
|
} else {
|
||||||
|
toolchain_uses_goma = use_goma
|
||||||
|
}
|
||||||
|
if (defined(toolchain_args.cc_wrapper)) {
|
||||||
|
toolchain_cc_wrapper = toolchain_args.cc_wrapper
|
||||||
|
} else {
|
||||||
|
toolchain_cc_wrapper = cc_wrapper
|
||||||
|
}
|
||||||
|
|
||||||
|
# Compute the compiler prefix.
|
||||||
|
if (toolchain_uses_goma) {
|
||||||
|
assert(toolchain_cc_wrapper == "",
|
||||||
|
"Goma and cc_wrapper can't be used together.")
|
||||||
|
compiler_prefix = "$goma_dir/gomacc "
|
||||||
|
} else if (toolchain_cc_wrapper != "") {
|
||||||
|
compiler_prefix = toolchain_cc_wrapper + " "
|
||||||
|
} else {
|
||||||
|
compiler_prefix = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
cc = compiler_prefix + invoker.cc
|
||||||
|
cxx = compiler_prefix + invoker.cxx
|
||||||
|
ar = invoker.ar
|
||||||
|
ld = invoker.ld
|
||||||
|
if (defined(invoker.readelf)) {
|
||||||
|
readelf = invoker.readelf
|
||||||
|
} else {
|
||||||
|
readelf = "readelf"
|
||||||
|
}
|
||||||
|
if (defined(invoker.nm)) {
|
||||||
|
nm = invoker.nm
|
||||||
|
} else {
|
||||||
|
nm = "nm"
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined(invoker.shlib_extension)) {
|
||||||
|
default_shlib_extension = invoker.shlib_extension
|
||||||
|
} else {
|
||||||
|
default_shlib_extension = shlib_extension
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined(invoker.executable_extension)) {
|
||||||
|
default_executable_extension = invoker.executable_extension
|
||||||
|
} else {
|
||||||
|
default_executable_extension = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
# Bring these into our scope for string interpolation with default values.
|
||||||
|
if (defined(invoker.libs_section_prefix)) {
|
||||||
|
libs_section_prefix = invoker.libs_section_prefix
|
||||||
|
} else {
|
||||||
|
libs_section_prefix = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined(invoker.libs_section_postfix)) {
|
||||||
|
libs_section_postfix = invoker.libs_section_postfix
|
||||||
|
} else {
|
||||||
|
libs_section_postfix = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined(invoker.solink_libs_section_prefix)) {
|
||||||
|
solink_libs_section_prefix = invoker.solink_libs_section_prefix
|
||||||
|
} else {
|
||||||
|
solink_libs_section_prefix = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined(invoker.solink_libs_section_postfix)) {
|
||||||
|
solink_libs_section_postfix = invoker.solink_libs_section_postfix
|
||||||
|
} else {
|
||||||
|
solink_libs_section_postfix = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined(invoker.extra_cflags) && invoker.extra_cflags != "") {
|
||||||
|
extra_cflags = " " + invoker.extra_cflags
|
||||||
|
} else {
|
||||||
|
extra_cflags = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined(invoker.extra_cppflags) && invoker.extra_cppflags != "") {
|
||||||
|
extra_cppflags = " " + invoker.extra_cppflags
|
||||||
|
} else {
|
||||||
|
extra_cppflags = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined(invoker.extra_cxxflags) && invoker.extra_cxxflags != "") {
|
||||||
|
extra_cxxflags = " " + invoker.extra_cxxflags
|
||||||
|
} else {
|
||||||
|
extra_cxxflags = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined(invoker.extra_ldflags) && invoker.extra_ldflags != "") {
|
||||||
|
extra_ldflags = " " + invoker.extra_ldflags
|
||||||
|
} else {
|
||||||
|
extra_ldflags = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
# These library switches can apply to all tools below.
|
||||||
|
lib_switch = "-l"
|
||||||
|
lib_dir_switch = "-L"
|
||||||
|
|
||||||
|
# Object files go in this directory.
|
||||||
|
object_subdir = "{{target_out_dir}}/{{label_name}}"
|
||||||
|
|
||||||
|
tool("cc") {
|
||||||
|
depfile = "{{output}}.d"
|
||||||
|
command = "$cc -MMD -MF $depfile ${rebuild_string}{{defines}} {{include_dirs}} {{cflags}} {{cflags_c}}${extra_cppflags}${extra_cflags} -c {{source}} -o {{output}}"
|
||||||
|
depsformat = "gcc"
|
||||||
|
description = "CC {{output}}"
|
||||||
|
outputs = [
|
||||||
|
# The whitelist file is also an output, but ninja does not
|
||||||
|
# currently support multiple outputs for tool("cc").
|
||||||
|
"$object_subdir/{{source_name_part}}.o",
|
||||||
|
]
|
||||||
|
if (enable_resource_whitelist_generation) {
|
||||||
|
compile_wrapper =
|
||||||
|
rebase_path("//build/toolchain/gcc_compile_wrapper.py",
|
||||||
|
root_build_dir)
|
||||||
|
command = "$python_path \"$compile_wrapper\" --resource-whitelist=\"{{output}}.whitelist\" $command"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tool("cxx") {
|
||||||
|
depfile = "{{output}}.d"
|
||||||
|
command = "$cxx -MMD -MF $depfile ${rebuild_string}{{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}}${extra_cppflags}${extra_cxxflags} -c {{source}} -o {{output}}"
|
||||||
|
depsformat = "gcc"
|
||||||
|
description = "CXX {{output}}"
|
||||||
|
outputs = [
|
||||||
|
# The whitelist file is also an output, but ninja does not
|
||||||
|
# currently support multiple outputs for tool("cxx").
|
||||||
|
"$object_subdir/{{source_name_part}}.o",
|
||||||
|
]
|
||||||
|
if (enable_resource_whitelist_generation) {
|
||||||
|
compile_wrapper =
|
||||||
|
rebase_path("//build/toolchain/gcc_compile_wrapper.py",
|
||||||
|
root_build_dir)
|
||||||
|
command = "$python_path \"$compile_wrapper\" --resource-whitelist=\"{{output}}.whitelist\" $command"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tool("asm") {
|
||||||
|
# For GCC we can just use the C compiler to compile assembly.
|
||||||
|
depfile = "{{output}}.d"
|
||||||
|
command = "$cc -MMD -MF $depfile ${rebuild_string}{{defines}} {{include_dirs}} {{asmflags}} -c {{source}} -o {{output}}"
|
||||||
|
depsformat = "gcc"
|
||||||
|
description = "ASM {{output}}"
|
||||||
|
outputs = [
|
||||||
|
"$object_subdir/{{source_name_part}}.o",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
tool("alink") {
|
||||||
|
rspfile = "{{output}}.rsp"
|
||||||
|
whitelist_flag = " "
|
||||||
|
if (enable_resource_whitelist_generation) {
|
||||||
|
whitelist_flag = " --resource-whitelist=\"{{output}}.whitelist\""
|
||||||
|
}
|
||||||
|
|
||||||
|
# This needs a Python script to avoid using simple sh features in this
|
||||||
|
# command, in case the host does not use a POSIX shell (e.g. compiling
|
||||||
|
# POSIX-like toolchains such as NaCl on Windows).
|
||||||
|
ar_wrapper =
|
||||||
|
rebase_path("//build/toolchain/gcc_ar_wrapper.py", root_build_dir)
|
||||||
|
command = "$python_path \"$ar_wrapper\"$whitelist_flag --output={{output}} --ar=\"$ar\" {{arflags}} rcsD @\"$rspfile\""
|
||||||
|
description = "AR {{output}}"
|
||||||
|
rspfile_content = "{{inputs}}"
|
||||||
|
outputs = [
|
||||||
|
"{{output_dir}}/{{target_output_name}}{{output_extension}}",
|
||||||
|
]
|
||||||
|
|
||||||
|
# Shared libraries go in the target out directory by default so we can
|
||||||
|
# generate different targets with the same name and not have them collide.
|
||||||
|
default_output_dir = "{{target_out_dir}}"
|
||||||
|
default_output_extension = ".a"
|
||||||
|
output_prefix = "lib"
|
||||||
|
}
|
||||||
|
|
||||||
|
tool("solink") {
|
||||||
|
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||||
|
sofile = "{{output_dir}}/$soname" # Possibly including toolchain dir.
|
||||||
|
rspfile = sofile + ".rsp"
|
||||||
|
pool = "//build/toolchain:link_pool($default_toolchain)"
|
||||||
|
whitelist_flag = " "
|
||||||
|
if (enable_resource_whitelist_generation) {
|
||||||
|
whitelist_file = "$sofile.whitelist"
|
||||||
|
whitelist_flag = " --resource-whitelist=\"$whitelist_file\""
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined(invoker.strip)) {
|
||||||
|
unstripped_sofile = "{{root_out_dir}}/lib.unstripped/$soname"
|
||||||
|
} else {
|
||||||
|
unstripped_sofile = sofile
|
||||||
|
}
|
||||||
|
|
||||||
|
# These variables are not built into GN but are helpers that
|
||||||
|
# implement (1) linking to produce a .so, (2) extracting the symbols
|
||||||
|
# from that file (3) if the extracted list differs from the existing
|
||||||
|
# .TOC file, overwrite it, otherwise, don't change it.
|
||||||
|
tocfile = sofile + ".TOC"
|
||||||
|
|
||||||
|
link_command = "$ld -shared {{ldflags}}${extra_ldflags} -o \"$unstripped_sofile\" -Wl,-soname=\"$soname\" @\"$rspfile\""
|
||||||
|
|
||||||
|
assert(defined(readelf), "to solink you must have a readelf")
|
||||||
|
assert(defined(nm), "to solink you must have an nm")
|
||||||
|
strip_switch = ""
|
||||||
|
if (defined(invoker.strip)) {
|
||||||
|
strip_switch = "--strip=${invoker.strip}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# This needs a Python script to avoid using a complex shell command
|
||||||
|
# requiring sh control structures, pipelines, and POSIX utilities.
|
||||||
|
# The host might not have a POSIX shell and utilities (e.g. Windows).
|
||||||
|
solink_wrapper = rebase_path("//build/toolchain/gcc_solink_wrapper.py")
|
||||||
|
command = "$python_path \"$solink_wrapper\" --readelf=\"$readelf\" --nm=\"$nm\" $strip_switch --sofile=\"$unstripped_sofile\" --tocfile=\"$tocfile\" --output=\"$sofile\"$whitelist_flag -- $link_command"
|
||||||
|
|
||||||
|
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive $solink_libs_section_prefix {{libs}} $solink_libs_section_postfix"
|
||||||
|
|
||||||
|
description = "SOLINK $sofile"
|
||||||
|
|
||||||
|
# Use this for {{output_extension}} expansions unless a target manually
|
||||||
|
# overrides it (in which case {{output_extension}} will be what the target
|
||||||
|
# specifies).
|
||||||
|
default_output_extension = default_shlib_extension
|
||||||
|
|
||||||
|
default_output_dir = "{{root_out_dir}}"
|
||||||
|
if (shlib_subdir != ".") {
|
||||||
|
default_output_dir += "/$shlib_subdir"
|
||||||
|
}
|
||||||
|
|
||||||
|
output_prefix = "lib"
|
||||||
|
|
||||||
|
# Since the above commands only updates the .TOC file when it changes, ask
|
||||||
|
# Ninja to check if the timestamp actually changed to know if downstream
|
||||||
|
# dependencies should be recompiled.
|
||||||
|
restat = true
|
||||||
|
|
||||||
|
# Tell GN about the output files. It will link to the sofile but use the
|
||||||
|
# tocfile for dependency management.
|
||||||
|
outputs = [
|
||||||
|
sofile,
|
||||||
|
tocfile,
|
||||||
|
]
|
||||||
|
if (enable_resource_whitelist_generation) {
|
||||||
|
outputs += [ whitelist_file ]
|
||||||
|
}
|
||||||
|
if (sofile != unstripped_sofile) {
|
||||||
|
outputs += [ unstripped_sofile ]
|
||||||
|
}
|
||||||
|
link_output = sofile
|
||||||
|
depend_output = tocfile
|
||||||
|
}
|
||||||
|
|
||||||
|
tool("solink_module") {
|
||||||
|
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||||
|
sofile = "{{output_dir}}/$soname"
|
||||||
|
rspfile = sofile + ".rsp"
|
||||||
|
pool = "//build/toolchain:link_pool($default_toolchain)"
|
||||||
|
|
||||||
|
if (defined(invoker.strip)) {
|
||||||
|
unstripped_sofile = "{{root_out_dir}}/lib.unstripped/$soname"
|
||||||
|
} else {
|
||||||
|
unstripped_sofile = sofile
|
||||||
|
}
|
||||||
|
|
||||||
|
command = "$ld -shared {{ldflags}}${extra_ldflags} -o \"$unstripped_sofile\" -Wl,-soname=\"$soname\" @\"$rspfile\""
|
||||||
|
|
||||||
|
if (defined(invoker.strip)) {
|
||||||
|
strip_command = "${invoker.strip} --strip-unneeded -o \"$sofile\" \"$unstripped_sofile\""
|
||||||
|
command += " && " + strip_command
|
||||||
|
}
|
||||||
|
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive $solink_libs_section_prefix {{libs}} $solink_libs_section_postfix"
|
||||||
|
|
||||||
|
description = "SOLINK_MODULE $sofile"
|
||||||
|
|
||||||
|
# Use this for {{output_extension}} expansions unless a target manually
|
||||||
|
# overrides it (in which case {{output_extension}} will be what the target
|
||||||
|
# specifies).
|
||||||
|
if (defined(invoker.loadable_module_extension)) {
|
||||||
|
default_output_extension = invoker.loadable_module_extension
|
||||||
|
} else {
|
||||||
|
default_output_extension = default_shlib_extension
|
||||||
|
}
|
||||||
|
|
||||||
|
default_output_dir = "{{root_out_dir}}"
|
||||||
|
if (shlib_subdir != ".") {
|
||||||
|
default_output_dir += "/$shlib_subdir"
|
||||||
|
}
|
||||||
|
|
||||||
|
output_prefix = "lib"
|
||||||
|
|
||||||
|
outputs = [
|
||||||
|
sofile,
|
||||||
|
]
|
||||||
|
if (sofile != unstripped_sofile) {
|
||||||
|
outputs += [ unstripped_sofile ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tool("link") {
|
||||||
|
exename = "{{target_output_name}}{{output_extension}}"
|
||||||
|
outfile = "{{output_dir}}/$exename"
|
||||||
|
rspfile = "$outfile.rsp"
|
||||||
|
unstripped_outfile = outfile
|
||||||
|
pool = "//build/toolchain:link_pool($default_toolchain)"
|
||||||
|
|
||||||
|
# Use this for {{output_extension}} expansions unless a target manually
|
||||||
|
# overrides it (in which case {{output_extension}} will be what the target
|
||||||
|
# specifies).
|
||||||
|
default_output_extension = default_executable_extension
|
||||||
|
|
||||||
|
default_output_dir = "{{root_out_dir}}"
|
||||||
|
|
||||||
|
if (defined(invoker.strip)) {
|
||||||
|
unstripped_outfile = "{{root_out_dir}}/exe.unstripped/$exename"
|
||||||
|
}
|
||||||
|
|
||||||
|
command = "$ld {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" -Wl,--start-group @\"$rspfile\" {{solibs}} -Wl,--end-group $libs_section_prefix {{libs}} $libs_section_postfix"
|
||||||
|
if (defined(invoker.strip)) {
|
||||||
|
link_wrapper =
|
||||||
|
rebase_path("//build/toolchain/gcc_link_wrapper.py", root_build_dir)
|
||||||
|
command = "$python_path \"$link_wrapper\" --strip=\"${invoker.strip}\" --unstripped-file=\"$unstripped_outfile\" --output=\"$outfile\" -- $command"
|
||||||
|
}
|
||||||
|
description = "LINK $outfile"
|
||||||
|
rspfile_content = "{{inputs}}"
|
||||||
|
outputs = [
|
||||||
|
outfile,
|
||||||
|
]
|
||||||
|
if (outfile != unstripped_outfile) {
|
||||||
|
outputs += [ unstripped_outfile ]
|
||||||
|
}
|
||||||
|
if (defined(invoker.link_outputs)) {
|
||||||
|
outputs += invoker.link_outputs
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# These two are really entirely generic, but have to be repeated in
|
||||||
|
# each toolchain because GN doesn't allow a template to be used here.
|
||||||
|
# See //build/toolchain/toolchain.gni for details.
|
||||||
|
tool("stamp") {
|
||||||
|
command = stamp_command
|
||||||
|
description = stamp_description
|
||||||
|
}
|
||||||
|
tool("copy") {
|
||||||
|
command = copy_command
|
||||||
|
description = copy_description
|
||||||
|
}
|
||||||
|
|
||||||
|
forward_variables_from(invoker, [ "deps" ])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# This is a shorthand for gcc_toolchain instances based on the Chromium-built
|
||||||
|
# version of Clang. Only the toolchain_cpu and toolchain_os variables need to
|
||||||
|
# be specified by the invoker, and optionally toolprefix if it's a
|
||||||
|
# cross-compile case. Note that for a cross-compile case this toolchain
|
||||||
|
# requires a config to pass the appropriate -target option, or else it will
|
||||||
|
# actually just be doing a native compile. The invoker can optionally override
|
||||||
|
# use_gold too.
|
||||||
|
template("clang_toolchain") {
|
||||||
|
if (defined(invoker.toolprefix)) {
|
||||||
|
toolprefix = invoker.toolprefix
|
||||||
|
} else {
|
||||||
|
toolprefix = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
gcc_toolchain(target_name) {
|
||||||
|
prefix = rebase_path("$clang_base_path/bin", root_build_dir)
|
||||||
|
cc = "$prefix/clang"
|
||||||
|
cxx = "$prefix/clang++"
|
||||||
|
ld = cxx
|
||||||
|
|
||||||
|
readelf = "${toolprefix}readelf"
|
||||||
|
ar = "${toolprefix}ar"
|
||||||
|
nm = "${toolprefix}nm"
|
||||||
|
|
||||||
|
forward_variables_from(invoker, [ "strip" ])
|
||||||
|
|
||||||
|
toolchain_args = {
|
||||||
|
if (defined(invoker.toolchain_args)) {
|
||||||
|
forward_variables_from(invoker.toolchain_args, "*")
|
||||||
|
}
|
||||||
|
is_clang = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
235
samples/GN/icu.gn
Normal file
235
samples/GN/icu.gn
Normal file
@@ -0,0 +1,235 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
import("//build/config/linux/pkg_config.gni")
|
||||||
|
import("//build/shim_headers.gni")
|
||||||
|
|
||||||
|
group("icu") {
|
||||||
|
public_deps = [
|
||||||
|
":icui18n",
|
||||||
|
":icuuc",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
config("icu_config") {
|
||||||
|
defines = [
|
||||||
|
"USING_SYSTEM_ICU=1",
|
||||||
|
"ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_config("system_icui18n") {
|
||||||
|
packages = [ "icu-i18n" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_config("system_icuuc") {
|
||||||
|
packages = [ "icu-uc" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("icui18n") {
|
||||||
|
deps = [
|
||||||
|
":icui18n_shim",
|
||||||
|
]
|
||||||
|
public_configs = [
|
||||||
|
":icu_config",
|
||||||
|
":system_icui18n",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("icuuc") {
|
||||||
|
deps = [
|
||||||
|
":icuuc_shim",
|
||||||
|
]
|
||||||
|
public_configs = [
|
||||||
|
":icu_config",
|
||||||
|
":system_icuuc",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
shim_headers("icui18n_shim") {
|
||||||
|
root_path = "source/i18n"
|
||||||
|
headers = [
|
||||||
|
# This list can easily be updated using the command below:
|
||||||
|
# find third_party/icu/source/i18n/unicode \
|
||||||
|
# -iname '*.h' -printf '"%p",\n' | \
|
||||||
|
# sed -e 's|third_party/icu/i18n/common/||' | sort -u
|
||||||
|
"unicode/alphaindex.h",
|
||||||
|
"unicode/basictz.h",
|
||||||
|
"unicode/calendar.h",
|
||||||
|
"unicode/choicfmt.h",
|
||||||
|
"unicode/coleitr.h",
|
||||||
|
"unicode/coll.h",
|
||||||
|
"unicode/compactdecimalformat.h",
|
||||||
|
"unicode/curramt.h",
|
||||||
|
"unicode/currpinf.h",
|
||||||
|
"unicode/currunit.h",
|
||||||
|
"unicode/datefmt.h",
|
||||||
|
"unicode/dcfmtsym.h",
|
||||||
|
"unicode/decimfmt.h",
|
||||||
|
"unicode/dtfmtsym.h",
|
||||||
|
"unicode/dtitvfmt.h",
|
||||||
|
"unicode/dtitvinf.h",
|
||||||
|
"unicode/dtptngen.h",
|
||||||
|
"unicode/dtrule.h",
|
||||||
|
"unicode/fieldpos.h",
|
||||||
|
"unicode/fmtable.h",
|
||||||
|
"unicode/format.h",
|
||||||
|
"unicode/fpositer.h",
|
||||||
|
"unicode/gender.h",
|
||||||
|
"unicode/gregocal.h",
|
||||||
|
"unicode/locdspnm.h",
|
||||||
|
"unicode/measfmt.h",
|
||||||
|
"unicode/measunit.h",
|
||||||
|
"unicode/measure.h",
|
||||||
|
"unicode/msgfmt.h",
|
||||||
|
"unicode/numfmt.h",
|
||||||
|
"unicode/numsys.h",
|
||||||
|
"unicode/plurfmt.h",
|
||||||
|
"unicode/plurrule.h",
|
||||||
|
"unicode/rbnf.h",
|
||||||
|
"unicode/rbtz.h",
|
||||||
|
"unicode/regex.h",
|
||||||
|
"unicode/region.h",
|
||||||
|
"unicode/reldatefmt.h",
|
||||||
|
"unicode/scientificnumberformatter.h",
|
||||||
|
"unicode/search.h",
|
||||||
|
"unicode/selfmt.h",
|
||||||
|
"unicode/simpletz.h",
|
||||||
|
"unicode/smpdtfmt.h",
|
||||||
|
"unicode/sortkey.h",
|
||||||
|
"unicode/stsearch.h",
|
||||||
|
"unicode/tblcoll.h",
|
||||||
|
"unicode/timezone.h",
|
||||||
|
"unicode/tmunit.h",
|
||||||
|
"unicode/tmutamt.h",
|
||||||
|
"unicode/tmutfmt.h",
|
||||||
|
"unicode/translit.h",
|
||||||
|
"unicode/tzfmt.h",
|
||||||
|
"unicode/tznames.h",
|
||||||
|
"unicode/tzrule.h",
|
||||||
|
"unicode/tztrans.h",
|
||||||
|
"unicode/ucal.h",
|
||||||
|
"unicode/ucol.h",
|
||||||
|
"unicode/ucoleitr.h",
|
||||||
|
"unicode/ucsdet.h",
|
||||||
|
"unicode/ucurr.h",
|
||||||
|
"unicode/udat.h",
|
||||||
|
"unicode/udateintervalformat.h",
|
||||||
|
"unicode/udatpg.h",
|
||||||
|
"unicode/udisplaycontext.h",
|
||||||
|
"unicode/ufieldpositer.h",
|
||||||
|
"unicode/uformattable.h",
|
||||||
|
"unicode/ugender.h",
|
||||||
|
"unicode/uldnames.h",
|
||||||
|
"unicode/ulocdata.h",
|
||||||
|
"unicode/umsg.h",
|
||||||
|
"unicode/unirepl.h",
|
||||||
|
"unicode/unum.h",
|
||||||
|
"unicode/unumsys.h",
|
||||||
|
"unicode/upluralrules.h",
|
||||||
|
"unicode/uregex.h",
|
||||||
|
"unicode/uregion.h",
|
||||||
|
"unicode/usearch.h",
|
||||||
|
"unicode/uspoof.h",
|
||||||
|
"unicode/utmscale.h",
|
||||||
|
"unicode/utrans.h",
|
||||||
|
"unicode/vtzone.h",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
shim_headers("icuuc_shim") {
|
||||||
|
root_path = "source/common"
|
||||||
|
headers = [
|
||||||
|
# This list can easily be updated using the command below:
|
||||||
|
# find third_party/icu/source/common/unicode \
|
||||||
|
# -iname '*.h' -printf '"%p",\n' | \
|
||||||
|
# sed -e 's|third_party/icu/source/common/||' | sort -u
|
||||||
|
"unicode/appendable.h",
|
||||||
|
"unicode/brkiter.h",
|
||||||
|
"unicode/bytestream.h",
|
||||||
|
"unicode/bytestrie.h",
|
||||||
|
"unicode/bytestriebuilder.h",
|
||||||
|
"unicode/caniter.h",
|
||||||
|
"unicode/chariter.h",
|
||||||
|
"unicode/dbbi.h",
|
||||||
|
"unicode/docmain.h",
|
||||||
|
"unicode/dtintrv.h",
|
||||||
|
"unicode/enumset.h",
|
||||||
|
"unicode/errorcode.h",
|
||||||
|
"unicode/filteredbrk.h",
|
||||||
|
"unicode/icudataver.h",
|
||||||
|
"unicode/icuplug.h",
|
||||||
|
"unicode/idna.h",
|
||||||
|
"unicode/listformatter.h",
|
||||||
|
"unicode/localpointer.h",
|
||||||
|
"unicode/locid.h",
|
||||||
|
"unicode/messagepattern.h",
|
||||||
|
"unicode/normalizer2.h",
|
||||||
|
"unicode/normlzr.h",
|
||||||
|
"unicode/parseerr.h",
|
||||||
|
"unicode/parsepos.h",
|
||||||
|
"unicode/platform.h",
|
||||||
|
"unicode/ptypes.h",
|
||||||
|
"unicode/putil.h",
|
||||||
|
"unicode/rbbi.h",
|
||||||
|
"unicode/rep.h",
|
||||||
|
"unicode/resbund.h",
|
||||||
|
"unicode/schriter.h",
|
||||||
|
"unicode/std_string.h",
|
||||||
|
"unicode/strenum.h",
|
||||||
|
"unicode/stringpiece.h",
|
||||||
|
"unicode/stringtriebuilder.h",
|
||||||
|
"unicode/symtable.h",
|
||||||
|
"unicode/ubidi.h",
|
||||||
|
"unicode/ubrk.h",
|
||||||
|
"unicode/ucasemap.h",
|
||||||
|
"unicode/ucat.h",
|
||||||
|
"unicode/uchar.h",
|
||||||
|
"unicode/ucharstrie.h",
|
||||||
|
"unicode/ucharstriebuilder.h",
|
||||||
|
"unicode/uchriter.h",
|
||||||
|
"unicode/uclean.h",
|
||||||
|
"unicode/ucnv.h",
|
||||||
|
"unicode/ucnv_cb.h",
|
||||||
|
"unicode/ucnv_err.h",
|
||||||
|
"unicode/ucnvsel.h",
|
||||||
|
"unicode/uconfig.h",
|
||||||
|
"unicode/udata.h",
|
||||||
|
"unicode/uenum.h",
|
||||||
|
"unicode/uidna.h",
|
||||||
|
"unicode/uiter.h",
|
||||||
|
"unicode/ulistformatter.h",
|
||||||
|
"unicode/uloc.h",
|
||||||
|
"unicode/umachine.h",
|
||||||
|
"unicode/umisc.h",
|
||||||
|
"unicode/unifilt.h",
|
||||||
|
"unicode/unifunct.h",
|
||||||
|
"unicode/unimatch.h",
|
||||||
|
"unicode/uniset.h",
|
||||||
|
"unicode/unistr.h",
|
||||||
|
"unicode/unorm.h",
|
||||||
|
"unicode/unorm2.h",
|
||||||
|
"unicode/uobject.h",
|
||||||
|
"unicode/urename.h",
|
||||||
|
"unicode/urep.h",
|
||||||
|
"unicode/ures.h",
|
||||||
|
"unicode/uscript.h",
|
||||||
|
"unicode/uset.h",
|
||||||
|
"unicode/usetiter.h",
|
||||||
|
"unicode/ushape.h",
|
||||||
|
"unicode/usprep.h",
|
||||||
|
"unicode/ustring.h",
|
||||||
|
"unicode/ustringtrie.h",
|
||||||
|
"unicode/utext.h",
|
||||||
|
"unicode/utf.h",
|
||||||
|
"unicode/utf16.h",
|
||||||
|
"unicode/utf32.h",
|
||||||
|
"unicode/utf8.h",
|
||||||
|
"unicode/utf_old.h",
|
||||||
|
"unicode/utrace.h",
|
||||||
|
"unicode/utypes.h",
|
||||||
|
"unicode/uvernum.h",
|
||||||
|
"unicode/uversion.h",
|
||||||
|
]
|
||||||
|
}
|
||||||
2788
samples/GN/internal_rules.gni
Normal file
2788
samples/GN/internal_rules.gni
Normal file
File diff suppressed because it is too large
Load Diff
1422
samples/GN/ios-rules.gni
Normal file
1422
samples/GN/ios-rules.gni
Normal file
File diff suppressed because it is too large
Load Diff
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",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
samples/Python/filenames/.gclient
Normal file
9
samples/Python/filenames/.gclient
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
solutions = [
|
||||||
|
{
|
||||||
|
"url": "https://chromium.googlesource.com/v8/v8.git",
|
||||||
|
"managed": False,
|
||||||
|
"name": "v8",
|
||||||
|
"deps_file": "DEPS",
|
||||||
|
"custom_deps": {},
|
||||||
|
},
|
||||||
|
]
|
||||||
1522
samples/Python/standalone.gypi
Normal file
1522
samples/Python/standalone.gypi
Normal file
File diff suppressed because it is too large
Load Diff
1420
samples/Python/toolchain.gypi
Normal file
1420
samples/Python/toolchain.gypi
Normal file
File diff suppressed because it is too large
Load Diff
4
vendor/README.md
vendored
4
vendor/README.md
vendored
@@ -125,6 +125,7 @@ This is a list of grammars that Linguist selects to provide syntax highlighting
|
|||||||
- **Gettext Catalog:** [textmate/gettext.tmbundle](https://github.com/textmate/gettext.tmbundle)
|
- **Gettext Catalog:** [textmate/gettext.tmbundle](https://github.com/textmate/gettext.tmbundle)
|
||||||
- **GLSL:** [euler0/sublime-glsl](https://github.com/euler0/sublime-glsl)
|
- **GLSL:** [euler0/sublime-glsl](https://github.com/euler0/sublime-glsl)
|
||||||
- **Glyph:** [textmate/tcl.tmbundle](https://github.com/textmate/tcl.tmbundle)
|
- **Glyph:** [textmate/tcl.tmbundle](https://github.com/textmate/tcl.tmbundle)
|
||||||
|
- **GN:** [devoncarew/language-gn](https://github.com/devoncarew/language-gn)
|
||||||
- **Gnuplot:** [mattfoster/gnuplot-tmbundle](https://github.com/mattfoster/gnuplot-tmbundle)
|
- **Gnuplot:** [mattfoster/gnuplot-tmbundle](https://github.com/mattfoster/gnuplot-tmbundle)
|
||||||
- **Go:** [AlanQuatermain/go-tmbundle](https://github.com/AlanQuatermain/go-tmbundle)
|
- **Go:** [AlanQuatermain/go-tmbundle](https://github.com/AlanQuatermain/go-tmbundle)
|
||||||
- **Golo:** [TypeUnsafe/sublime-golo](https://github.com/TypeUnsafe/sublime-golo)
|
- **Golo:** [TypeUnsafe/sublime-golo](https://github.com/TypeUnsafe/sublime-golo)
|
||||||
@@ -224,6 +225,7 @@ This is a list of grammars that Linguist selects to provide syntax highlighting
|
|||||||
- **NewLisp:** [textmate/lisp.tmbundle](https://github.com/textmate/lisp.tmbundle)
|
- **NewLisp:** [textmate/lisp.tmbundle](https://github.com/textmate/lisp.tmbundle)
|
||||||
- **Nginx:** [brandonwamboldt/sublime-nginx](https://github.com/brandonwamboldt/sublime-nginx)
|
- **Nginx:** [brandonwamboldt/sublime-nginx](https://github.com/brandonwamboldt/sublime-nginx)
|
||||||
- **Nimrod:** [Varriount/NimLime](https://github.com/Varriount/NimLime)
|
- **Nimrod:** [Varriount/NimLime](https://github.com/Varriount/NimLime)
|
||||||
|
- **Ninja:** [khyo/language-ninja](https://github.com/khyo/language-ninja)
|
||||||
- **Nit:** [R4PaSs/Sublime-Nit](https://github.com/R4PaSs/Sublime-Nit)
|
- **Nit:** [R4PaSs/Sublime-Nit](https://github.com/R4PaSs/Sublime-Nit)
|
||||||
- **Nix:** [wmertens/sublime-nix](https://github.com/wmertens/sublime-nix)
|
- **Nix:** [wmertens/sublime-nix](https://github.com/wmertens/sublime-nix)
|
||||||
- **NSIS:** [github-linguist/NSIS](https://github.com/github-linguist/NSIS)
|
- **NSIS:** [github-linguist/NSIS](https://github.com/github-linguist/NSIS)
|
||||||
@@ -239,6 +241,7 @@ This is a list of grammars that Linguist selects to provide syntax highlighting
|
|||||||
- **OpenCL:** [textmate/c.tmbundle](https://github.com/textmate/c.tmbundle)
|
- **OpenCL:** [textmate/c.tmbundle](https://github.com/textmate/c.tmbundle)
|
||||||
- **OpenEdge ABL:** [jfairbank/Sublime-Text-2-OpenEdge-ABL](https://github.com/jfairbank/Sublime-Text-2-OpenEdge-ABL)
|
- **OpenEdge ABL:** [jfairbank/Sublime-Text-2-OpenEdge-ABL](https://github.com/jfairbank/Sublime-Text-2-OpenEdge-ABL)
|
||||||
- **OpenRC runscript:** [atom/language-shellscript](https://github.com/atom/language-shellscript)
|
- **OpenRC runscript:** [atom/language-shellscript](https://github.com/atom/language-shellscript)
|
||||||
|
- **OpenType Feature File:** [Alhadis/language-fontforge](https://github.com/Alhadis/language-fontforge)
|
||||||
- **Ox:** [andreashetland/sublime-text-ox](https://github.com/andreashetland/sublime-text-ox)
|
- **Ox:** [andreashetland/sublime-text-ox](https://github.com/andreashetland/sublime-text-ox)
|
||||||
- **Oz:** [eregon/oz-tmbundle](https://github.com/eregon/oz-tmbundle)
|
- **Oz:** [eregon/oz-tmbundle](https://github.com/eregon/oz-tmbundle)
|
||||||
- **Papyrus:** [Kapiainen/SublimePapyrus](https://github.com/Kapiainen/SublimePapyrus)
|
- **Papyrus:** [Kapiainen/SublimePapyrus](https://github.com/Kapiainen/SublimePapyrus)
|
||||||
@@ -306,6 +309,7 @@ This is a list of grammars that Linguist selects to provide syntax highlighting
|
|||||||
- **SMT:** [SRI-CSL/SMT.tmbundle](https://github.com/SRI-CSL/SMT.tmbundle)
|
- **SMT:** [SRI-CSL/SMT.tmbundle](https://github.com/SRI-CSL/SMT.tmbundle)
|
||||||
- **SourcePawn:** [github-linguist/sublime-sourcepawn](https://github.com/github-linguist/sublime-sourcepawn)
|
- **SourcePawn:** [github-linguist/sublime-sourcepawn](https://github.com/github-linguist/sublime-sourcepawn)
|
||||||
- **SPARQL:** [peta/turtle.tmbundle](https://github.com/peta/turtle.tmbundle)
|
- **SPARQL:** [peta/turtle.tmbundle](https://github.com/peta/turtle.tmbundle)
|
||||||
|
- **Spline Font Database:** [Alhadis/language-fontforge](https://github.com/Alhadis/language-fontforge)
|
||||||
- **SQF:** [JonBons/Sublime-SQF-Language](https://github.com/JonBons/Sublime-SQF-Language)
|
- **SQF:** [JonBons/Sublime-SQF-Language](https://github.com/JonBons/Sublime-SQF-Language)
|
||||||
- **SQL:** [textmate/sql.tmbundle](https://github.com/textmate/sql.tmbundle)
|
- **SQL:** [textmate/sql.tmbundle](https://github.com/textmate/sql.tmbundle)
|
||||||
- **SQLPL:** [textmate/sql.tmbundle](https://github.com/textmate/sql.tmbundle)
|
- **SQLPL:** [textmate/sql.tmbundle](https://github.com/textmate/sql.tmbundle)
|
||||||
|
|||||||
1
vendor/grammars/language-gn
vendored
Submodule
1
vendor/grammars/language-gn
vendored
Submodule
Submodule vendor/grammars/language-gn added at e1a3008505
32
vendor/licenses/grammar/language-gn.txt
vendored
Normal file
32
vendor/licenses/grammar/language-gn.txt
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
type: grammar
|
||||||
|
name: language-gn
|
||||||
|
license: bsd-3-clause
|
||||||
|
---
|
||||||
|
Copyright (c) 2015, Devon Carew
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
* Neither the name of the organization nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from
|
||||||
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
14
vendor/licenses/grammar/xquery.txt
vendored
14
vendor/licenses/grammar/xquery.txt
vendored
@@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
type: grammar
|
|
||||||
name: xquery
|
|
||||||
license: permissive
|
|
||||||
curated: true
|
|
||||||
---
|
|
||||||
If not otherwise specified (see below), files in this repository fall under the following license:
|
|
||||||
|
|
||||||
Permission to copy, use, modify, sell and distribute this
|
|
||||||
software is granted. This software is provided "as is" without
|
|
||||||
express or implied warranty, and with no claim as to its
|
|
||||||
suitability for any purpose.
|
|
||||||
|
|
||||||
An exception is made for files in readable text which contain their own license information, or files where an accompanying file exists (in the same directory) with a “-license” suffix added to the base-name name of the original file, and an extension of txt, html, or similar. For example “tidy” is accompanied by “tidy-license.txt”.
|
|
||||||
Reference in New Issue
Block a user