COMP: additional wmake adjustments

- scripts/wmake.wmake-args partial logic for Allwmake scripts.

- handle '-quiet' as synonym for '-silent'

- Do not specify '-j' option for wrapped cmake creation to avoid
  the warning:
  make[1]: warning: -jN forced in submake: disabling jobserver mode.
This commit is contained in:
Mark Olesen
2020-05-14 11:52:38 +02:00
parent 614db5a1e2
commit 4d9c7ca828
7 changed files with 161 additions and 37 deletions

View File

@ -81,7 +81,7 @@ cmakeVersioned()
mkdir -p "$objectsDir" \
&& ( cd "$objectsDir" && call_cmake "$@" "$sourceDir" && \
make "-j${WM_NCOMPPROCS:-1}" ) \
make ) \
&& storeDependency "$sentinel" "$depend" $@
}
@ -108,7 +108,7 @@ cmakeVersionedInstall()
mkdir -p "$objectsDir" \
&& ( cd "$objectsDir" && call_cmake "$@" "$sourceDir" && \
make "-j${WM_NCOMPPROCS:-1}" install ) \
make install ) \
&& storeDependency "$sentinel" "$depend" $@
}

View File

@ -61,7 +61,7 @@ options:
-curr | -current Use \$WM_OPTIONS ($WM_OPTIONS)
-comp | -compiler Use \$WM_ARCH\$WM_COMPILER* ($WM_ARCH$WM_COMPILER)
-compiler=NAME Use \$WM_ARCH<NAME>* ($WM_ARCH<NAME>*)
-h | -help Print the usage
-help Print the usage
Deletes specified $targetDir object file directories from project top-level:
Project: $WM_PROJECT_DIR

View File

@ -0,0 +1,90 @@
#----------------------------------*-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
# wmake/scripts/wmake.wmake-args
#
# Description
# Reduced argument parser (eg, for scripts using wmake)
# that handles some common parameters
#
# Usage
# # Parse the arguments by sourcing this script
# . ${WM_PROJECT_DIR:?}/wmake/scripts/wmake.wmake-args
#
# Options
# -s | -silent | -quiet
# Exports WM_QUIET=true
#
# -j | -jN | -j N
# Compile using all or specified N cores/hyperthreads
#
#------------------------------------------------------------------------------
# NB: nArgs to track the current processing position to avoid wraparound
# when checking for optional parameters (eg, the -j processing)
nArgs="$#"
for arg in "$@"
do
shift; nArgs="$((nArgs - 1))" # Drop argument
case "$arg" in
# Silent operation
-s | -silent | -quiet)
export WM_QUIET=true
continue # Handled argument
;;
# Parallel compilation (all or specified number of cores)
-j)
export WM_NCOMPPROCS=0
if [ "$nArgs" -gt 0 ]
then
case "$1" in
[0-9]*)
if WM_NCOMPPROCS="$(expr 0 + "$1" 2>/dev/null)"
then
shift; nArgs="$((nArgs - 1))" # Drop argument
fi
;;
esac
fi
if [ "${WM_NCOMPPROCS:=0}" -le 0 ]
then
WM_NCOMPPROCS=$(getconf _NPROCESSORS_ONLN 2>/dev/null) || \
WM_NCOMPPROCS=1
fi
echo "Compiling enabled on $WM_NCOMPPROCS cores" 1>&2
continue # Handled argument
;;
# Parallel compilation (specified number of cores)
-j[0-9]*)
export WM_NCOMPPROCS="${arg#-j}"
if [ "${WM_NCOMPPROCS:=0}" -le 0 ]
then
WM_NCOMPPROCS=$(getconf _NPROCESSORS_ONLN 2>/dev/null) || \
WM_NCOMPPROCS=1
fi
echo "Compiling enabled on $WM_NCOMPPROCS cores" 1>&2
continue # Handled argument
;;
esac
set -- "$@" "$arg" # Reinsert unhandled argument
done
#------------------------------------------------------------------------------