Select Git revision
Forked from
SoCLabs / Accelerator Project
Source project has a limited visibility.
set_env.sh 2.85 KiB
#-----------------------------------------------------------------------------
# SoC Labs Environment Setup Script
# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
#
# Contributors
#
# David Mapstone (d.a.mapstone@soton.ac.uk)
#
# Copyright 2023, SoC Labs (www.soclabs.org)
#-----------------------------------------------------------------------------
#!/bin/bash
# Get Root Location of Design Structure
if [ -z $SOCLABS_DESIGN_ROOT ]; then
# If $SOCLABS_DESIGN_ROOT hasn't been set yet
SOCLABS_DESIGN_ROOT=`git rev-parse --show-superproject-working-tree`
if [ -z $SOCLABS_DESIGN_ROOT ]; then
# If not in a submodule - at root
SOCLABS_DESIGN_ROOT=`git rev-parse --show-toplevel`
fi
# Source Top-Level Sourceme
source $SOCLABS_DESIGN_ROOT/set_env.sh
else
# Set Environment Variable for this Repository
export SOCLABS_PROJECT_DIR="$(cd -P "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# If this Repo is root of workspace
if [ $SOCLABS_PROJECT_DIR = $SOCLABS_DESIGN_ROOT ]; then
echo "Design Workspace: $SOCLABS_DESIGN_ROOT"
export SOCLABS_DESIGN_ROOT
fi
# Add in location for socsim scripts
export SOCLABS_SOCSIM_PATH=$SOCLABS_PROJECT_DIR/simulate/socsim
# Source dependency environment variable script
source $SOCLABS_PROJECT_DIR/env/dependency_env.sh
# Add Scripts to Path
# "TECH_DIR"
while read line; do
eval PATH="$PATH:\$${line}/flow"
done <<< "$(awk 'BEGIN{for(v in ENVIRON) print v}' | grep TECH_DIR)"
# "FLOW_DIR"
while read line; do
eval PATH="$PATH:\$${line}/tools"
done <<< "$(awk 'BEGIN{for(v in ENVIRON) print v}' | grep FLOW_DIR)"
# "SOCLABS_PROJECT_DIR"
while read line; do
eval PATH="$PATH:\$${line}/flow"
done <<< "$(awk 'BEGIN{for(v in ENVIRON) print v}' | grep SOCLABS_PROJECT_DIR)"
export PATH
fi
# Check cloned repository has been initialised
if [ ! -f $SOCLABS_PROJECT_DIR/.socinit ]; then
echo "Running First Time Repository Initialisation"
# Source environment variables for all submodules
cd $SOCLABS_DESIGN_ROOT
echo $SOCLABS_DESIGN_ROOT
git submodule update --recursive
echo "2"
python3 $SOCLABS_SOCTOOLS_FLOW_DIR/bin/subrepo_checkout.py -b proj-branch -t $SOCLABS_DESIGN_ROOT
echo "3"
#git submodule foreach --recursive git checkout main # TODO: Bug on this line - need to checkout to correct branch
# Read proj-branch file to find out which branch each subrepo needs to be on
# git config --file .gitmodules --get-regexp path | awk '{ print $2 }' | while read line; do cd $SOCLABS_PROJECT_DIR/$line && git checkout `grep $line $SOCLABS_PROJECT_DIR/proj-branch | awk '{ print $2 }'` && git pull; done
echo "4"
git restore $SOCLABS_DESIGN_ROOT/.gitmodules
echo "5"
touch $SOCLABS_PROJECT_DIR/.socinit
echo "6"
fi