#----------------------------------*-sh-*-------------------------------------- # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | # \\ / A nd | www.openfoam.com # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2011-2016 OpenFOAM Foundation # Copyright (C) 2016-2024 OpenCFD Ltd. #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # File # etc/config.sh/compiler # - sourced by OpenFOAM-*/etc/config.sh/settings # # Description # Setup for custom compiler versions for OpenFOAM # Per-compiler overrides in "compiler-$WM_COMPILER" files # # Note # The default values for gcc/clang are not a recommendation, # but typically correspond to the minimum usable version. # # I_MPI_CC, I_MPI_CXX environment variables may be defined for the # Intel mpicc/mpicxx wrappers # # Caveat # Not all compiler versions listed here are necessarily currently tested, # but can generally be expected to work. # #------------------------------------------------------------------------------ # Initial mpi/compiler associations case "$WM_COMPILER" in Icc*) export I_MPI_CC=icc export I_MPI_CXX=icpc ;; Icx*) export I_MPI_CC=icx export I_MPI_CXX=icpx ;; Gcc*) case "$WM_MPLIB" in INTELMPI*) export I_MPI_CC=gcc export I_MPI_CXX=g++ ;; esac ;; esac #------------------------------------------------------------------------------ case "$WM_COMPILER_TYPE" in ThirdParty) # Default/minimum versions (compiler, GMP, MPFR, MPC) - override as needed default_clang_version=llvm-5.0.2 default_gcc_version=gcc-7.5.0 default_gmp_version=gmp-system default_mpfr_version=mpfr-system default_mpc_version=mpc-system gmp_version="$default_gmp_version" mpfr_version="$default_mpfr_version" mpc_version="$default_mpc_version" # Clear any old values unset gcc_version clang_version case "$WM_COMPILER" in Gcc) gcc_version="$default_gcc_version" ;; Gcc141*) gcc_version=gcc-14.1.0 ;; Gcc133*) gcc_version=gcc-13.3.0 ;; Gcc132*) gcc_version=gcc-13.2.0 ;; Gcc131*) gcc_version=gcc-13.1.0 ;; Gcc123*) gcc_version=gcc-12.3.0 ;; Gcc122*) gcc_version=gcc-12.2.0 ;; Gcc121*) gcc_version=gcc-12.1.0 ;; Gcc114*) gcc_version=gcc-11.4.0 ;; Gcc113*) gcc_version=gcc-11.3.0 ;; Gcc112*) gcc_version=gcc-11.2.0 ;; Gcc111*) gcc_version=gcc-11.1.0 ;; Gcc105*) gcc_version=gcc-10.5.0 ;; Gcc104*) gcc_version=gcc-10.4.0 ;; Gcc103*) gcc_version=gcc-10.3.0 ;; Gcc102*) gcc_version=gcc-10.2.0 ;; Gcc101*) gcc_version=gcc-10.1.0 ;; Gcc95*) gcc_version=gcc-9.5.0 ;; Gcc94*) gcc_version=gcc-9.4.0 ;; Gcc93*) gcc_version=gcc-9.3.0 ;; Gcc92*) gcc_version=gcc-9.2.0 ;; Gcc91*) gcc_version=gcc-9.1.0 ;; Gcc85*) gcc_version=gcc-8.5.0 ;; Gcc84*) gcc_version=gcc-8.4.0 ;; Gcc83*) gcc_version=gcc-8.3.0 ;; Gcc82*) gcc_version=gcc-8.2.0 ;; Gcc81*) gcc_version=gcc-8.1.0 ;; Gcc75*) gcc_version=gcc-7.5.0 ;; # Older : no assurance that they still work for OpenFOAM Gcc74*) gcc_version=gcc-7.4.0 ;; Gcc73*) gcc_version=gcc-7.3.0 ;; Gcc72*) gcc_version=gcc-7.2.0 ;; Gcc71*) gcc_version=gcc-7.1.0 ;; # Older GCC series that receive no further bugfixes Gcc65*) gcc_version=gcc-6.5.0 ;; Gcc64*) gcc_version=gcc-6.4.0 ;; Gcc63*) gcc_version=gcc-6.3.0 ;; Gcc62*) gcc_version=gcc-6.2.0 ;; Gcc61*) gcc_version=gcc-6.1.0 ;; Gcc55*) gcc_version=gcc-5.5.0 ;; #ancient# Gcc54*) gcc_version=gcc-5.4.0 ;; #ancient# Gcc53*) gcc_version=gcc-5.3.0 ;; #ancient# Gcc52*) gcc_version=gcc-5.2.0 ;; #ancient# Gcc51*) gcc_version=gcc-5.1.0 ;; #ancient# Gcc49*) gcc_version=gcc-4.9.4 ;; #ancient# Gcc48*) gcc_version=gcc-4.8.5 ;; Clang) clang_version="$default_clang_version" ;; Clang181*) clang_version=llvm-18.1.6 ;; Clang170*) clang_version=llvm-17.0.6 ;; Clang160*) clang_version=llvm-16.0.6 ;; Clang150*) clang_version=llvm-15.0.7 ;; Clang140*) clang_version=llvm-14.0.6 ;; Clang130*) clang_version=llvm-13.0.1 ;; Clang120*) clang_version=llvm-12.0.1 ;; Clang111*) clang_version=llvm-11.1.0 ;; Clang110*) clang_version=llvm-11.0.1 ;; Clang100*) clang_version=llvm-10.0.1 ;; Clang90*) clang_version=llvm-9.0.1 ;; Clang80*) clang_version=llvm-8.0.1 ;; Clang71*) clang_version=llvm-7.1.0 ;; Clang70*) clang_version=llvm-7.0.1 ;; Clang60*) clang_version=llvm-6.0.1 ;; Clang50*) clang_version=llvm-5.0.2 ;; #ancient# Clang40*) clang_version=llvm-4.0.1 ;; #ancient# Clang39*) clang_version=llvm-3.9.1 ;; #ancient# Clang38*) clang_version=llvm-3.8.1 ;; #ancient# Clang37*) clang_version=llvm-3.7.1 ;; esac _foamEtc -config prefs.compiler ## Optional adjustments _foamEtc -config "compiler-$WM_COMPILER" ## Per-compiler override # Trap errors if [ -z "$gcc_version$clang_version" ] then /bin/cat << UNKNOWN_COMPILER 1>&2 =============================================================================== Warning in $WM_PROJECT_DIR/etc/config.sh/compiler: Unknown ThirdParty compiler type/version - '$WM_COMPILER' Please check your settings =============================================================================== UNKNOWN_COMPILER fi ;; esac #------------------------------------------------------------------------------ unset default_gcc_version default_clang_version unset default_gmp_version default_mpfr_version default_mpc_version #------------------------------------------------------------------------------