blob: 4d004dd45c5b4ef364c38d31ee2d12dace91c8f3 [file] [log] [blame]
# Copyright 2021 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.
# A ninja action script that calls the given python script with `python3`
# instead of the default `python` (which might be `python2`).
#
# Example
#
# ```
# python3_action("run_this_guy_once") {
# script = "doprocessing.py"
# sources = [ "my_configuration.txt" ]
# outputs = [ "$target_gen_dir/insightful_output.txt" ]
#
# # Our script imports this Python file so we want to rebuild if it
# # changes.
# source_prereqs = [ "helper_library.py" ]
#
# # Note that we have to manually pass the sources to our script if
# # the script needs them as inputs.
# args = [ "--out", to_build_path(target_gen_dir) ] + sources
# }
# ```
#
# Parameters
# args
# data
# datadeps
# depfile
# deps
# inputs
# metadata
# outputs (required)
# script (required)
# source_prereqs
# sources
template("python3_action") {
assert(defined(invoker.outputs), "outputs is required")
assert(defined(invoker.script), "script is required")
action(target_name) {
forward_variables_from(invoker,
[
"data",
"datadeps",
"depfile",
"deps",
"inputs",
"metadata",
"outputs",
"source_prereqs",
"sources",
])
script = "//flutter/tools/python/run_python3_action.py"
args = [ rebase_path(invoker.script) ] + invoker.args
}
}