@@ -542,33 +542,7 @@ _source_thisbdm()
542
542
# OpenMP
543
543
export OMP_PROC_BIND=true
544
544
545
- # Select (export) the correct compiler version
546
- GCC_VER=$( gcc --version | grep gcc | awk ' {print $NF}' | cut -d ' .' -f 1-2)
547
-
548
- if (echo " $GCC_VER >= 12" | bc -q > /dev/null) || (echo " $GCC_VER < 8" | bc -q > /dev/null); then
549
-
550
-
551
- if $( command -v gcc-11 > /dev/null) && $( command -v g++-11 > /dev/null) && $( command -v gfortran-11 > /dev/null) ; then
552
-
553
- export CC=gcc-11
554
- export CXX=g++-11
555
- export FC=gfortran-11
556
- export OMPI_CC=gcc-11
557
- export OMPI_CXX=g++-11
558
- export OMPI_FC=gfortran-11
559
-
560
- elif [ -d $BDMSYS /third_party/gcc ]; then
561
-
562
- export CC=$BDMSYS /third_party/gcc/bin/gcc
563
- export CXX=$BDMSYS /third_party/gcc/bin/g++
564
- export FC=$BDMSYS /third_party/gcc/bin/gfortran
565
- export OMPI_CC=$BDMSYS /third_party/gcc/bin/gcc
566
- export OMPI_CXX=$BDMSYS /third_party/gcc/bin/g++
567
- export OMPI_FC=$BDMSYS /third_party/gcc/bin/gfortran
568
-
569
- fi
570
- fi
571
-
545
+
572
546
# ##### Platform-specific Configuration
573
547
# Apple specific
574
548
if [ " $( uname) " = ' Darwin' ]; then
@@ -596,11 +570,73 @@ _source_thisbdm()
596
570
# linux
597
571
PROCVERSION=$( cat /proc/version)
598
572
if echo " $PROCVERSION " | grep -Eiq ' Red Hat' ; then
573
+ . scl_source enable gcc-toolset-10 > /dev/null 2> /dev/null || true
574
+ . scl_source enable devtoolset-10 > /dev/null 2> /dev/null || true
575
+ . scl_source enable gcc-toolset-11 > /dev/null 2> /dev/null || true
576
+ . scl_source enable devtoolset-11 > /dev/null 2> /dev/null || true
599
577
. /etc/profile.d/modules.sh || return 1
600
578
module load mpi || return 1
601
579
fi
602
580
fi
603
581
582
+ # Select (export) the correct compiler version
583
+ GCC_VER=$( gcc --version | grep gcc)
584
+ if [ -n " ${GCC_VER} " ]; then
585
+ read -ra tokens <<< $GCC_VER
586
+ result=()
587
+ current_token=" "
588
+ for token in " ${tokens[@]} " ; do
589
+ if [[ -n $current_token ]]; then
590
+ current_token+=" $token "
591
+ if [[ $current_token == * ' )' ]]; then
592
+ result+=(" $current_token " )
593
+ current_token=" "
594
+ fi
595
+ else
596
+ if [[ $token == ' (' * && $token != * ' )' ]]; then
597
+ current_token=" $token "
598
+ else
599
+ result+=(" $token " )
600
+ fi
601
+ fi
602
+ done
603
+ if [[ -n $current_token ]]; then
604
+ result+=(" $current_token " )
605
+ fi
606
+ GCC_VER=${result[2]}
607
+ GCC_VER=$( echo $GCC_VER | cut -d ' .' -f 1-2)
608
+ fi
609
+
610
+ if [ -z " ${GCC_VER} " ] || [ ` echo " $GCC_VER >= 12" | bc -q` -ne 0 ] || [ ` echo " $GCC_VER < 9" | bc -q` -ne 0 ]; then
611
+
612
+
613
+ if $( command -v gcc-11 > /dev/null) && $( command -v g++-11 > /dev/null) && $( command -v gfortran-11 > /dev/null) ; then
614
+
615
+ export CC=gcc-11
616
+ export CXX=g++-11
617
+ export FC=gfortran-11
618
+ export OMPI_CC=gcc-11
619
+ export OMPI_CXX=g++-11
620
+ export OMPI_FC=gfortran-11
621
+ export QMAKE_CC=gcc-11
622
+ export QMAKE_CXX=g++-11
623
+ export LINK=g++-11
624
+
625
+ elif [ -d $BDMSYS /third_party/gcc ]; then
626
+
627
+ export CC=$BDMSYS /third_party/gcc/bin/gcc
628
+ export CXX=$BDMSYS /third_party/gcc/bin/g++
629
+ export FC=$BDMSYS /third_party/gcc/bin/gfortran
630
+ export OMPI_CC=$BDMSYS /third_party/gcc/bin/gcc
631
+ export OMPI_CXX=$BDMSYS /third_party/gcc/bin/g++
632
+ export OMPI_FC=$BDMSYS /third_party/gcc/bin/gfortran
633
+ export QMAKE_CC=$BDM_PROJECT_DIR_2 /third_party/gcc/bin/gcc
634
+ export QMAKE_CXX=$BDM_PROJECT_DIR_2 /third_party/gcc/bin/g++
635
+ export LINK=$BDM_PROJECT_DIR_2 /third_party/gcc/bin/g++
636
+
637
+ fi
638
+ fi
639
+
604
640
# ######
605
641
606
642
# completions for bash: really primitive (but useful nonetheless)
0 commit comments