Package: eda-container-wrapper
EDA Container WrapperEDA container wrapper is a work-in-progress generic wrapper tool around open
source EDA tools. The tools are executed in Docker containers and this tool
wraps this execution and keeps an inventory of tools.It supports three use cases:Runeda-container-wrapperto execute the wrapper with given parametersLeteda-container-wrappercreate a wrapper script (in an executable path for example) with pre-defined settingsRun tools from python using theedacontainerwrappermoduleThe settings can be set in the following way in precedence order:As parameters to theeda-container-wrappertool or to the respective functions ofedacontainerwrapperAs environment variablesAs default settings in the wrapper scriptsInstallation$pip3installeda-container-wrapperSupported settingsTool version (--tool-versionorECW_TOOL_VERSION, default: depends on tool)Sets the version of the tool to use.Interactive (--non-interactiveorÈCW_INTERACTIVE, default: interactive)Runs the Docker container in interactive mode (allowing to terminate it easily
for example) with the Docker-tiflags. Some non-interactive environments such
as CI don't support that (missing tty). Note the difference in logic, the
default is interactive mode which is disabled with the--non-interactiveswitch.ECW_INTERACTIVEkeeps it interactive when set totrueor1and it
will be non-interactive otherwise.Current work directory base (--cwd-baseorECW_CWD_BASE, default: not set)If not empty this is a colon-separated pair of a leading path of the cwd where
the tool was called from and a replacement for this path. This is in particular
useful when called from inside a Docker container, such as in CI. The syntax is:<actual path>:<cwd path>.Split the current working directory (--split-cwd-tailorECW_SPLIT_CWD_TAIL, default:0)When mapping the current working directory, this setting actually maps the path
up the hierarchy by the given value. This is in particular useful when you need
to access data relative to the current working directory that is in upper and
sibbling folders.For example, when started from the following folder:CWD=/path/to/my/project/buildSetting--split-cwd-tail=1the split is into/path/to/my/projectandbuild. Each tool has a "project path" that is the volume where the tool is
executed in then by setting the working directory. For a tool with the project
path/projectit will then mount/path/to/my/projectto/projectand the
workdir will be/project/build.This split is executed after processing thecwd base.Running a ToolAs described above there are different ways to run a tool, that are described in
the following.Runeda-container-wrapperThe program is called with the parameters as described and the toolname.
Following a--parameters to the tool can be supplied.Example:$eda-container-wrapperverilator----versionCreate wrapperTo create averilatorscript that by default executes version 4.100:$eda-container-wrapper--write-script=/usr/local/bin/verilator--tool-version4.100verilatorand then execute it:$verilator--version
Verilator4.1002020-09-07revv4.100Setting the environment settingECW_TOOL_VERSIONchanges the defualt behavior:$ECW_TOOL_VERSION=4.102verilator--version
Verilator4.1022020-10-15revv4.102It can be useful to create the script in your virtual environment:$eda-container-wrapper--write-script=$VIRTUAL_ENV/verilator--tool-version4.100verilator