mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
CONFIG: support compiler query in bin/tools/query-versions
- Query the etc/config.sh/compiler for Gcc/Clang versions
This commit is contained in:
@ -54,6 +54,9 @@ usage() {
|
||||
Usage: ${0##*/} [OPTION]
|
||||
|
||||
options:
|
||||
-compiler Print clang,gcc compiler versions only
|
||||
-clang Print clang compiler versions only
|
||||
-gcc Print gcc compiler versions only
|
||||
-h, -help Print the usage
|
||||
|
||||
Query (ThirdParty) versions based on their etc/config.sh values.
|
||||
@ -66,6 +69,7 @@ USAGE
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Parse options
|
||||
unset optCompiler
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
@ -74,6 +78,14 @@ do
|
||||
usage
|
||||
;;
|
||||
|
||||
(-clang | -gcc)
|
||||
optCompiler="${1#-}"
|
||||
;;
|
||||
|
||||
(-comp*)
|
||||
optCompiler=true
|
||||
;;
|
||||
|
||||
(*)
|
||||
echo "Ignore unknown option/argument: $@" 1>&2
|
||||
break
|
||||
@ -83,8 +95,13 @@ do
|
||||
done
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
configDir="$projectDir/etc/config.sh"
|
||||
scriptsDir="$projectDir/wmake/scripts"
|
||||
|
||||
[ -d "$configDir" ] || {
|
||||
echo "No such directory: $configDir" 1>&2
|
||||
exit 2
|
||||
}
|
||||
[ -d "$scriptsDir" ] || {
|
||||
echo "No such directory: $scriptsDir" 1>&2
|
||||
exit 2
|
||||
@ -93,17 +110,76 @@ scriptsDir="$projectDir/wmake/scripts"
|
||||
# Allow operation without an active OpenFOAM environment
|
||||
export WM_PROJECT_DIR="$projectDir"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Gcc/Clang versions in etc/config.sh/compiler
|
||||
#
|
||||
# parse this type of content
|
||||
# ----
|
||||
# default_clang_version=llvm-3.7.1
|
||||
# default_gcc_version=gcc-4.8.5
|
||||
#
|
||||
# Gcc48*) gcc_version=gcc-4.8.5 ;;
|
||||
# Gcc49*) gcc_version=gcc-4.9.4 ;;
|
||||
# ----
|
||||
|
||||
queryCompiler()
|
||||
{
|
||||
compiler="$1"
|
||||
|
||||
if [ -z "$compiler" ]
|
||||
then
|
||||
compiler='clang\|gcc'
|
||||
fi
|
||||
|
||||
settings="$configDir/compiler"
|
||||
if ! [ -f "$settings" ]
|
||||
then
|
||||
echo "No such file: $settings" 1>&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
sed -n \
|
||||
-e 's/^[ ]*\('"$compiler"'\)\([0-9][0-9]*\)[^=]*=\([^ ;]*\).*$/\1\2 \3/ip' \
|
||||
"$settings"
|
||||
|
||||
sed -n \
|
||||
-e 's/^[ ]*\(default_\)\('"$compiler"'\)_version=\([^ ;]*\).*$/\1\2 \3/ip' \
|
||||
"$settings"
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Examine the "wmake/scripts/have_..." scripts for query_...() functions,
|
||||
# assume they also have a -query option
|
||||
|
||||
for script in grep -l -e '^query_' "$scriptsDir"/have_*
|
||||
do
|
||||
if [ -f "$script" ]
|
||||
then
|
||||
bash "$script" -query
|
||||
fi
|
||||
done
|
||||
queryVersions()
|
||||
{
|
||||
for script in grep -l -e '^query_' "$scriptsDir"/have_*
|
||||
do
|
||||
if [ -f "$script" ]
|
||||
then
|
||||
bash "$script" -query
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# main
|
||||
|
||||
case "$optCompiler" in
|
||||
(true)
|
||||
queryCompiler
|
||||
;;
|
||||
(clang | gcc)
|
||||
queryCompiler "$optCompiler"
|
||||
;;
|
||||
(*)
|
||||
queryVersions
|
||||
;;
|
||||
esac
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user