mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
CONFIG: provide separate default settings for clang/gcc (fixes #1566)
- the foamConfigurePaths script is quite simplistic and aggressive in what it changes. This was particularly evident when using it to change gcc/clang versions. Restructured the corresponding compiler settings to define default versions (eg, "default_gcc_version") that limits the scope of changes performed by foamConfigurePaths and makes it easier to understand if changing manually.
This commit is contained in:
@ -7,11 +7,10 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2016-2019 OpenCFD Ltd.
|
||||
# Copyright (C) 2016-2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# Script
|
||||
# foamConfigurePaths
|
||||
@ -39,8 +38,8 @@ Basic
|
||||
Compiler
|
||||
-system NAME specify 'system' compiler to use (eg, Gcc, Icc,...)
|
||||
-third NAME specify 'ThirdParty' compiler to use (eg, Clang40,...)
|
||||
-gcc VER specify 'gcc_version' for ThirdParty Gcc
|
||||
-clang VER specify 'clang_version' for ThirdParty Clang
|
||||
-gcc VER specify 'default_gcc_version' for ThirdParty Gcc
|
||||
-clang VER specify 'default_clang_version' for ThirdParty Clang
|
||||
gmp-VERSION for ThirdParty gcc (gmp-system for system library)
|
||||
mpfr-VERSION for ThirdParty gcc (mpfr-system for system library)
|
||||
mpc-VERSION for ThirdParty gcc (mpc-system for system library)
|
||||
@ -344,19 +343,19 @@ do
|
||||
## Compiler ##
|
||||
|
||||
-clang)
|
||||
# Replace clang_version=...
|
||||
# Replace default_clang_version=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/compiler clang_version "$optionValue"
|
||||
replace etc/config.csh/compiler clang_version "$optionValue"
|
||||
replace etc/config.sh/compiler default_clang_version "$optionValue"
|
||||
replace etc/config.csh/compiler default_clang_version "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
|
||||
-gcc)
|
||||
# Replace gcc_version=...
|
||||
# Replace default_gcc_version=...
|
||||
optionValue=$(getOptionValue "$@")
|
||||
replace etc/config.sh/compiler gcc_version "$optionValue"
|
||||
replace etc/config.csh/compiler gcc_version "$optionValue"
|
||||
replace etc/config.sh/compiler default_gcc_version "$optionValue"
|
||||
replace etc/config.csh/compiler default_gcc_version "$optionValue"
|
||||
adjusted=true
|
||||
shift
|
||||
;;
|
||||
@ -389,22 +388,22 @@ do
|
||||
|
||||
gmp-[4-9]* | gmp-system)
|
||||
# gcc-related package
|
||||
replace etc/config.sh/compiler gmp_version "$1"
|
||||
replace etc/config.csh/compiler gmp_version "$1"
|
||||
replace etc/config.sh/compiler default_gmp_version "$1"
|
||||
replace etc/config.csh/compiler default_gmp_version "$1"
|
||||
adjusted=true
|
||||
;;
|
||||
|
||||
mpfr-[2-9]* | mpfr-system)
|
||||
# gcc-related package
|
||||
replace etc/config.sh/compiler mpfr_version "$1"
|
||||
replace etc/config.csh/compiler mpfr_version "$1"
|
||||
replace etc/config.sh/compiler default_mpfr_version "$1"
|
||||
replace etc/config.csh/compiler default_mpfr_version "$1"
|
||||
adjusted=true
|
||||
;;
|
||||
|
||||
mpc-[0-9]* | mpc-system)
|
||||
# gcc-related package
|
||||
replace etc/config.sh/compiler mpc_version "$1"
|
||||
replace etc/config.csh/compiler mpc_version "$1"
|
||||
replace etc/config.sh/compiler default_mpc_version "$1"
|
||||
replace etc/config.csh/compiler default_mpc_version "$1"
|
||||
adjusted=true
|
||||
;;
|
||||
|
||||
|
||||
@ -6,11 +6,10 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
# Copyright (C) 2016-2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# etc/config.csh/compiler
|
||||
@ -24,14 +23,19 @@
|
||||
|
||||
switch ("$WM_COMPILER_TYPE")
|
||||
case ThirdParty:
|
||||
# Default versions of GMP, MPFR, MPC - override as necessary
|
||||
# Default versions (CLANG, GCC, GMP, MPFR, MPC) - override as necessary
|
||||
|
||||
set gmp_version=gmp-system
|
||||
set mpfr_version=mpfr-system
|
||||
set mpc_version=mpc-system
|
||||
set default_clang_version=llvm-3.7.1
|
||||
set default_gcc_version=gcc-4.8.5
|
||||
|
||||
set default_gmp_version=gmp-system
|
||||
set default_mpfr_version=mpfr-system
|
||||
set default_mpc_version=mpc-system
|
||||
|
||||
switch ("$WM_COMPILER")
|
||||
case Gcc:
|
||||
set gcc_version="$default_gcc_version"
|
||||
breaksw
|
||||
case Gcc48*:
|
||||
set gcc_version=gcc-4.8.5
|
||||
breaksw
|
||||
@ -95,7 +99,10 @@ case ThirdParty:
|
||||
case Gcc92*:
|
||||
set gcc_version=gcc-9.2.0
|
||||
breaksw
|
||||
|
||||
case Clang:
|
||||
set clang_version="$default_clang_version"
|
||||
breaksw
|
||||
case Clang37*:
|
||||
set clang_version=llvm-3.7.1
|
||||
breaksw
|
||||
@ -123,6 +130,7 @@ case ThirdParty:
|
||||
case Clang90*:
|
||||
set clang_version=llvm-9.0.0
|
||||
breaksw
|
||||
|
||||
default:
|
||||
/bin/cat << UNKNOWN_COMPILER
|
||||
===============================================================================
|
||||
@ -140,4 +148,7 @@ UNKNOWN_COMPILER
|
||||
breaksw
|
||||
endsw
|
||||
|
||||
unset default_gcc_version default_clang_version
|
||||
unset default_gmp_version default_mpfr_version default_mpc_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -9,15 +9,17 @@
|
||||
# Copyright (C) 2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.csh/example/compiler
|
||||
# - sourced by OpenFOAM-*/etc/config.csh/settings
|
||||
#
|
||||
# Description
|
||||
# Example of fine tuning ThirdParty compiler settings for OpenFOAM
|
||||
# Older example of fine tuning compiler settings for OpenFOAM
|
||||
#
|
||||
# The preferred mechanism is now with a "compiler-$WM_COMPILER" file
|
||||
# in one of the etc/ directories.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -26,7 +28,7 @@ eval `$WM_PROJECT_DIR/bin/foamEtcFile -csh -config -mode=o compiler`
|
||||
|
||||
# Modify/override compiler settings
|
||||
switch ("$WM_COMPILER")
|
||||
case Gcc70:
|
||||
case Gcc70*:
|
||||
set gcc_version=gcc-7.0.0
|
||||
set gmp_version=gmp-6.1.2
|
||||
set mpfr_version=mpfr-3.1.5
|
||||
|
||||
28
etc/config.csh/example/compiler-Gcc92
Normal file
28
etc/config.csh/example/compiler-Gcc92
Normal file
@ -0,0 +1,28 @@
|
||||
#----------------------------------*-sh-*--------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.csh/example/compiler-Gcc92
|
||||
# - sourced by OpenFOAM-*/etc/config.csh/compiler
|
||||
#
|
||||
# Description
|
||||
# Example of fine tuning compiler settings with a hook
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Modify/override compiler settings
|
||||
set gcc_version=gcc-9.2.0
|
||||
set gmp_version=gmp-6.2.0
|
||||
set mpfr_version=mpfr-4.0.2
|
||||
set mpc_version=mpc-1.1.0
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -6,11 +6,10 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
# Copyright (C) 2016-2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# etc/config.sh/compiler
|
||||
@ -24,102 +23,56 @@
|
||||
|
||||
case "$WM_COMPILER_TYPE" in
|
||||
ThirdParty)
|
||||
# Default versions of GMP, MPFR, MPC - override as necessary
|
||||
gmp_version=gmp-system
|
||||
mpfr_version=mpfr-system
|
||||
mpc_version=mpc-system
|
||||
# Default versions (CLANG, GCC, GMP, MPFR, MPC) - override as necessary
|
||||
|
||||
default_clang_version=llvm-3.7.1
|
||||
default_gcc_version=gcc-4.8.5
|
||||
|
||||
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"
|
||||
|
||||
case "$WM_COMPILER" in
|
||||
Gcc | Gcc48*)
|
||||
gcc_version=gcc-4.8.5
|
||||
;;
|
||||
Gcc49*)
|
||||
gcc_version=gcc-4.9.4
|
||||
;;
|
||||
Gcc51*)
|
||||
gcc_version=gcc-5.1.0
|
||||
;;
|
||||
Gcc52*)
|
||||
gcc_version=gcc-5.2.0
|
||||
;;
|
||||
Gcc53*)
|
||||
gcc_version=gcc-5.3.0
|
||||
;;
|
||||
Gcc54*)
|
||||
gcc_version=gcc-5.4.0
|
||||
;;
|
||||
Gcc55*)
|
||||
gcc_version=gcc-5.5.0
|
||||
;;
|
||||
Gcc61*)
|
||||
gcc_version=gcc-6.1.0
|
||||
;;
|
||||
Gcc62*)
|
||||
gcc_version=gcc-6.2.0
|
||||
;;
|
||||
Gcc63*)
|
||||
gcc_version=gcc-6.3.0
|
||||
;;
|
||||
Gcc64*)
|
||||
gcc_version=gcc-6.4.0
|
||||
;;
|
||||
Gcc65*)
|
||||
gcc_version=gcc-6.5.0
|
||||
;;
|
||||
Gcc71*)
|
||||
gcc_version=gcc-7.1.0
|
||||
;;
|
||||
Gcc72*)
|
||||
gcc_version=gcc-7.2.0
|
||||
;;
|
||||
Gcc73*)
|
||||
gcc_version=gcc-7.3.0
|
||||
;;
|
||||
Gcc74*)
|
||||
gcc_version=gcc-7.4.0
|
||||
;;
|
||||
Gcc81*)
|
||||
gcc_version=gcc-8.1.0
|
||||
;;
|
||||
Gcc82*)
|
||||
gcc_version=gcc-8.2.0
|
||||
;;
|
||||
Gcc83*)
|
||||
gcc_version=gcc-8.3.0
|
||||
;;
|
||||
Gcc91*)
|
||||
gcc_version=gcc-9.1.0
|
||||
;;
|
||||
Gcc92*)
|
||||
gcc_version=gcc-9.2.0
|
||||
;;
|
||||
Clang | Clang37*)
|
||||
clang_version=llvm-3.7.1
|
||||
;;
|
||||
Clang38*)
|
||||
clang_version=llvm-3.8.1
|
||||
;;
|
||||
Clang39*)
|
||||
clang_version=llvm-3.9.1
|
||||
;;
|
||||
Clang40*)
|
||||
clang_version=llvm-4.0.1
|
||||
;;
|
||||
Clang50*)
|
||||
clang_version=llvm-5.0.2
|
||||
;;
|
||||
Clang60*)
|
||||
clang_version=llvm-6.0.1
|
||||
;;
|
||||
Clang70*)
|
||||
clang_version=llvm-7.0.1
|
||||
;;
|
||||
Clang80*)
|
||||
clang_version=llvm-8.0.1
|
||||
;;
|
||||
Clang90*)
|
||||
clang_version=llvm-9.0.0
|
||||
;;
|
||||
Gcc) gcc_version="$default_gcc_version" ;;
|
||||
Gcc48*) gcc_version=gcc-4.8.5 ;;
|
||||
Gcc49*) gcc_version=gcc-4.9.4 ;;
|
||||
Gcc51*) gcc_version=gcc-5.1.0 ;;
|
||||
Gcc52*) gcc_version=gcc-5.2.0 ;;
|
||||
Gcc53*) gcc_version=gcc-5.3.0 ;;
|
||||
Gcc54*) gcc_version=gcc-5.4.0 ;;
|
||||
Gcc55*) gcc_version=gcc-5.5.0 ;;
|
||||
Gcc61*) gcc_version=gcc-6.1.0 ;;
|
||||
Gcc62*) gcc_version=gcc-6.2.0 ;;
|
||||
Gcc63*) gcc_version=gcc-6.3.0 ;;
|
||||
Gcc64*) gcc_version=gcc-6.4.0 ;;
|
||||
Gcc65*) gcc_version=gcc-6.5.0 ;;
|
||||
Gcc71*) gcc_version=gcc-7.1.0 ;;
|
||||
Gcc72*) gcc_version=gcc-7.2.0 ;;
|
||||
Gcc73*) gcc_version=gcc-7.3.0 ;;
|
||||
Gcc74*) gcc_version=gcc-7.4.0 ;;
|
||||
Gcc75*) gcc_version=gcc-7.5.0 ;;
|
||||
Gcc81*) gcc_version=gcc-8.1.0 ;;
|
||||
Gcc82*) gcc_version=gcc-8.2.0 ;;
|
||||
Gcc83*) gcc_version=gcc-8.3.0 ;;
|
||||
Gcc91*) gcc_version=gcc-9.1.0 ;;
|
||||
Gcc92*) gcc_version=gcc-9.2.0 ;;
|
||||
|
||||
Clang) clang_version="$default_clang_version" ;;
|
||||
Clang37*) clang_version=llvm-3.7.1 ;;
|
||||
Clang38*) clang_version=llvm-3.8.1 ;;
|
||||
Clang39*) clang_version=llvm-3.9.1 ;;
|
||||
Clang40*) clang_version=llvm-4.0.1 ;;
|
||||
Clang50*) clang_version=llvm-5.0.2 ;;
|
||||
Clang60*) clang_version=llvm-6.0.1 ;;
|
||||
Clang70*) clang_version=llvm-7.0.1 ;;
|
||||
Clang71*) clang_version=llvm-7.1.0 ;;
|
||||
Clang80*) clang_version=llvm-8.0.1 ;;
|
||||
Clang90*) clang_version=llvm-9.0.0 ;;
|
||||
|
||||
*)
|
||||
/bin/cat << UNKNOWN_COMPILER 1>&2
|
||||
===============================================================================
|
||||
@ -137,4 +90,7 @@ UNKNOWN_COMPILER
|
||||
;;
|
||||
esac
|
||||
|
||||
unset default_gcc_version default_clang_version
|
||||
unset default_gmp_version default_mpfr_version default_mpc_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -9,15 +9,17 @@
|
||||
# Copyright (C) 2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.sh/example/compiler
|
||||
# - sourced by OpenFOAM-*/etc/config.sh/settings
|
||||
#
|
||||
# Description
|
||||
# Example of fine tuning compiler versions and settings for OpenFOAM
|
||||
# Older example of fine tuning compiler settings for OpenFOAM.
|
||||
#
|
||||
# The preferred mechanism is now with a "compiler-$WM_COMPILER" file
|
||||
# in one of the etc/ directories.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -26,18 +28,12 @@ eval $($WM_PROJECT_DIR/bin/foamEtcFile -sh -config -mode=o compiler)
|
||||
|
||||
# Modify/override compiler settings
|
||||
case "$WM_COMPILER" in
|
||||
Gcc70)
|
||||
Gcc70*)
|
||||
gcc_version=gcc-7.0.0
|
||||
gmp_version=gmp-6.1.2
|
||||
mpfr_version=mpfr-3.1.5
|
||||
mpc_version=mpc-1.0.3
|
||||
;;
|
||||
Gcc48u)
|
||||
# Example of using the system GCC 4.8 in Ubuntu 15.10. Keep in mind you
|
||||
# will also need to create the respective directory in "wmake/rules"
|
||||
export CC='gcc-4.8'
|
||||
export CXX='g++-4.8'
|
||||
;;
|
||||
esac
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
28
etc/config.sh/example/compiler-Gcc92
Normal file
28
etc/config.sh/example/compiler-Gcc92
Normal file
@ -0,0 +1,28 @@
|
||||
#----------------------------------*-sh-*--------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | www.openfoam.com
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2020 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
#
|
||||
# File
|
||||
# config.sh/example/compiler-Gcc92
|
||||
# - sourced by OpenFOAM-*/etc/config.sh/compiler
|
||||
#
|
||||
# Description
|
||||
# Example of fine tuning compiler settings with a hook
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Modify/override compiler settings
|
||||
gcc_version=gcc-9.2.0
|
||||
gmp_version=gmp-6.2.0
|
||||
mpfr_version=mpfr-4.0.2
|
||||
mpc_version=mpc-1.1.0
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user