#----------------------------------*-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 #------------------------------------------------------------------------------