1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import("npm.gni")
- # 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 JS files.")
- assert(defined(invoker.outputs),
- "Need asar name (as 1-element array, e.g. \$root_out_dir/foo.asar)")
- assert(defined(invoker.root), "Need asar root directory")
- asar_root = invoker.root
- # js2asar.py expects relative paths to its inputs, so we must run it in a
- # working directory in which those relative paths make sense.
- chdir_action(target_name) {
- sources = invoker.sources
- outputs = invoker.outputs
- script = "//electron/tools/js2asar.py"
- cwd = rebase_path(get_path_info(".", "abspath"))
- args = rebase_path(outputs, cwd) + [ asar_root ] + rebase_path(sources, ".")
- }
- }
|