mirror of https://github.com/XS-MLVP/picker.git
56 lines
1.3 KiB
Bash
56 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "${SCRIPT_DIR}/common.sh"
|
|
|
|
PICKER_BIN="$(resolve_picker)"
|
|
ROOT_DIR="${ROOT_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"
|
|
TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/picker-export-filelist.XXXXXX")"
|
|
trap 'rm -rf "${TMP_DIR}"' EXIT
|
|
|
|
mkdir -p "${TMP_DIR}/list" "${TMP_DIR}/rtl/inc"
|
|
|
|
cat > "${TMP_DIR}/rtl/inc/inner.svh" <<'EOF'
|
|
`define WIDTH_BASE 4
|
|
EOF
|
|
|
|
cat > "${TMP_DIR}/rtl/inc/outer.svh" <<'EOF'
|
|
`include "inner.svh"
|
|
`define WIDTH (`WIDTH_BASE + 4)
|
|
EOF
|
|
|
|
cat > "${TMP_DIR}/rtl/top.sv" <<'EOF'
|
|
`include "inc/outer.svh"
|
|
module FileListTop(
|
|
input logic [`WIDTH-1:0] a,
|
|
output logic [$clog2(16)-1:0] b
|
|
);
|
|
endmodule
|
|
EOF
|
|
|
|
cat > "${TMP_DIR}/list/design.f" <<'EOF'
|
|
../rtl/top.sv
|
|
EOF
|
|
|
|
OUT_DIR="${TMP_DIR}/out/FileListTop"
|
|
|
|
blue "[export-filelist] Exporting from a filelist with a minimal tool PATH"
|
|
env PATH="/usr/bin:/bin" "${PICKER_BIN}" export \
|
|
--autobuild false \
|
|
--build-threads 3 \
|
|
--sdir "${ROOT_DIR}/template" \
|
|
--sname FileListTop \
|
|
--fs "${TMP_DIR}/list/design.f" \
|
|
--tdir "${OUT_DIR}" \
|
|
--lang python \
|
|
--sim verilator
|
|
|
|
test -d "${OUT_DIR}"
|
|
test -f "${OUT_DIR}/CMakeLists.txt"
|
|
test -d "${OUT_DIR}/python"
|
|
grep -Fxq 'export NPROC := 3' "${OUT_DIR}/Makefile"
|
|
grep -Fq 'NPROC ?=' "${OUT_DIR}/python/Makefile"
|
|
|
|
green "[export-filelist] OK"
|