158 lines
5.3 KiB
Bash
158 lines
5.3 KiB
Bash
#----------------------------------*-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-2023 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" ;;
|
|
Gcc121*) gcc_version=gcc-12.1.0 ;;
|
|
Gcc113*) gcc_version=gcc-11.3.0 ;;
|
|
Gcc112*) gcc_version=gcc-11.2.0 ;;
|
|
Gcc111*) gcc_version=gcc-11.1.1 ;;
|
|
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" ;;
|
|
Clang140*) clang_version=llvm-14.0.5 ;;
|
|
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
|
|
|
|
#------------------------------------------------------------------------------
|