| #!/usr/bin/env bash |
| |
| INSTALL_DIR="$(pwd)/install" |
| mkdir -p $INSTALL_DIR |
| |
| export CMAKE_FLAGS="-GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DINSTALL_FAMILIES=xc7" |
| source $(dirname "$0")/setup-and-activate.sh |
| |
| heading "Installing gsutil" |
| ( |
| apt -qqy update && apt -qqy install curl |
| echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list |
| curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - |
| apt -qqy update && apt -qqy install google-cloud-cli |
| ) |
| echo "----------------------------------------" |
| |
| heading "Set environment variables for F4PGA CLI utils" |
| { |
| export FPGA_FAM=xc7 |
| export F4PGA_INSTALL_DIR="placeholder" |
| export F4PGA_ENV_BIN="$(cd $(dirname "$0"); pwd)/../../env/conda/envs/symbiflow_arch_def_base/bin" |
| # TODO: We should place the content in subdir F4PGA_FAM, to use the default in f4pga instead of overriding F4PGA_ENV_SHARE here. |
| export F4PGA_ENV_SHARE="$(cd $(dirname "$0"); pwd)/../../install/share/symbiflow" |
| } |
| |
| echo "----------------------------------------" |
| |
| pushd build |
| make_target install "Running install tests (make install)" |
| popd |
| |
| cp environment.yml install/ |
| |
| echo "----------------------------------------" |
| |
| heading "Running installed toolchain tests" |
| ( |
| pushd build |
| export VPR_NUM_WORKERS=${MAX_CORES} |
| export CTEST_OUTPUT_ON_FAILURE=1 |
| ctest -R binary_toolchain_test_xc7* -j${MAX_CORES} |
| popd |
| ) |
| echo "----------------------------------------" |
| |
| heading "Compressing install dir (creating packages)" |
| ( |
| rm -rf build |
| |
| # Remove symbolic links and copy content of the linked files |
| for file in $(find install -type l) |
| do cp --remove-destination $(readlink $file) $file |
| done |
| |
| du -ah install |
| export GIT_HASH=$(git rev-parse --short HEAD) |
| tar -I "pixz" -cvf symbiflow-arch-defs-install-${GIT_HASH}.tar.xz -C install share/symbiflow/techmaps share/symbiflow/scripts environment.yml |
| tar -I "pixz" -cvf symbiflow-arch-defs-benchmarks-${GIT_HASH}.tar.xz -C install benchmarks |
| for device in $(ls install/share/symbiflow/arch) |
| do |
| tar -I "pixz" -cvf symbiflow-arch-defs-$device-${GIT_HASH}.tar.xz -C install share/symbiflow/arch/$device |
| done |
| rm -rf install |
| ) |
| echo "----------------------------------------" |