From 530e4688f43e17112f19a4a899451b0643ce129f Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 3 Jun 2026 13:58:04 +0200 Subject: [PATCH] CONFIG: add Allwmake wrappers to simplify OpenFOAM integration (#20) --- Allwclean | 25 +++++++++++++++++++++ Allwmake | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100755 Allwclean create mode 100755 Allwmake diff --git a/Allwclean b/Allwclean new file mode 100755 index 0000000..4fc6225 --- /dev/null +++ b/Allwclean @@ -0,0 +1,25 @@ +#!/bin/sh +cd "${0%/*}" || exit # Run from this directory +. "${WM_PROJECT_DIR:?}"/wmake/scripts/wmakeFunctions # The wmake functions +# ----------------------------------------------------------------------------- + +# Remove library files +# - regular and mpi-specific locations + +echo "Removing pybFoam* from standard locations" + +for libDir in "$FOAM_LIBBIN" "$FOAM_SITE_LIBBIN" "$FOAM_USER_LIBBIN" +do + if [ -d "$libDir" ] + then + for dir in "$libDir" "$libDir/$FOAM_MPI" + do + rm -f "$dir"/pybFoam* + done + fi +done + +# Cleanup generated files - remove entire top-level +removeObjectDir "$PWD" + +#------------------------------------------------------------------------------ diff --git a/Allwmake b/Allwmake new file mode 100755 index 0000000..2cdd278 --- /dev/null +++ b/Allwmake @@ -0,0 +1,66 @@ +#!/bin/sh +cd "${0%/*}" || exit # Run from this directory +export WM_CONTINUE_ON_ERROR=true # Optional unit +. "${WM_PROJECT_DIR:?}"/wmake/scripts/cmakeFunctions # Cmake functions +. "${WM_PROJECT_DIR:?}"/wmake/scripts/AllwmakeParseArguments +#------------------------------------------------------------------------------ +# Copyright (C) 2026 Keysight Technologies +# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. +# +# Note +# Build into FOAM_USER_{APPBIN,LIBBIN} unless otherwise specified with +# -prefix or FOAM_MODULE_{APPBIN,LIBBIN}, CMAKE_INSTALL_PREFIX env varables +# +#------------------------------------------------------------------------------ + +# Default to user location +# - Long form to avoid dash 0.5.8 error (issue #1757) +[ -n "$FOAM_MODULE_PREFIX" ] || FOAM_MODULE_PREFIX="${FOAM_USER_LIBBIN%/*}" +[ -n "$CMAKE_INSTALL_PREFIX" ] || CMAKE_INSTALL_PREFIX="$FOAM_MODULE_PREFIX" +export FOAM_MODULE_PREFIX CMAKE_INSTALL_PREFIX + +cmakeOpts="-DCMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX" + +#------------------------------------------------------------------------------ + +echo "======================================================================" +echo "${PWD##*/} : $PWD" +echo + +depend=none + +if [ -f "$PWD"/.venv/bin/activate ] +then + . "$PWD"/.venv/bin/activate '' + echo "virtual environment : .venv/bin/activate" + if command -v pip >/dev/null + then + echo "updating required infrastructure" + echo + pip install -e '.[dep]' + fi +else + echo "no virtual environment" +fi + +if [ "$targetType" = objects ] +then + depend=ignore +elif [ -n "$depend" ] +then + if command -v cmake >/dev/null + then + echo "pybFoam prefix : $CMAKE_INSTALL_PREFIX" + cmakeVersionedInstall "$depend" "$PWD" $cmakeOpts || { + echo + echo " WARNING: incomplete build of pybFoam" + echo + } + else + echo "==> skip pybFoam (needs cmake)" + fi +fi + +echo "======================================================================" + +#------------------------------------------------------------------------------