| # Copyright 2013 The Flutter Authors. All rights reserved. | 
 | # Use of this source code is governed by a BSD-style license that can be | 
 | # found in the LICENSE file. | 
 |  | 
 | if (host_os == "win") { | 
 |   host_executable_suffix = ".exe" | 
 | } else { | 
 |   host_executable_suffix = "" | 
 | } | 
 |  | 
 | template("executable_action") { | 
 |   action(target_name) { | 
 |     assert(defined(invoker.tool), "The executable tool must be specified.") | 
 |     assert(defined(invoker.args), "The command line args must be specified.") | 
 |     if (defined(invoker.visibility)) { | 
 |       visibility = invoker.visibility | 
 |     } | 
 |     if (defined(invoker.testonly)) { | 
 |       testonly = invoker.testonly | 
 |     } | 
 |  | 
 |     script = "//build/gn_run_binary.py" | 
 |  | 
 |     host_executable = | 
 |         rebase_path("${invoker.tool}${host_executable_suffix}", root_build_dir) | 
 |  | 
 |     if (defined(invoker.deps)) { | 
 |       deps = invoker.deps | 
 |     } else { | 
 |       deps = [] | 
 |     } | 
 |  | 
 |     if (defined(invoker.inputs)) { | 
 |       inputs = invoker.inputs | 
 |     } else { | 
 |       inputs = [] | 
 |     } | 
 |  | 
 |     outputs = invoker.outputs | 
 |  | 
 |     args = [ host_executable ] + invoker.args | 
 |   } | 
 | } |