From 5ab04f5745ecc04bad6f834de61c8bc7f69d1589 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Mon, 27 Apr 2020 09:45:17 +0200 Subject: [PATCH 1/6] GIT: remove prebuilt pdf file(s) --- .../conversion/kivaToFoam/kiva3v-valves.pdf | Bin 112123 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 applications/utilities/mesh/conversion/kivaToFoam/kiva3v-valves.pdf diff --git a/applications/utilities/mesh/conversion/kivaToFoam/kiva3v-valves.pdf b/applications/utilities/mesh/conversion/kivaToFoam/kiva3v-valves.pdf deleted file mode 100644 index 7a7f8bec5617814fe96f98260594d0489afd2004..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112123 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�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

^m#LC{2bOyc;&~H2>Tq2cXtRjM$Ui< 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 N3^2sRfVr|T{~zWifsg Date: Mon, 27 Apr 2020 16:57:51 +0200 Subject: [PATCH 2/6] CONFIG: no default verbosity for openfoam shell session - an otherwise confusing amount of output that may not be expected --- etc/openfoam | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/etc/openfoam b/etc/openfoam index 6db02bc688..2bb13cbe32 100755 --- a/etc/openfoam +++ b/etc/openfoam @@ -63,7 +63,12 @@ options: Open an interactive bash session with an OpenFOAM environment, or run an OpenFOAM application (with arguments) after first sourcing the OpenFOAM etc/bashrc file from the project directory: -($projectDir) +(${projectDir:-???}) + +For a persistent OpenFOAM environment, the following can be added to your +~/.bashrc file: + + source ${projectDir:-???}/etc/bashrc For more information: www.openfoam.com @@ -91,8 +96,9 @@ getApiInfo() #------------------------------------------------------------------------------- -# No inheritance of FOAM_SETTINGS -unset FOAM_SETTINGS +# - No inheritance of FOAM_SETTINGS +# - No default verbosity (only as command-line option) +unset FOAM_CONFIG_ETC FOAM_SETTINGS FOAM_VERBOSE unset _foamEtcDir _foamSettings _foamScriptCommand unset optTestTut @@ -221,8 +227,6 @@ if [ -n "$_foamEtcDir" ] && [ -d "$_foamEtcDir" ] then # Additional etc directory export FOAM_CONFIG_ETC="$_foamEtcDir" -else - unset FOAM_CONFIG_ETC fi if [ -n "$interactive" ] From aafe674f5f47481a4827f895d70a3a6be39e7e4a Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 29 Apr 2020 21:14:38 +0200 Subject: [PATCH 3/6] ENH: improve cmake/ParaView config handling - improve handling of changes in ParaView/VTK or cmake parameters (#1693) * adjust internals to support recording of an unlimited number of configuration parameters and use file `cmp` instead of trying to check strings ourselves. ENH: new wmake/scripts/wmake.cmake-args handler - additional handling of -prefix=... as CMAKE_INSTALL_PREFIX export. - in some contexts, can use instead of AllwmakeParseArguments --- bin/tools/foamConfigurePaths | 12 ++- doc/Config.md | 1 - etc/config.csh/paraview | 38 +++------ etc/config.sh/cmake | 35 ++++++++ etc/config.sh/paraview | 20 ++--- etc/config.sh/paraview-system | 7 +- wmake/scripts/cmakeFunctions | 139 ++++++++++++++++++++------------ wmake/scripts/have_cmake | 122 ++++++++++++++++++++++++++++ wmake/scripts/paraviewFunctions | 119 +++++++++++++++++++++------ wmake/scripts/wmake.cmake-args | 120 +++++++++++++++++++++++++++ 10 files changed, 489 insertions(+), 124 deletions(-) create mode 100644 etc/config.sh/cmake create mode 100644 wmake/scripts/have_cmake create mode 100644 wmake/scripts/wmake.cmake-args diff --git a/bin/tools/foamConfigurePaths b/bin/tools/foamConfigurePaths index 12ea3d36bc..d8656358a1 100755 --- a/bin/tools/foamConfigurePaths +++ b/bin/tools/foamConfigurePaths @@ -107,6 +107,7 @@ Components specified by absolute path -adios-path DIR Path for 'ADIOS2_ARCH_PATH' (overrides -adios) -boost-path DIR Path for 'BOOST_ARCH_PATH' (overrides -boost) -cgal-path DIR Path for 'CGAL_ARCH_PATH' (overrides -cgal) + -cmake-path DIR Path for 'CMAKE_ARCH_PATH' (overrides -cmake) -fftw-path DIR Path for 'FFTW_ARCH_PATH' (overrides -fftw) -kahip-path DIR Path for 'KAHIP_ARCH_PATH' (overrides -kahip) -metis-path DIR Path for 'METIS_ARCH_PATH' (overrides -metis) @@ -662,8 +663,15 @@ CONFIG_CSH -cmake) # Replace cmake_version=... optionValue=$(getOptionValue "$@") - replaceEtc config.sh/paraview cmake_version "$optionValue" - replaceEtc config.csh/paraview cmake_version "$optionValue" + replaceEtc config.sh/cmake cmake_version "$optionValue" + adjusted=true + shift + ;; + + -cmake-path) + # Replace CMAKE_ARCH_PATH=... + optionValue=$(getOptionValue "$@") + replaceEtc config.sh/cmake CMAKE_ARCH_PATH "$optionValue" adjusted=true shift ;; diff --git a/doc/Config.md b/doc/Config.md index 5cb541b344..7193c922ba 100644 --- a/doc/Config.md +++ b/doc/Config.md @@ -78,7 +78,6 @@ example, ParaView_VERSION=5.6.0 ParaView_QT=qt-system -cmake_version=cmake-system # END OF (NORMAL) USER EDITABLE PART #------------------------------------------------------------------------------ diff --git a/etc/config.csh/paraview b/etc/config.csh/paraview index bc57ed568c..36c5c0939f 100644 --- a/etc/config.csh/paraview +++ b/etc/config.csh/paraview @@ -6,24 +6,22 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2011-2016 OpenFOAM Foundation -# Copyright (C) 2016-2019 OpenCFD Ltd. +# Copyright (C) 2016-2020 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM, licensed under GNU General Public License -# . +# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # File # config.csh/paraview # - sourced by OpenFOAM-*/etc/cshrc or via foamPV alias # # Description -# Setup for PARAVIEW (partially cmake, qt too) +# Setup for PARAVIEW (partially QT too) # # To disable use of the PV_PLUGIN_PATH: # ParaView_VERSION=none # # For system-wide installations: -# cmake_version=cmake-system # ParaView_QT=qt-system # ParaView_VERSION=system [EXPERIMENTAL] # @@ -53,7 +51,6 @@ set ParaView_VERSION=5.6.3 set ParaView_QT=qt-system -set cmake_version=cmake-system # END OF (NORMAL) USER EDITABLE PART #------------------------------------------------------------------------------ @@ -65,14 +62,13 @@ if (! $?WM_COMPILER_LIB_ARCH ) setenv WM_COMPILER_LIB_ARCH # Compiler-specific location for ThirdParty installations set archDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER" -# Clean PATH and LD_LIBRARY_PATH -eval `$WM_PROJECT_DIR/bin/foamCleanPath -csh-env=PATH "$ParaView_DIR $archDir/ParaView- $archDir/qt- $archDir/cmake-"` +# Clean path and library path +eval `$WM_PROJECT_DIR/bin/foamCleanPath -csh-env=PATH "$ParaView_DIR $archDir/ParaView- $archDir/qt-"` eval `$WM_PROJECT_DIR/bin/foamCleanPath -csh-env=LD_LIBRARY_PATH "$ParaView_DIR $archDir/ParaView- $archDir/qt-"` -# Evaluate command-line parameters for ParaView and cmake +# Evaluate command-line parameters for ParaView while ( $#argv > 0 ) switch ($argv[1]) - case cmake*=*: case ParaView*=*: # name=value -> set name=value eval "set $argv[1]" @@ -81,13 +77,6 @@ while ( $#argv > 0 ) shift end -# ThirdParty cmake -set cmake="$archDir/$cmake_version" -if ( -r "$cmake/bin/cmake" ) then - # _foamAddPath not available when foamPV alias is used - setenv PATH "$cmake/bin:${PATH}" -endif - if ($?ParaView_VERSION) then switch ("$ParaView_VERSION") case "": @@ -106,13 +95,12 @@ case "none": case "system": # Obtain major.minor from `paraview --version` - set pv_api=`paraview --version | \ - sed -ne 's/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p'` + set pv_api=`paraview --version | sed -ne 's/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p'` - if ( "${%pv_api}" ) then - setenv PV_PLUGIN_PATH "$FOAM_LIBBIN/paraview-$pv_api" - else + if ("${pv_api}" == "") then unsetenv ParaView_DIR PV_PLUGIN_PATH + else + setenv PV_PLUGIN_PATH "$FOAM_LIBBIN/paraview-$pv_api" endif if ($?FOAM_VERBOSE && $?prompt) then @@ -138,9 +126,8 @@ default: breaksw case [0-9]*: - # Extract API from VERSION - set pv_api=`echo "$ParaView_VERSION" | \ - sed -ne 's/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p'` + # Extract API from VERSION. + set pv_api=`echo "$ParaView_VERSION" | sed -ne 's/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p'` breaksw endsw @@ -214,7 +201,6 @@ endif unsetenv ParaView_VERSION ParaView_QT unset archDir libDir -unset cmake cmake_version unset pv_api pvLibDir pvPython qtDir #------------------------------------------------------------------------------ diff --git a/etc/config.sh/cmake b/etc/config.sh/cmake new file mode 100644 index 0000000000..617ee6dfc9 --- /dev/null +++ b/etc/config.sh/cmake @@ -0,0 +1,35 @@ +#----------------------------------*-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 +# etc/config.sh/cmake +# - possibly sourced during make process only. +# +# Description +# CMAKE location (ThirdParty or otherwise) when not found via the PATH +# Does not affect the PATH, that is left for the caller +# +# For system-wide installations: +# cmake_version=cmake-system +# define CMAKE_ARCH_PATH +# +# Note +# No csh version. This file is only used during make processes. +# +#------------------------------------------------------------------------------ +# USER EDITABLE PART: Changes made here may be lost with the next upgrade + +cmake_version=cmake-system +export CMAKE_ARCH_PATH="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cmake_version" + +# END OF (NORMAL) USER EDITABLE PART +#------------------------------------------------------------------------------ diff --git a/etc/config.sh/paraview b/etc/config.sh/paraview index d850ccf307..265869f960 100644 --- a/etc/config.sh/paraview +++ b/etc/config.sh/paraview @@ -16,7 +16,7 @@ # - sourced by OpenFOAM-*/etc/bashrc or via foamPV alias # # Description -# Setup for PARAVIEW (partially cmake, qt too) +# Setup for PARAVIEW (partially QT too) # # To disable use of the PV_PLUGIN_PATH: # ParaView_VERSION=none @@ -55,7 +55,6 @@ ParaView_VERSION=5.6.3 ParaView_QT=qt-system -cmake_version=cmake-system # END OF (NORMAL) USER EDITABLE PART #------------------------------------------------------------------------------ @@ -64,34 +63,26 @@ pv_api=auto # Either auto or pair of (major.minor) digits # Compiler-specific location for ThirdParty installations archDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER" -# Clean PATH and LD_LIBRARY_PATH +# Clean path and library path eval \ "$($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=PATH \ - $ParaView_DIR $archDir/ParaView- $archDir/qt- $archDir/cmake-)" + $ParaView_DIR $archDir/ParaView- $archDir/qt-)" eval \ "$($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=LD_LIBRARY_PATH \ $ParaView_DIR $archDir/ParaView- $archDir/qt-)" -# Evaluate command-line parameters for ParaView and cmake +# Evaluate command-line parameters for ParaView for i do case "$i" in - (cmake*=* | ParaView*=*) + (ParaView*=*) # name=value -> export name=value eval "export $i" ;; esac done -# ThirdParty cmake -cmake="$archDir/$cmake_version" -if [ -r "$cmake/bin/cmake" ] -then - # _foamAddPath not available when foamPV function is used - PATH="$cmake/bin:$PATH" -fi - case "$ParaView_VERSION" in ('') # empty - do nothing @@ -206,7 +197,6 @@ then fi unset archDir libDir -unset cmake cmake_version unset pv_api pvLibDir pvPython qtDir #------------------------------------------------------------------------------ diff --git a/etc/config.sh/paraview-system b/etc/config.sh/paraview-system index c972de3df2..1bdec0f30d 100644 --- a/etc/config.sh/paraview-system +++ b/etc/config.sh/paraview-system @@ -5,11 +5,10 @@ # \\ / A nd | www.openfoam.com # \\/ M anipulation | #------------------------------------------------------------------------------ -# Copyright (C) 2019 OpenCFD Ltd. +# Copyright (C) 2019-2020 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM, licensed under GNU General Public License -# . +# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # File # etc/config.sh/paraview-system @@ -26,7 +25,7 @@ # Compiler-specific location for ThirdParty installations archDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER" -# Clean PATH and LD_LIBRARY_PATH +# Clean path and library path eval \ "$($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=PATH \ $ParaView_DIR $archDir/ParaView-)" diff --git a/wmake/scripts/cmakeFunctions b/wmake/scripts/cmakeFunctions index bceed70f9e..6882e12589 100644 --- a/wmake/scripts/cmakeFunctions +++ b/wmake/scripts/cmakeFunctions @@ -16,7 +16,16 @@ # Description # Helper functions for CMake # +# Environment +# Consider CMAKE_INSTALL_PREFIX as a reserved name, although it is not +# set/unset here. +# +# Files +# Uses etc/config.sh/cmake (if it exists) for the +# CMAKE_ARCH_PATH that may specify a possible cmake/bin directory. +# #------------------------------------------------------------------------------ +. ${WM_PROJECT_DIR:?}/wmake/scripts/have_cmake . ${WM_PROJECT_DIR:?}/wmake/scripts/wmakeFunctions # Require wmake functions # Export compiler information for cmake @@ -29,64 +38,92 @@ export CXXFLAGS="$(wmake -show-cxxflags)" #------------------------------------------------------------------------------ # -# Check sentinel file(s) to handle paraview / vtk version changes +# Save build/configure parameter information (dependency) into sentinel file # -sameDependency() -{ - local depend="$1" - local sourceDir="$2" - local objectsDir sentinel prev - - # Where generated files are stored - objectsDir=$(findObjectDir "$sourceDir") || exit 1 # Fatal - sentinel="$objectsDir/ThirdParty" - - echo "$sentinel" - - if read -r prev 2>/dev/null < $sentinel - then - if [ "$prev" = "$depend" ] - then - return 0 - else - echo "${depend%=*} changed between builds" 1>&2 - return 1 - fi - elif [ -f "$objectsDir/CMakeCache.txt" ] - then - echo "previous build was incomplete" 1>&2 - return 1 - else - return 0 - fi -} - -# -# Save dependency information into sentinel file +# 1 - sentinelFile +# 2... build/configure parameters # storeDependency() { - local depend="$1" - local sentinel="$2" + local sentinel="$1" + local depend + shift if [ -n "$sentinel" ] then mkdir -p "$(dirname "$sentinel")" - echo "$depend" >| "$sentinel" + + echo '# Build/configure parameters' >| "$sentinel" + + for depend + do + echo "-- $depend" + done >> "$sentinel" fi return 0 } -# CMake with output suppressed according to WM_QUIET -_cmake() +# +# Check sentinel file(s) to handle changed build/configure parameters +# such as paraview / vtk version changes +# +# 1 - sourceDir +# 2... build/configure parameters +# +sameDependency() { - echo "cmake..." - if [ -n "$WM_QUIET" ] + local sourceDir="$1" + shift + local depend objectsDir + local compare=0 + + # Where generated files are stored + objectsDir=$(findObjectDir "$sourceDir") || exit 1 # Fatal + local sentinel="$objectsDir/ThirdParty" + + if [ -f "$sentinel" ] then - cmake -DCMAKE_RULE_MESSAGES=OFF $@ >/dev/null + # Create an .update version + storeDependency "${sentinel}.update" $@ + cmp "${sentinel}" "${sentinel}.update" >/dev/null 2>&1 + compare=$? + + if [ "$compare" -ne 0 ] + then + echo "build/configure parameters changed between builds" 1>&2 + fi + else - cmake $@ + # No sentinel file: First time, or failed compilation? + if [ -f "$objectsDir/CMakeCache.txt" ] + then + echo "previous build was incomplete" 1>&2 + compare=1 + fi + fi + + echo "$sentinel" + return "$compare" +} + + +# Resolve the location of cmake (if needed) and call with output +# suppressed according to WM_QUIET +call_cmake() +{ + if have_cmake + then + if [ -n "$WM_QUIET" ] + then + echo "cmake..." + "$CMAKE_EXE" -DCMAKE_RULE_MESSAGES=OFF $@ >/dev/null + else + echo "cmake $@" + "$CMAKE_EXE" $@ + fi + else + return 1 fi } @@ -109,12 +146,13 @@ cmakeVersioned() objectsDir=$(findObjectDir "$sourceDir") || exit 1 # Fatal # Version changed - sentinel=$(sameDependency "$depend" "$sourceDir") || \ + sentinel=$(sameDependency "$sourceDir" "$depend" $@) || \ rm -rf "$objectsDir" 2>/dev/null mkdir -p "$objectsDir" \ - && (cd "$objectsDir" && _cmake "$@" "$sourceDir" && make) \ - && storeDependency "$depend" "$sentinel" + && ( cd "$objectsDir" && call_cmake "$@" "$sourceDir" && \ + make "-j${WM_NCOMPPROCS:-1}" ) \ + && storeDependency "$sentinel" "$depend" $@ } @@ -135,12 +173,13 @@ cmakeVersionedInstall() objectsDir=$(findObjectDir "$sourceDir") || exit 1 # Fatal # Version changed - sentinel=$(sameDependency "$depend" "$sourceDir") || \ + sentinel=$(sameDependency "$sourceDir" "$depend" $@) || \ rm -rf "$objectsDir" 2>/dev/null mkdir -p "$objectsDir" \ - && (cd "$objectsDir" && _cmake "$@" "$sourceDir" && make install) \ - && storeDependency "$depend" "$sentinel" + && ( cd "$objectsDir" && call_cmake "$@" "$sourceDir" && \ + make "-j${WM_NCOMPPROCS:-1}" install ) \ + && storeDependency "$sentinel" "$depend" $@ } @@ -162,12 +201,12 @@ wmakeVersioned() objectsDir=$(findObjectDir "$sourceDir") || exit 1 # Fatal # Version changed - sentinel=$(sameDependency "$depend" "$sourceDir") || \ + sentinel=$(sameDependency "$sourceDir" "$depend" $@) || \ rm -rf "$objectsDir" 2>/dev/null mkdir -p "$objectsDir" \ && wmake "$@" \ - && storeDependency "$depend" "$sentinel" + && storeDependency "$sentinel" "$depend" $@ } diff --git a/wmake/scripts/have_cmake b/wmake/scripts/have_cmake new file mode 100644 index 0000000000..94e0531f1e --- /dev/null +++ b/wmake/scripts/have_cmake @@ -0,0 +1,122 @@ +#----------------------------------*-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. +# +# Script +# have_cmake +# +# Description +# Locate CMAKE executable +# +# Files +# Uses etc/config.sh/cmake (if it exists) for the +# CMAKE_ARCH_PATH that may specify a possible cmake/bin directory. +# +# Functions provided +# have_cmake, no_cmake, echo_cmake +# +# Variables set on success +# HAVE_CMAKE +# CMAKE_EXE +# +# When properly resolved, CMAKE_EXE will be an absolute path to the +# cmake executable. On failure it will point to 'false' +# +#------------------------------------------------------------------------------ + +# Reset variables +no_cmake() +{ + unset HAVE_CMAKE CMAKE_EXE +} + + +# Report +echo_cmake() +{ + echo cmake="${CMAKE_EXE:-false}" + echo version="$("${CMAKE_EXE:-false}" --version | sed -ne '1s/^.*version *//p')" +} + + +# +# Try to locate cmake according to values specified in +# or just use what is found on the path. +# +# On success: return the resolved value as output. +# On failure: set executable as "false" and return with 1 +# +have_cmake() +{ + # Treat previous queries as "sticky" + if [ -n "$CMAKE_EXE" ] + then + test "$CMAKE_EXE" != "false" + return $? + fi + + local config="config.sh/cmake" + unset CMAKE_ARCH_PATH + local settings candidate foundExe + + if settings="$("$WM_PROJECT_DIR"/bin/foamEtcFile "$config" 2>/dev/null)" + then + . "$settings" + + if [ -d "$CMAKE_ARCH_PATH" ] + then + candidate="$CMAKE_ARCH_PATH"/bin/cmake + if [ -f "$candidate" ] && [ -x "$candidate" ] + then + foundExe="$candidate" + fi + fi + fi + + if [ -z "$foundExe" ] + then + # Default: resolve from PATH + if candidate="$(command -v cmake 2>/dev/null)" + then + foundExe="$candidate" + fi + fi + + if [ -n "$foundExe" ] + then + # OK + export HAVE_CMAKE=true + export CMAKE_EXE="$foundExe" + else + # Failure + export CMAKE_EXE="false" # Avoid repeated calls? + return 2 + fi +} + + +# Reset variables +no_cmake + + +# Test/query +case "$1" in +-test) + have_cmake + echo_cmake + ;; +-query) + ## query_cmake + ;; +esac + + +#------------------------------------------------------------------------------ diff --git a/wmake/scripts/paraviewFunctions b/wmake/scripts/paraviewFunctions index 5a4ea1dec7..dc80705975 100644 --- a/wmake/scripts/paraviewFunctions +++ b/wmake/scripts/paraviewFunctions @@ -18,8 +18,8 @@ # Setup of variables for creating ParaView plugins # # Requires -# ParaView_DIR (unless system) -# PV_PLUGIN_PATH +# ParaView_DIR (unless system) +# PV_PLUGIN_PATH (or rely on automatic mechanism) # # Provides Functions # get_pvplugin_api, have_pvplugin_support, no_paraview, echo_paraview @@ -85,22 +85,59 @@ cmakePvInstall() cmakeVersionedInstall "ParaView_DIR=$ParaView_DIR" "$@" } -# + # Build library - use sentinel file(s) to handle paraview version changes +# Some difficulty handling different installation options as well +# as wmake options, so only handle build/configure information for now # +# 1 - libName +# 2... build/configure information +# +# Similar to wmakeVersioned wmakeLibPv() { local depend="ParaView_DIR=$ParaView_DIR" - local sentinel libName + local libName="$1" + shift 1 + local sentinel - for libName - do - sentinel=$(sameDependency "$depend" "$libName") || \ - wclean $libName + sentinel=$(sameDependency "$libName" "$depend" $@) || \ + wclean "$libName" - wmake $targetType $libName \ - && storeDependency "$depend" "$sentinel" - done + wmake $targetType "$libName" \ + && storeDependency "$sentinel" "$depend" $@ +} + +# Get ParaView API from given path. +# Eg, "/path/paraview-dir/paraview-5.6" -> "5.6" +# +# Or the output from `paraview --version` +# Eg, "paraview version 5.6.3" -> "5.6" +# +# 1 - the input path ending with paraview-x.y, or paraview --version information +# +# On success, return 0 and echo value +# +get_pvapi() +{ + local pv_api + + # Extract paraview major+minor version from the directory name + # From /path/paraview-5.6 -> 5.6 + pv_api=$(echo "${1:-none}" | \ + sed -ne 's@^.*/@@;s@^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$@\1@p') + + if [ -z "$pv_api" ] + then + # Extract paraview major+minor version from "paraview --version" information + pv_api=$(echo "${1:-none}" | \ + sed -ne 's@^.*version *\([0-9][0-9]*\.[0-9][0-9]*\).*$@\1@p') + fi + + [ -n "$pv_api" ] || return 1 + + # OK + echo "$pv_api" } @@ -122,10 +159,9 @@ get_pvplugin_api() targetDir="${PV_PLUGIN_PATH##;}" targetDir="${targetDir%%;*}" - # Extract paraview major+minor version from the directory name + # Extract paraview major+minor version from directory name # From /path/paraview-5.6 -> 5.6 - pv_api=$(echo "$targetDir" | \ - sed -ne 's@^.*/@@;s/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/p') + pv_api=$(get_pvapi "$targetDir") [ -n "$pv_api" ] || return 1 @@ -147,7 +183,7 @@ get_pvplugin_api() have_pvplugin_support() { local warn="==> skip paraview-plugin" - local settings pv_api installDir binDir includeDir targetDir + local settings pv_api pv_executable installDir binDir includeDir targetDir # Trivial check command -v cmake >/dev/null || { @@ -162,12 +198,13 @@ have_pvplugin_support() fi unset FOAM_PV_PLUGIN_LIBBIN PARAVIEW_API - if [ -z "$targetDir" ] || [ -z "$pv_api" ] - then - echo "$warn (could not determine target or major.minor version)" - echo " PV_PLUGIN_PATH=${PV_PLUGIN_PATH:-???}" - return 1 - fi + # Probably not needed... + # if [ -z "$targetDir" ] || [ -z "$pv_api" ] + # then + # echo "$warn (could not determine target or major.minor version)" + # echo " PV_PLUGIN_PATH=${PV_PLUGIN_PATH:-???}" + # return 1 + # fi # Include/library names local header="pqServerManagerModel.h" @@ -176,6 +213,21 @@ have_pvplugin_support() then # ParaView_DIR defined. Look for include/ + # Unless already known, get API value from include directory name + if [ -z "$pv_api" ] + then + for settings in $(find "$ParaView_DIR"/include -maxdepth 1 -name 'paraview-*' -type d) + do + pv_api=$(get_pvapi "$settings") && break + done + + if [ -z "$pv_api" ] + then + echo "$warn (could not determine paraview major.minor version)" + return 1 + fi + fi + header=$(findFirstFile \ "$ParaView_DIR/include/paraview-$pv_api/$header" \ "$ParaView_DIR/include/paraview/$header" @@ -184,11 +236,14 @@ have_pvplugin_support() else # No ParaView_DIR defined # - use location of 'paraview' to guess an equivalent ParaView_DIR - # - assume we can use paraview-config + # - assume paraview-config works, but might be removed too! - binDir="$(command -v paraview 2>/dev/null)" - binDir="${binDir%/*}" # Eg, /usr/bin/paraview -> /usr/bin - installDir="${binDir%/*}" # Eg, /usr/bin -> /usr + pv_executable="$(command -v paraview 2>/dev/null)" || { + echo "$warn (no paraview found?)" + return 2 + } + binDir="${pv_executable%/*}" # Eg, /usr/bin/paraview -> /usr/bin + installDir="${binDir%/*}" # Eg, /usr/bin -> /usr case "$installDir" in (/*) # An absolute path @@ -196,6 +251,17 @@ have_pvplugin_support() ;; esac + # Unless already known, get API value from `paraview --version` information + if [ -z "$pv_api" ] + then + pv_api=$(get_pvapi "$("$pv_executable" --version)") + if [ -z "$pv_api" ] + then + echo "$warn (could not determine paraview major.minor version)" + return 1 + fi + fi + header=$(findFirstFile \ "$(paraview-config --include 2>/dev/null |sed -ne 's/^ *-I//p')/$header"\ "${includeDir:+$includeDir/paraview-$pv_api/$header}" \ @@ -218,8 +284,9 @@ have_pvplugin_support() # ---------------------------------- # OK + # Use FOAM_LIBBIN/paraview-maj.min as default export HAVE_PVPLUGIN_SUPPORT=true - export FOAM_PV_PLUGIN_LIBBIN="$targetDir" + export FOAM_PV_PLUGIN_LIBBIN="${targetDir:-$FOAM_LIBBIN/paraview-$pv_api}" export PARAVIEW_API="$pv_api" export PARAVIEW_INC_DIR="${header%/*}" # Basename diff --git a/wmake/scripts/wmake.cmake-args b/wmake/scripts/wmake.cmake-args new file mode 100644 index 0000000000..1c618e5664 --- /dev/null +++ b/wmake/scripts/wmake.cmake-args @@ -0,0 +1,120 @@ +#----------------------------------*-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.cmake-args +# +# Description +# Special-purpose argument parser (eg, for Allwmake scripts) +# that handles -prefix=... and some other simpler tasks +# +# Usage +# # Parse the arguments by sourcing this script +# . ${WM_PROJECT_DIR:?}/wmake/scripts/wmake.cmake-args +# +# Options +# -prefix=... +# Exports CMAKE_INSTALL_PREFIX value. +# Handles u(ser), g(roup), o(ther) short-cuts (see foamEtcFile), +# absolute or relative paths +# +# -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 + + # Install prefix: user + -prefix=u | -prefix=user) + export CMAKE_INSTALL_PREFIX="${FOAM_USER_LIBBIN%/*}" + echo "Install prefix = user ($CMAKE_INSTALL_PREFIX)" 1>&2 + continue # Handled argument + ;; + + # Install prefix: group + -prefix=g | -prefix=group) + export CMAKE_INSTALL_PREFIX="${FOAM_SITE_LIBBIN%/*}" + echo "Install prefix = group ($CMAKE_INSTALL_PREFIX)" 1>&2 + continue # Handled argument + ;; + + # Install prefix: other/openfoam + -prefix=o | -prefix=other | -prefix=openfoam) + export CMAKE_INSTALL_PREFIX="${FOAM_LIBBIN%/*}" + echo "Install prefix = openfoam ($CMAKE_INSTALL_PREFIX)" 1>&2 + continue # Handled argument + ;; + + # Install prefix: custom + -prefix=*) + export CMAKE_INSTALL_PREFIX="${arg#*=}" + : "${CMAKE_INSTALL_PREFIX:=/usr/local}" # Default as per autoconf + + # Require as absolute path + [ "${CMAKE_INSTALL_PREFIX#/}" != "${CMAKE_INSTALL_PREFIX}" ] || \ + CMAKE_INSTALL_PREFIX="${PWD}/${CMAKE_INSTALL_PREFIX}" + + echo "Install prefix = $CMAKE_INSTALL_PREFIX" 1>&2 + 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 + +#------------------------------------------------------------------------------ From c853080d91a984fd6e3fbf54ba8cfc06c1c59464 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 6 May 2020 08:57:15 +0200 Subject: [PATCH 4/6] COMP: provide makefile fallbacks for FOAM_SOLVERS, FOAM_UTILITIES - improves build robustness, even with a reduced environment (#517) --- wmake/makefiles/general | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/wmake/makefiles/general b/wmake/makefiles/general index cc7318b2ed..805f94114f 100644 --- a/wmake/makefiles/general +++ b/wmake/makefiles/general @@ -6,11 +6,10 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2011-2016 OpenFOAM Foundation -# Copyright (C) 2019 OpenCFD Ltd. +# Copyright (C) 2019-2020 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM, licensed under GNU General Public License -# . +# This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # File # wmake/makefiles/general @@ -67,6 +66,14 @@ EXE_LIBS = LIB_LIBS = +# These variables are used for some builds - provide fallback values +ifeq (,$(FOAM_SOLVERS)) + FOAM_SOLVERS = $(WM_PROJECT_DIR)/applications/solvers +endif +ifeq (,$(FOAM_UTILITIES)) + FOAM_UTILITIES = $(WM_PROJECT_DIR)/applications/utilities +endif + #------------------------------------------------------------------------------ # Declare default name of libraries and executables #------------------------------------------------------------------------------ From bcd798aa6583d21301f7cc8ef099eddc5dd6e6d2 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 6 May 2020 09:11:32 +0200 Subject: [PATCH 5/6] SUBMODULES: catalyst module with updated cmake/wmake scripts --- modules/catalyst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/catalyst b/modules/catalyst index 08e19fdf74..9d9ccd6c23 160000 --- a/modules/catalyst +++ b/modules/catalyst @@ -1 +1 @@ -Subproject commit 08e19fdf7410fe149ee30e45080ac4d14e122f38 +Subproject commit 9d9ccd6c23526d823cf8588cf9be2fbc7d1420e9 From d0846edf508a25164dbcb88a6dafb9236504f24b Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 6 May 2020 09:11:55 +0200 Subject: [PATCH 6/6] CONFIG: increment patch level --- META-INFO/api-info | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/META-INFO/api-info b/META-INFO/api-info index 0092fb8952..c85db31d99 100644 --- a/META-INFO/api-info +++ b/META-INFO/api-info @@ -1,2 +1,2 @@ api=1912 -patch=200417 +patch=200506