|
80 | 80 | IS_YOSYS=0 |
81 | 81 | fi |
82 | 82 |
|
| 83 | +# Source the vars file relative to the run-me script itself, so the |
| 84 | +# reproducible works out of the box wherever the tarball is extracted |
| 85 | +# (WORK_HOME is an absolute CI path that does not exist elsewhere). |
83 | 86 | if [ "$IS_YOSYS" -eq 1 ]; then |
84 | 87 | cat > ${RUN_ME_SCRIPT} <<EOF |
85 | 88 | #!/usr/bin/env bash |
86 | | -source ${VARS_BASENAME}.sh |
| 89 | +cd "\$(dirname "\$0")" |
| 90 | +source ./$(basename ${VARS_BASENAME}).sh |
87 | 91 | export PYTHON_EXE=\${PYTHON_EXE:-\$(command -v python3)} |
88 | 92 | yosys ${YOSYS_FLAGS:-} -c \${SCRIPTS_DIR}/${ISSUE_TARGET}.tcl |
89 | 93 | EOF |
90 | 94 | else |
91 | 95 | cat > ${RUN_ME_SCRIPT} <<EOF |
92 | 96 | #!/usr/bin/env bash |
93 | | -source ${VARS_BASENAME}.sh |
| 97 | +cd "\$(dirname "\$0")" |
| 98 | +source ./$(basename ${VARS_BASENAME}).sh |
94 | 99 | if [[ ! -z \${GDB+x} ]]; then |
95 | 100 | gdb --args openroad -no_init -threads ${NUM_CORES:-1} \${SCRIPTS_DIR}/${ISSUE_TARGET}.tcl |
96 | 101 | else |
@@ -122,10 +127,20 @@ else |
122 | 127 | DESIGN_PLATFORM_FILES="$DESIGN_CONFIG $PLATFORM_DIR/config*.mk" |
123 | 128 | fi |
124 | 129 |
|
| 130 | +# Strip the WORK_HOME prefix as well, so files generated outside FLOW_HOME |
| 131 | +# (vars, run-me, logs, ... when WORK_HOME points at a CI workspace) land at |
| 132 | +# the tarball root instead of recreating the absolute path (e.g. tmp/...). |
| 133 | +# Both the literal and the symlink-resolved form may appear in member names. |
| 134 | +WORK_ROOT=$(realpath "${WORK_HOME:-.}") |
| 135 | +WORK_HOME_TRANSFORMS=(--transform="s|^${ISSUE_TARGET}_${ISSUE_TAG}${WORK_ROOT}//*|${ISSUE_TARGET}_${ISSUE_TAG}/|S") |
| 136 | +if [[ "${WORK_HOME:-.}" == /* && "${WORK_HOME%/}" != "${WORK_ROOT}" ]]; then |
| 137 | + WORK_HOME_TRANSFORMS+=(--transform="s|^${ISSUE_TARGET}_${ISSUE_TAG}${WORK_HOME%/}//*|${ISSUE_TARGET}_${ISSUE_TAG}/|S") |
| 138 | +fi |
125 | 139 | tar --use-compress-program=${COMPRESS} \ |
126 | 140 | --ignore-failed-read -chf ${TAR_NAME} \ |
127 | 141 | --transform="s|^|${ISSUE_TARGET}_${ISSUE_TAG}/|S" \ |
128 | 142 | --transform="s|^${ISSUE_TARGET}_${ISSUE_TAG}${FLOW_HOME}/|${ISSUE_TARGET}_${ISSUE_TAG}/|S" \ |
| 143 | + "${WORK_HOME_TRANSFORMS[@]}" \ |
129 | 144 | $DESIGN_PLATFORM_FILES \ |
130 | 145 | $LOG_DIR \ |
131 | 146 | $OBJECTS_DIR \ |
|
0 commit comments