mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
COMP: improve robustness of cmake (vtk) builds when directories have moved
This commit is contained in:
@ -7,29 +7,49 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
# Source the wmake functions
|
# Source the wmake functions
|
||||||
. $WM_DIR/scripts/wmakeFunctions
|
. $WM_DIR/scripts/wmakeFunctions
|
||||||
|
|
||||||
# ensure CMake gets the correct C/C++ compilers
|
# Ensure CMake gets the correct C/C++ compilers
|
||||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||||
|
|
||||||
#set -x
|
|
||||||
if [ -d "$ParaView_DIR" -a -r "$ParaView_DIR" ]
|
# CMake into objectsDir,
|
||||||
|
# with an additional attempt if (possibly incorrect) CMakeCache.txt existed
|
||||||
|
doCmake()
|
||||||
|
{
|
||||||
|
local sourceDir="$1"
|
||||||
|
|
||||||
|
findObjectDir $sourceDir # Where are generated files stored?
|
||||||
|
test -f "$objectsDir/CMakeCache.txt"
|
||||||
|
retry=$? # CMakeCache.txt exists, but sources may have moved
|
||||||
|
|
||||||
|
mkdir -p $objectsDir && \
|
||||||
|
(
|
||||||
|
cd $objectsDir || exit 1
|
||||||
|
|
||||||
|
cmake $sourceDir || {
|
||||||
|
if [ $retry -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "Removing CMakeCache.txt and attempt again"
|
||||||
|
rm -f CMakeCache.txt
|
||||||
|
cmake $sourceDir
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
} && make
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [ -d "$ParaView_DIR" ]
|
||||||
then
|
then
|
||||||
wmake $targetType vtkPVFoam
|
wmake $targetType vtkPVFoam
|
||||||
|
|
||||||
if [ "$targetType" != "objects" ]
|
if [ "$targetType" != objects ]
|
||||||
then
|
then
|
||||||
sourceDir=$PWD/PVFoamReader
|
doCmake $PWD/PVFoamReader || {
|
||||||
|
echo
|
||||||
# Where are any generated files stored?
|
echo " WARNING: incomplete build of ParaView OpenFOAM plugin"
|
||||||
findObjectDir $sourceDir
|
|
||||||
(
|
|
||||||
mkdir -p $objectsDir \
|
|
||||||
&& cd $objectsDir \
|
|
||||||
&& cmake $sourceDir \
|
|
||||||
&& make
|
|
||||||
) || {
|
|
||||||
echo
|
echo
|
||||||
echo "WARNING: incomplete build of ParaView OpenFOAM plugin"
|
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -11,25 +11,45 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||||
|
|
||||||
#set -x
|
|
||||||
if [ -d "$ParaView_DIR" -a -r "$ParaView_DIR" ]
|
# CMake into objectsDir,
|
||||||
|
# with an additional attempt if (possibly incorrect) CMakeCache.txt existed
|
||||||
|
doCmake()
|
||||||
|
{
|
||||||
|
local sourceDir="$1"
|
||||||
|
|
||||||
|
findObjectDir $sourceDir # Where are generated files stored?
|
||||||
|
test -f "$objectsDir/CMakeCache.txt"
|
||||||
|
retry=$? # CMakeCache.txt exists, but sources may have moved
|
||||||
|
|
||||||
|
mkdir -p $objectsDir && \
|
||||||
|
(
|
||||||
|
cd $objectsDir || exit 1
|
||||||
|
|
||||||
|
cmake $sourceDir || {
|
||||||
|
if [ $retry -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "Removing CMakeCache.txt and attempt again"
|
||||||
|
rm -f CMakeCache.txt
|
||||||
|
cmake $sourceDir
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
} && make
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [ -d "$ParaView_DIR" ]
|
||||||
then
|
then
|
||||||
wmake $targetType vtkPVblockMesh
|
wmake $targetType vtkPVblockMesh
|
||||||
|
|
||||||
if [ "$targetType" != "objects" ]
|
if [ "$targetType" != objects ]
|
||||||
then
|
then
|
||||||
sourceDir=$PWD/PVblockMeshReader
|
doCmake $PWD/PVblockMeshReader || {
|
||||||
|
echo
|
||||||
# Where are any generated files stored?
|
echo " WARNING: incomplete build of ParaView BlockMesh plugin"
|
||||||
findObjectDir $sourceDir
|
|
||||||
(
|
|
||||||
mkdir -p $objectsDir \
|
|
||||||
&& cd $objectsDir \
|
|
||||||
&& cmake $sourceDir \
|
|
||||||
&& make
|
|
||||||
) || {
|
|
||||||
echo
|
echo
|
||||||
echo "WARNING: incomplete build of ParaView BlockMesh plugin"
|
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -4,37 +4,58 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
# Source the wmake functions
|
# Source the wmake functions
|
||||||
. $WM_DIR/scripts/wmakeFunctions
|
. $WM_DIR/scripts/wmakeFunctions
|
||||||
|
|
||||||
# The source directory
|
# Ensure CMake gets the correct C/C++ compilers
|
||||||
sourceDir=$PWD
|
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||||
|
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||||
# Where are any generated files stored?
|
|
||||||
findObjectDir $sourceDir
|
|
||||||
depDir="$objectsDir"
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "======================================================================"
|
echo "======================================================================"
|
||||||
echo "${PWD##*/} : $PWD"
|
echo "${PWD##*/} : $PWD"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
|
||||||
|
# CMake into objectsDir,
|
||||||
|
# with an additional attempt if (possibly incorrect) CMakeCache.txt existed
|
||||||
|
doCmake()
|
||||||
|
{
|
||||||
|
local sourceDir="$1"
|
||||||
|
|
||||||
|
findObjectDir $sourceDir # Where are generated files stored?
|
||||||
|
test -f "$objectsDir/CMakeCache.txt"
|
||||||
|
retry=$? # CMakeCache.txt exists, but sources may have moved
|
||||||
|
|
||||||
|
mkdir -p $objectsDir && \
|
||||||
|
(
|
||||||
|
cd $objectsDir || exit 1
|
||||||
|
|
||||||
|
cmake $sourceDir || {
|
||||||
|
if [ $retry -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "Removing CMakeCache.txt and attempt again"
|
||||||
|
rm -f CMakeCache.txt
|
||||||
|
cmake $sourceDir
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
} && make
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if [ -d "$VTK_DIR" -o -d "$ParaView_DIR" ]
|
if [ -d "$VTK_DIR" -o -d "$ParaView_DIR" ]
|
||||||
then
|
then
|
||||||
# ensure CMake gets the correct C/C++ compilers
|
if [ "$targetType" != objects ]
|
||||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
|
||||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
|
||||||
|
|
||||||
if type cmake > /dev/null 2>&1
|
|
||||||
then
|
then
|
||||||
(
|
if type cmake > /dev/null 2>&1
|
||||||
mkdir -p $depDir \
|
then
|
||||||
&& cd $depDir \
|
doCmake $PWD || {
|
||||||
&& cmake $sourceDir \
|
echo
|
||||||
&& make
|
echo " WARNING: incomplete build of VTK-based post-processing"
|
||||||
) || {
|
echo
|
||||||
echo
|
}
|
||||||
echo "WARNING: incomplete build of VTK-based post-processing"
|
else
|
||||||
}
|
echo "WARNING: skipped - needs cmake"
|
||||||
else
|
fi
|
||||||
echo "WARNING: skipped - needs cmake"
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "WARNING: skipped - needs a VTK or a ParaView installation"
|
echo "WARNING: skipped - needs a VTK or a ParaView installation"
|
||||||
@ -45,4 +66,4 @@ fi
|
|||||||
echo "======================================================================"
|
echo "======================================================================"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
# ----------------------------------------------------------------- end-of-file
|
# -----------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user