Skip to content
Snippets Groups Projects
Select Git revision
  • ef27db97f78fae9b7cd4bf617097774e12243f28
  • main default protected
  • quickstart
3 results

set_env.sh

Blame
  • 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