ENH: robustness, consistency for wmake -show-api, -version

- add to wmakeFunctions to ensure it works even without 'make' being
  installed. Exit immediately after -show-api for consistency with
  -version.

foamEtcFile:
  - drop warnings for some old (pre-v1812) defunct options
    and simply flag as unknown options.
  - handle -version, --version as equivalent to -show-api
This commit is contained in:
Mark Olesen 2021-06-09 10:33:45 +02:00
parent 1afa6f1b46
commit c7bde70ecb
4 changed files with 42 additions and 24 deletions

View File

@ -7,7 +7,7 @@
# \\/ M anipulation | # \\/ M anipulation |
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Copyright (C) 2011-2016 OpenFOAM Foundation # Copyright (C) 2011-2016 OpenFOAM Foundation
# Copyright (C) 2017-2020 OpenCFD Ltd. # Copyright (C) 2017-2021 OpenCFD Ltd.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
@ -74,15 +74,16 @@ options:
-with-api=NUM Specify alternative api value to search with -with-api=NUM Specify alternative api value to search with
-quiet (-q) Suppress all normal output -quiet (-q) Suppress all normal output
-silent (-s) Suppress stderr, except -csh-verbose, -sh-verbose output -silent (-s) Suppress stderr, except -csh-verbose, -sh-verbose output
-version | --version Print version (same as -show-api)
-help Print the usage -help Print the usage
Locate user/group/other file as per '#includeEtc' Locate user/group/other file as per '#includeEtc'
Do not group single character options. Do not group single character options.
Equivalent options: Equivalent options:
| -mode=MODE | -mode MODE | -m MODE | -mode=MODE | -mode MODE | -m MODE
| -prefix=DIR | -prefix DIR | -p DIR [obsolete 1812] | -prefix=DIR [obsolete 1812]
| -version=VER | -version VER | -v VER [obsolete 1812] | -version=VER [obsolete 1812]
Exit status Exit status
0 when the file is found. Print resolved path to stdout. 0 when the file is found. Print resolved path to stdout.
@ -149,7 +150,7 @@ do
-h | -help*) -h | -help*)
printHelp printHelp
;; ;;
-show-api) # Show API and exit -show-api | -version | --version) # Show API and exit
getApiInfo api getApiInfo api
exit $? exit $?
;; ;;
@ -202,25 +203,17 @@ do
-s | -silent) -s | -silent)
optSilent=true optSilent=true
;; ;;
-etc=*) -etc=*)
# FOAM_CONFIG_ETC for finding files. Empty unsets it (later) # FOAM_CONFIG_ETC for finding files. Empty unsets it (later)
export FOAM_CONFIG_ETC="${1#*=}" export FOAM_CONFIG_ETC="${1#*=}"
;; ;;
-prefix=* | -version=*)
echo "ignored defunct option '${1%%=*}'" 1>&2
;;
-p | -prefix | -v | -version)
# Ignored, but still need to check/discard its argument
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
echo "ignored defunct option '$1'" 1>&2
shift
;;
--) --)
shift shift
break break
;; ;;
-prefix=* | -version=*)
echo "ignored defunct option '${1%%=*}'" 1>&2
;;
-*) -*)
die "unknown option: '$1'" die "unknown option: '$1'"
;; ;;

View File

@ -5,7 +5,7 @@
# \\ / A nd | www.openfoam.com # \\ / A nd | www.openfoam.com
# \\/ M anipulation | # \\/ M anipulation |
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Copyright (C) 2019-2020 OpenCFD Ltd. # Copyright (C) 2019-2021 OpenCFD Ltd.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
@ -55,6 +55,7 @@ COMPILE_CXX := $(strip $(CC) $(c++FLAGS))
# Display information # Display information
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Extract WM_VERSION = OPENFOAM=<digits>
.PHONY: api .PHONY: api
api: api:
@echo "$(lastword $(subst =, ,$(WM_VERSION)))" @echo "$(lastword $(subst =, ,$(WM_VERSION)))"

View File

@ -55,6 +55,28 @@ checkEnv()
} }
# (api) from WM_DIR/rules/General/general
# - extract WM_VERSION = OPENFOAM=<digits>
getApiOpenFOAM()
{
local rulesFile="$WM_DIR/rules/General/general"
local value
if [ -n "$WM_DIR" ] && [ -f "$rulesFile" ]
then
value="$(sed -ne 's@^ *WM_VERSION *= *OPENFOAM=\([0-9][0-9]*\).*@\1@p' "$rulesFile" 2>/dev/null)"
fi
if [ -n "$value" ]
then
echo "$value"
else
echo "Could not extract OpenFOAM API value" 1>&2
return 1
fi
}
# Set FOAM_MODULE_PREFIX according to # Set FOAM_MODULE_PREFIX according to
# - absolute/relative path # - absolute/relative path
# - predefined type (u,user | g,group | o,openfoam) # - predefined type (u,user | g,group | o,openfoam)

View File

@ -7,7 +7,7 @@
# \\/ M anipulation | # \\/ M anipulation |
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Copyright (C) 2011-2016 OpenFOAM Foundation # Copyright (C) 2011-2016 OpenFOAM Foundation
# Copyright (C) 2017-2020 OpenCFD Ltd. # Copyright (C) 2017-2021 OpenCFD Ltd.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# License # License
# This file is part of OpenFOAM. # This file is part of OpenFOAM.
@ -183,7 +183,8 @@ die()
make="make" make="make"
# Print compiler/system information (serial only) # Print compiler/system information (serial only)
printInfo() { printInfo()
{
if [ -f "$WM_DIR"/makefiles/info ] if [ -f "$WM_DIR"/makefiles/info ]
then then
make --no-print-directory -f "$WM_DIR"/makefiles/info "$@" make --no-print-directory -f "$WM_DIR"/makefiles/info "$@"
@ -193,6 +194,7 @@ printInfo() {
fi fi
} }
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Set nCores to the number of cores on the machine # Set nCores to the number of cores on the machine
@ -265,7 +267,7 @@ do
setModulePrefix "${1#*=}" setModulePrefix "${1#*=}"
;; ;;
-show-api | -show-ext-so | \ -show-ext-so | \
-show-compile-c | -show-c | -show-cflags | -show-cflags-arch | \ -show-compile-c | -show-c | -show-cflags | -show-cflags-arch | \
-show-compile-cxx | -show-cxx | -show-cxxflags | -show-cxxflags-arch | \ -show-compile-cxx | -show-cxx | -show-cxxflags | -show-cxxflags-arch | \
-show-mpi-compile | -show-mpi-link ) -show-mpi-compile | -show-mpi-link )
@ -323,10 +325,10 @@ do
optUpdate=true optUpdate=true
: "${optAll:=all}" # implies 'all', unless previously set : "${optAll:=all}" # implies 'all', unless previously set
;; ;;
-version | --version)
printInfo api -show-api | -version | --version)
optShow=true getApiOpenFOAM # From wmakeFunctions
break; exit "$?"
;; ;;
-*) -*)
die "unknown option: '$1'" die "unknown option: '$1'"