| # generic_script_wrapper |
| |
| This module provides a way to integrate an external command into an f4pga flow. |
| Its inputs and outputs are fully defined by the author of flow definition. |
| |
| ## Parameters |
| |
| Parameters are everything when it comes to this module: |
| |
| * `stage_name` (string, optional): Name describing the stage |
| * `script` (string, mandatory): Path to the script to be executed |
| * `interpreter` (string, optional): Interpreter for the script |
| * `cwd` (string, optional): Current Working Directory for the script |
| * `outputs` (dict[string -> dict[string -> string]], |
| mandatory): |
| A dict with output descriptions (dicts). Keys name output dependencies. |
| * `mode` (string, mandatory): "file" or "stdout". Describes how the output is |
| grabbed from the script. |
| * `file` (string, required if `mode` is "file"): Name of the file generated by the |
| script. |
| * `target` (string, required): Default name of the file of the generated |
| dependency. You can use all values available during map_io stage. Each input |
| dependency also gets two extra values associated with it: |
| `:dependency_name[noext]`, which contains the path to the dependency the |
| extension with anything after last "." removed and `:dependency_name[dir]` which |
| contains directory paths of the dependency. This is useful for deriving an output |
| name from the input. |
| * `meta` (string, optional): Description of the output dependency. |
| * `inputs` (dict[string -> string | bool], mandatory): |
| A dict with input descriptions. Key is can be a name of a named argument, a |
| position of unnamed argument, when prefaced with "#" (eg. "#1"), or a name of an |
| environmental variable, when prefaced with "$". Positions are indexed |
| from 1, as it's a convention that 0th argument is the path of the executed program. |
| Values are strings that can contain references to variables to be resolved |
| after the project flow configuration is loaded (that means they can reference |
| values and dependencies which are to be set by the user). All of modules inputs |
| will be determined by the references used. Thus dependency and value definitions |
| are implicit. If the value of the resolved string is empty and is associated with a |
| named argument, the argument in question will be skipped entirely. This allows |
| using optional dependencies. To use a named argument as a flag instead, set it to |
| `true`. |