# 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", ] }