| # Copyright 2018 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| template("generate_dbus_adaptors") { |
| forward_variables_from(invoker, |
| [ |
| "dbus_adaptors_out_dir", |
| "dbus_service_config", |
| ]) |
| h_dir = "${root_gen_dir}/${dbus_adaptors_out_dir}" |
| h_tmp_dir = "${root_gen_dir}/dbus_tmp/${dbus_adaptors_out_dir}" |
| |
| if (!defined(dbus_service_config) || dbus_service_config == "") { |
| service_config = "" |
| } else { |
| service_config = rebase_path(dbus_service_config) |
| } |
| |
| # Following three actions is to ensure that the headers by the new Go |
| # dbus-binding generator are the same as those by the original C++ |
| # dbus-binding generator. |
| # TODO(crbug.com/983008): Remove the action of generating bindings by C++ |
| # generator and the action making diff after the migration completes. |
| |
| headers_by_cpp_generator = "__${target_name}_cpp" |
| action_foreach(headers_by_cpp_generator) { |
| sources = invoker.sources |
| script = "//common-mk/file_generator_wrapper.py" |
| outputs = [ "${h_tmp_dir}/{{source_name_part}}.h" ] |
| args = [ |
| "generate-chromeos-dbus-bindings", |
| "{{source}}", |
| "--service-config=${service_config}", |
| "--adaptor=${h_tmp_dir}/{{source_name_part}}.h", |
| ] |
| } |
| |
| headers_by_go_generator = "__${target_name}_go" |
| action_foreach(headers_by_go_generator) { |
| sources = invoker.sources |
| script = "//common-mk/file_generator_wrapper.py" |
| outputs = [ "${h_dir}/{{source_name_part}}.h" ] |
| args = [ |
| "go-generate-chromeos-dbus-bindings", |
| "-adaptor=${h_dir}/{{source_name_part}}.h", |
| "{{source}}", |
| ] |
| } |
| |
| action_foreach("__${target_name}_diff") { |
| sources = invoker.sources |
| script = "//common-mk/generated_dbus_header_diff.py" |
| outputs = [ "${h_tmp_dir}/{{source_name_part}}.h.diff" ] |
| args = [ |
| "--out", |
| "${h_tmp_dir}/{{source_name_part}}.h.diff", |
| "--cpp", |
| "${h_tmp_dir}/{{source_name_part}}.h", |
| "--go", |
| "${h_dir}/{{source_name_part}}.h", |
| ] |
| deps = [ |
| ":${headers_by_cpp_generator}", |
| ":${headers_by_go_generator}", |
| ] |
| } |
| |
| group(target_name) { |
| deps = [ |
| ":${headers_by_go_generator}", |
| ":__${target_name}_diff", |
| ] |
| } |
| } |