| #!/usr/bin/env bash |
| |
| SCRIPT_SRC="$(realpath ${BASH_SOURCE[0]})" |
| SCRIPT_DIR="$(dirname "${SCRIPT_SRC}")" |
| |
| source $SCRIPT_DIR/common.sh |
| |
| if [ -z "$INPUT_DIRECTORY" ]; then |
| if [ ! -z "$1" ]; then |
| INPUT_DIRECTORY=$1 |
| else |
| msg "No \$INPUT_DIRECTORY set or argument given." |
| exit 1 |
| fi |
| fi |
| |
| if [ -z "$OUTPUT_DIRECTORY" ]; then |
| if [ ! -z "$2" ]; then |
| OUTPUT_DIRECTORY=$2 |
| else |
| msg "No \$OUTPUT_DIRECTORY set or argument given." |
| exit 1 |
| fi |
| fi |
| |
| if [ -z "$TEMP_DIR" ]; then |
| if [ ! -z "$3" ]; then |
| TEMP_DIR=$3 |
| else |
| msg "No \$TEMP_DIR set or argument given." |
| exit 1 |
| fi |
| fi |
| |
| if [ ! -z "$4" ]; then |
| LIB=$4 |
| else |
| msg "No \$LIB set or argument given." |
| exit 1 |
| fi |
| |
| TEMP_DIR=$TEMP_DIR/gds_to_svg |
| mkdir -p $TEMP_DIR |
| |
| ulimit -u |
| |
| vncserver -kill :10 || true |
| vncserver :10 -geometry 3840x2160 |
| export DISPLAY=:10 |
| sleep 5 |
| ratpoison & |
| eval `dbus-launch --exit-with-x11 --sh-syntax` |
| echo "D-Bus per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS" |
| |
| # Generate the .svg GDS images |
| msg "Generating SVG previews of GDS for primitives." |
| find $OUTPUT_DIRECTORY/skywater-pdk/libraries/${LIB}* -name \*.gds -print \ |
| | parallel --joblog $TEMP_DIR/joblog.out -j 25% --results $TEMP_DIR/gds_to_svg.csv -v $SCRIPT_DIR/gds_to_svg.py \{\} $INPUT_DIRECTORY/sky130A.tech \ |
| ; RETCODE=$? |
| |
| if [ $RETCODE -ne 0 ]; then |
| msg "Error: Failed to generate SVG previews of GDS for $LIB ($RETCODE failures?)." |
| cat $TEMP_DIR/joblog.out |
| msg "Error: Failed to generate SVG previews of GDS for $LIB ($RETCODE failures?)." |
| exit 1 |
| fi |
| |
| msg "Cleaning up *.gds2svg.sh files." |
| # find -name *.gds2svg.sh -delete |
| find $OUTPUT_DIRECTORY/ -name \*.gds2svg.sh -delete |
| |
| msg "Successfully created SVG previews of GDS for $LIB." |