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]), ] } }