blob: 7b7f499010dddc89d1303e3c6913b0641f9a9a31 [file] [log] [blame]
# 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("//tools/grit/grit_rule.gni")
interfaces_bindings_gen_dir = "$root_gen_dir/mojo/public/interfaces/bindings"
source_set("js") {
sources = [
"constants.cc",
"constants.h",
]
}
group("bindings") {
data = [
"$interfaces_bindings_gen_dir/interface_control_messages.mojom.js",
"$interfaces_bindings_gen_dir/pipe_control_messages.mojom.js",
"associated_bindings.js",
"bindings.js",
"buffer.js",
"codec.js",
"connector.js",
"core.js",
"interface_types.js",
"lib/control_message_handler.js",
"lib/control_message_proxy.js",
"lib/interface_endpoint_client.js",
"lib/interface_endpoint_handle.js",
"lib/pipe_control_message_handler.js",
"lib/pipe_control_message_proxy.js",
"router.js",
"support.js",
"threading.js",
"unicode.js",
"validator.js",
]
public_deps = [
"//mojo/public/interfaces/bindings:bindings_js__generator",
]
}
action("new_bindings") {
new_bindings_js_files = [
# This must be the first file in the list, because it initializes global
# variable |mojoBindings| that the others need to refer to.
"new_bindings/base.js",
"new_bindings/bindings.js",
"new_bindings/buffer.js",
"new_bindings/codec.js",
"new_bindings/connector.js",
"new_bindings/interface_types.js",
"new_bindings/lib/control_message_handler.js",
"new_bindings/lib/control_message_proxy.js",
"new_bindings/lib/interface_endpoint_client.js",
"new_bindings/lib/interface_endpoint_handle.js",
"new_bindings/lib/pipe_control_message_handler.js",
"new_bindings/lib/pipe_control_message_proxy.js",
"new_bindings/router.js",
"new_bindings/unicode.js",
"new_bindings/validator.js",
# These two needs to refer to codec.js.
"$interfaces_bindings_gen_dir/new_bindings/interface_control_messages.mojom.js",
"$interfaces_bindings_gen_dir/new_bindings/pipe_control_messages.mojom.js",
]
compiled_file = "$target_gen_dir/mojo_bindings.js"
# TODO(yzshen): Eventually we would like to use Closure Compiler to minify the
# bindings instead of simply concatenating the files.
script = "//v8/tools/concatenate-files.py"
sources = new_bindings_js_files
outputs = [
compiled_file,
]
args = rebase_path(new_bindings_js_files, root_build_dir)
args += [ rebase_path(compiled_file, root_build_dir) ]
deps = [
"//mojo/public/interfaces/bindings:new_bindings_js__generator",
]
}
group("tests") {
testonly = true
data = [
"tests/core_unittest.js",
]
public_deps = [
":bindings",
]
}
grit("resources") {
source = "mojo_bindings_resources.grd"
# The .grd contains references to generated files.
source_is_generated = true
outputs = [
"grit/mojo_bindings_resources.h",
"mojo_bindings_resources.pak",
]
grit_flags = [
"-E",
"root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir),
]
deps = [
":new_bindings",
]
}