mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 16:26:10 +03:00
268 lines
9.0 KiB
Plaintext
268 lines
9.0 KiB
Plaintext
# 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")
|
|
import("//third_party/WebKit/Source/config.gni")
|
|
|
|
# All paths in this file should be absolute so targets in any directory can use
|
|
# them without worrying about the current directory.
|
|
_scripts_dir = "//third_party/WebKit/Source/build/scripts"
|
|
|
|
scripts_for_json5_files = [
|
|
# jinja2/__init__.py contains version string, so sufficient as
|
|
# dependency for whole jinja2 package
|
|
"//third_party/jinja2/__init__.py",
|
|
"//third_party/markupsafe/__init__.py", # jinja2 dep
|
|
"$_scripts_dir/hasher.py",
|
|
"$_scripts_dir/json5_generator.py",
|
|
"$_scripts_dir/license.py",
|
|
"$_scripts_dir/name_utilities.py",
|
|
"$_scripts_dir/template_expander.py",
|
|
"$_scripts_dir/templates/macros.tmpl",
|
|
"$_scripts_dir/core/css/field_alias_expander.py",
|
|
"$_scripts_dir/core/css/properties/templates/style_builder_functions.tmpl",
|
|
]
|
|
|
|
css_properties_files =
|
|
scripts_for_json5_files + [ "$_scripts_dir/core/css/css_properties.py" ]
|
|
|
|
make_event_factory_files = scripts_for_json5_files + [
|
|
"$_scripts_dir/make_event_factory.py",
|
|
"$_scripts_dir/templates/EventFactory.cpp.tmpl",
|
|
]
|
|
|
|
make_names_files = scripts_for_json5_files + [
|
|
"$_scripts_dir/make_names.py",
|
|
"$_scripts_dir/templates/MakeNames.cpp.tmpl",
|
|
"$_scripts_dir/templates/MakeNames.h.tmpl",
|
|
]
|
|
|
|
make_qualified_names_files =
|
|
scripts_for_json5_files + [
|
|
"$_scripts_dir/make_qualified_names.py",
|
|
"$_scripts_dir/templates/make_qualified_names.cc.tmpl",
|
|
"$_scripts_dir/templates/make_qualified_names.h.tmpl",
|
|
]
|
|
|
|
make_element_factory_files =
|
|
make_qualified_names_files + [
|
|
"$_scripts_dir/make_element_factory.py",
|
|
"$_scripts_dir/templates/element_factory.cc.tmpl",
|
|
"$_scripts_dir/templates/element_factory.h.tmpl",
|
|
]
|
|
|
|
make_element_type_helpers_files =
|
|
make_qualified_names_files + [
|
|
"$_scripts_dir/make_element_type_helpers.py",
|
|
"$_scripts_dir/templates/element_type_helpers.cc.tmpl",
|
|
"$_scripts_dir/templates/element_type_helpers.h.tmpl",
|
|
]
|
|
|
|
make_trie_helpers_files =
|
|
scripts_for_json5_files + [ "$_scripts_dir/trie_builder.py" ]
|
|
|
|
# The executables are relative to the build directory. Don't rebase it because
|
|
# on Posix we want to run the system one on the path.
|
|
if (host_os == "win") {
|
|
gperf_exe = rebase_path("//third_party/gperf/bin/gperf.exe", root_build_dir)
|
|
bison_exe = rebase_path("//third_party/bison/bin/bison.exe", root_build_dir)
|
|
} else {
|
|
gperf_exe = "gperf"
|
|
bison_exe = "bison"
|
|
}
|
|
|
|
# Templates --------------------------------------------------------------------
|
|
|
|
_blink_gen_dir = "$root_gen_dir/blink"
|
|
|
|
make_core_generated_deps = [
|
|
"//third_party/WebKit/Source/core:generated_testing_idls",
|
|
"//third_party/WebKit/Source/core:core_event_interfaces",
|
|
]
|
|
|
|
# TODO(shend): Remove this once everything that uses this switches over to
|
|
# the 'code_generator' template instead.
|
|
# Template to run most of scripts that process "*.json5" files.
|
|
# script: script to run.
|
|
# in_files: input ".json5" files to pass to the script
|
|
# other_inputs: (optional) other input files the script depends on
|
|
# defaults to "scripts_for_json5_files" (if specified, we assume
|
|
# that the contents of "scripts_for_json5_files" are included in
|
|
# this list).
|
|
# outputs: expected results. Note that the directory of the 0th item in this
|
|
# list will be taken to be the output path.
|
|
# other_args: (optional) other arguments to pass to the script.
|
|
# deps [optional]:
|
|
# Depenendencies. If unspecified defaults to make_core_generated_deps.
|
|
template("process_json5_files") {
|
|
action(target_name) {
|
|
script = invoker.script
|
|
|
|
inputs = invoker.in_files
|
|
if (defined(invoker.other_inputs)) {
|
|
inputs += invoker.other_inputs
|
|
} else {
|
|
inputs += scripts_for_json5_files
|
|
}
|
|
outputs = invoker.outputs
|
|
|
|
# Extract the directory to write files to.
|
|
output_dir = get_path_info(outputs[0], "dir")
|
|
|
|
args = rebase_path(invoker.in_files, root_build_dir) + [
|
|
"--output_dir",
|
|
rebase_path(output_dir, root_build_dir),
|
|
]
|
|
if (is_mac && !use_system_xcode) {
|
|
args += [
|
|
"--developer_dir",
|
|
hermetic_xcode_path,
|
|
]
|
|
}
|
|
if (defined(invoker.other_args)) {
|
|
args += invoker.other_args
|
|
}
|
|
if (snake_case_source_files) {
|
|
args += [ "--snake-case-source-files" ]
|
|
}
|
|
|
|
if (defined(invoker.deps)) {
|
|
deps = invoker.deps
|
|
} else {
|
|
deps = make_core_generated_deps
|
|
}
|
|
forward_variables_from(invoker, [ "visibility" ])
|
|
}
|
|
}
|
|
|
|
# Template to run code generators in build/scripts/.
|
|
# script: the path to the script to run.
|
|
# json_inputs: ".json5" files to pass to the generator.
|
|
# templates: ".tmpl" files that this generator depends on.
|
|
# other_inputs: (optional) other input files the generator depends on
|
|
# in addition to "scripts_for_json5_files"
|
|
# outputs: expected results. Note that the directory of the 0th item in this
|
|
# list will be taken to be the output path.
|
|
# other_args: (optional) other arguments to pass to the script.
|
|
# deps [optional]:
|
|
# Depenendencies. If unspecified defaults to make_core_generated_deps.
|
|
template("code_generator") {
|
|
action(target_name) {
|
|
script = invoker.script
|
|
inputs = invoker.json_inputs + invoker.templates + scripts_for_json5_files
|
|
if (defined(invoker.other_inputs)) {
|
|
inputs += invoker.other_inputs
|
|
}
|
|
outputs = invoker.outputs
|
|
|
|
# Extract the directory to write files to.
|
|
output_dir = get_path_info(outputs[0], "dir")
|
|
|
|
args = rebase_path(invoker.json_inputs, root_build_dir) + [
|
|
"--output_dir",
|
|
rebase_path(output_dir, root_build_dir),
|
|
]
|
|
if (is_mac && !use_system_xcode) {
|
|
args += [
|
|
"--developer_dir",
|
|
hermetic_xcode_path,
|
|
]
|
|
}
|
|
if (defined(invoker.other_args)) {
|
|
args += invoker.other_args
|
|
}
|
|
|
|
if (defined(invoker.deps)) {
|
|
deps = invoker.deps
|
|
} else {
|
|
deps = make_core_generated_deps
|
|
}
|
|
forward_variables_from(invoker, [ "visibility" ])
|
|
}
|
|
}
|
|
|
|
# Template for scripts using css_properties.py. This is a special case of
|
|
# process_json5_files.
|
|
# outputs: expected results
|
|
template("css_properties") {
|
|
process_json5_files(target_name) {
|
|
script = invoker.script
|
|
in_files = [
|
|
"css/CSSProperties.json5",
|
|
"css/ComputedStyleFieldAliases.json5",
|
|
]
|
|
if (defined(invoker.in_files)) {
|
|
in_files += invoker.in_files
|
|
}
|
|
other_inputs = css_properties_files
|
|
if (defined(invoker.other_inputs)) {
|
|
other_inputs += invoker.other_inputs
|
|
}
|
|
other_args = [
|
|
"--gperf",
|
|
gperf_exe,
|
|
]
|
|
outputs = invoker.outputs
|
|
}
|
|
}
|
|
|
|
# Template to run the make_names script. This is a special case of
|
|
# process_json5_files.
|
|
# in_files: input files to pass to the script
|
|
# output_dir: output directory
|
|
# deps [optional]:
|
|
# Dependencies. See process_json5_files for definition.
|
|
template("make_names") {
|
|
output_dir = invoker.output_dir
|
|
outputs = process_file_template(invoker.in_files,
|
|
[
|
|
"$output_dir/{{source_name_part}}.cc",
|
|
"$output_dir/{{source_name_part}}.h",
|
|
])
|
|
process_json5_files(target_name) {
|
|
script = "//third_party/WebKit/Source/build/scripts/make_names.py"
|
|
other_inputs = make_names_files
|
|
forward_variables_from(invoker,
|
|
[
|
|
"deps",
|
|
"in_files",
|
|
"public_deps",
|
|
"visibility",
|
|
])
|
|
}
|
|
}
|
|
|
|
# Template to run the make_qualified_names script. This is a special case of
|
|
# process_json5_files.
|
|
# in_files: list of input ".json5" files to process.
|
|
# outputs: list of output files
|
|
template("make_qualified_names") {
|
|
process_json5_files(target_name) {
|
|
script = "//third_party/WebKit/Source/build/scripts/make_qualified_names.py"
|
|
in_files = invoker.in_files
|
|
other_inputs = make_qualified_names_files
|
|
outputs = invoker.outputs
|
|
}
|
|
}
|
|
|
|
# Calls the make_event_factory script. This is a special case of
|
|
# process_json5_files.
|
|
# in_files: list of input ".json5" files to process.
|
|
# outputs: list of output files
|
|
# deps [optional]
|
|
# Dependencies. See process_json5_files for definition.
|
|
template("make_event_factory") {
|
|
process_json5_files(target_name) {
|
|
script = "//third_party/WebKit/Source/build/scripts/make_event_factory.py"
|
|
other_inputs = make_event_factory_files
|
|
forward_variables_from(invoker,
|
|
[
|
|
"deps",
|
|
"in_files",
|
|
"outputs",
|
|
"visibility",
|
|
])
|
|
}
|
|
}
|