blob: 58928c1e88bce4017c99a0225c3a7ff3b2523e3e [file] [log] [blame]
#!/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."