87 lines
2.6 KiB
Text
87 lines
2.6 KiB
Text
template("node_action") {
|
|
assert(defined(invoker.script), "Need script path to run")
|
|
assert(defined(invoker.args), "Need script arguments")
|
|
|
|
action(target_name) {
|
|
forward_variables_from(invoker,
|
|
[
|
|
"deps",
|
|
"public_deps",
|
|
"sources",
|
|
"inputs",
|
|
"outputs",
|
|
])
|
|
if (!defined(inputs)) {
|
|
inputs = []
|
|
}
|
|
inputs += [ invoker.script ]
|
|
script = "//electron/build/run-node.py"
|
|
args = [ rebase_path(invoker.script) ] + invoker.args
|
|
}
|
|
}
|
|
|
|
template("asar") {
|
|
assert(defined(invoker.sources),
|
|
"Need sources in $target_name listing the source files")
|
|
assert(defined(invoker.outputs),
|
|
"Need asar name (as 1-element array, e.g. \$root_out_dir/foo.asar)")
|
|
assert(defined(invoker.root), "Need the base dir for generating the ASAR")
|
|
|
|
node_action(target_name) {
|
|
forward_variables_from(invoker,
|
|
"*",
|
|
[
|
|
"script",
|
|
"args",
|
|
])
|
|
|
|
script = "//electron/script/gn-asar.js"
|
|
args = [
|
|
"--base",
|
|
rebase_path(root),
|
|
"--files",
|
|
] + rebase_path(sources) +
|
|
[
|
|
"--out",
|
|
rebase_path(outputs[0]),
|
|
]
|
|
}
|
|
|
|
node_action(target_name + "_header_hash") {
|
|
invoker_out = invoker.outputs
|
|
|
|
deps = [ ":" + invoker.target_name ]
|
|
sources = invoker.outputs
|
|
|
|
script = "//electron/script/gn-asar-hash.js"
|
|
outputs = [ "$target_gen_dir/asar_hashes/$target_name.hash" ]
|
|
|
|
args = [
|
|
rebase_path(invoker_out[0]),
|
|
rebase_path(outputs[0]),
|
|
]
|
|
}
|
|
}
|
|
|
|
template("asar_hashed_info_plist") {
|
|
node_action(target_name) {
|
|
assert(defined(invoker.plist_file),
|
|
"Need plist_file to add hashed assets to")
|
|
assert(defined(invoker.keys), "Need keys to replace with asset hash")
|
|
assert(defined(invoker.hash_targets), "Need hash_targets to read hash from")
|
|
|
|
deps = invoker.hash_targets
|
|
|
|
script = "//electron/script/gn-plist-but-with-hashes.js"
|
|
inputs = [ invoker.plist_file ]
|
|
outputs = [ "$target_gen_dir/hashed_plists/$target_name.plist" ]
|
|
hash_files = []
|
|
foreach(hash_target, invoker.hash_targets) {
|
|
hash_files += get_target_outputs(hash_target)
|
|
}
|
|
args = [
|
|
rebase_path(invoker.plist_file),
|
|
rebase_path(outputs[0]),
|
|
] + invoker.keys + rebase_path(hash_files)
|
|
}
|
|
}
|