b202ad1e24
* refactor: remove js2asar.py and port logic to JS in more readable / GN-style way * refactor: further clean up ASAR impl, add new node_action GN template
60 lines
1.7 KiB
Text
60 lines
1.7 KiB
Text
import("node.gni")
|
|
|
|
# TODO(MarshallOfSound): Move to electron/node, this is the only place it is used now
|
|
# Run an action with a given working directory. Behaves identically to the
|
|
# action() target type, with the exception that it changes directory before
|
|
# running the script.
|
|
#
|
|
# Parameters:
|
|
# cwd [required]: Directory to change to before running the script.
|
|
template("chdir_action") {
|
|
action(target_name) {
|
|
forward_variables_from(invoker,
|
|
"*",
|
|
[
|
|
"script",
|
|
"args",
|
|
])
|
|
assert(defined(cwd), "Need cwd in $target_name")
|
|
script = "//electron/build/run-in-dir.py"
|
|
if (defined(sources)) {
|
|
sources += [ invoker.script ]
|
|
} else {
|
|
assert(defined(inputs))
|
|
inputs += [ invoker.script ]
|
|
}
|
|
args = [
|
|
rebase_path(cwd),
|
|
rebase_path(invoker.script),
|
|
]
|
|
args += 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]),
|
|
]
|
|
}
|
|
}
|