Compare commits
120 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a91157470d | |||
| 8a53a789f7 | |||
| a42362f8b8 | |||
| 4f844dabcf | |||
| d446ee8b31 | |||
| 54efaa445a | |||
| dab3042c45 | |||
| 52ad71871c | |||
| 31ffa9c92c | |||
| 5886ce9f65 | |||
| 93b8816b3e | |||
| cbea5788a3 | |||
| 6d7ef8dc42 | |||
| 455551b48b | |||
| 231733bc15 | |||
| 5ecf33d4d8 | |||
| 475220cfae | |||
| de7ac04146 | |||
| 7419702a85 | |||
| 43cbb24ddd | |||
| f49d26dad5 | |||
| 4c049afb40 | |||
| ea9c2471a8 | |||
| 03075ef079 | |||
| 6485db81a9 | |||
| 5fcd29aa99 | |||
| 816173b7c4 | |||
| 491b3390bb | |||
| 6f32862d26 | |||
| bc7fb08810 | |||
| 0c7fa1cc7c | |||
| 5112b60e58 | |||
| bdfdff11c8 | |||
| 51435f2e56 | |||
| c0de94d846 | |||
| 19f241fae2 | |||
| 0f9fe6b863 | |||
| 7f4a904b90 | |||
| ec80e1df97 | |||
| 092d71c3df | |||
| 54356f8f87 | |||
| 4a6ab3779f | |||
| 458d9dadbf | |||
| aac32ece63 | |||
| 62c8476a4e | |||
| 4a0f78084b | |||
| 986d9120fd | |||
| 43cffa29db | |||
| ce4c19c717 | |||
| c291d5742d | |||
| d2da5b440e | |||
| 59be96faed | |||
| 5d592841fd | |||
| 493d4b01ac | |||
| 1189ff23c9 | |||
| 5c09a6433f | |||
| 9f6a77a1ab | |||
| 59432b7b2d | |||
| 82595ca823 | |||
| d55ae084d4 | |||
| e3190722e5 | |||
| 1622a46832 | |||
| 9926569ca1 | |||
| fc3ea2f182 | |||
| 907e04f35c | |||
| ae464766e6 | |||
| 45caecb85b | |||
| 705556c3eb | |||
| 122ee3386e | |||
| 2461877bf5 | |||
| 0f47e1bc1a | |||
| 063c34f11f | |||
| 4b5eff03fc | |||
| 09428646a0 | |||
| c838cae680 | |||
| 391a6b24ca | |||
| 4a71fbb426 | |||
| 852e88b495 | |||
| fb4a0ee7cd | |||
| 74b42821eb | |||
| 318e249542 | |||
| cc2161856b | |||
| 0f5e1d6732 | |||
| ed0c63889e | |||
| a76e575503 | |||
| 8400503c5f | |||
| a7a5eab921 | |||
| 8688694af0 | |||
| e5f3d03715 | |||
| 9c1fb023c7 | |||
| ba2c04d454 | |||
| d23b9bf968 | |||
| 223718a8f2 | |||
| e2534597e0 | |||
| ecab02b5aa | |||
| 06b4a31573 | |||
| 0e474dcd51 | |||
| 363691ff97 | |||
| 6b8eecffbd | |||
| cb7d48b428 | |||
| 1e75ef584d | |||
| 7623d184cd | |||
| 1fd3d5ab4f | |||
| da8f0c6452 | |||
| 5bfb563dcc | |||
| 26dc62a51f | |||
| d07150e20e | |||
| 105e8a0d50 | |||
| 375de7066d | |||
| 85180484c3 | |||
| f8e0b17acb | |||
| 8f68d51717 | |||
| a5ab962792 | |||
| 2453d95ef7 | |||
| cd07d9f6bc | |||
| 5dd6900492 | |||
| 5de10e0e5a | |||
| b36e02052b | |||
| c20c2c2509 | |||
| f3ef77b946 |
171
Allclean
171
Allclean
@ -4,59 +4,152 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# AllClean
|
||||
# Allclean
|
||||
#
|
||||
# Description
|
||||
# Clean script for third-party applications and libraries
|
||||
# Clean script for ThirdParty applications/libraries
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# run from third-party directory only
|
||||
cd ${0%/*} || exit 1
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
# . etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
Usage: ${0##*/} [OPTION] [<platform> [ ... <platformN> ]]
|
||||
options:
|
||||
-all remove all platforms directories.
|
||||
-current clean the current platform ($WM_OPTIONS).
|
||||
-help print the usage
|
||||
|
||||
Cleanup intermediate build directories.
|
||||
Optionally remove specified platform(s) from the ThirdParty platforms
|
||||
directory $WM_THIRD_PARTY_DIR/platforms
|
||||
|
||||
# clean various packages via 'distclean'
|
||||
for i in openmpi-*
|
||||
do
|
||||
[ -d "$i" ] && ( set -x; cd $i && make distclean )
|
||||
done
|
||||
|
||||
|
||||
# clean various packages via 'realclean'
|
||||
for i in scotch*/src
|
||||
do
|
||||
[ -d "$i" ] && ( set -x; cd $i && make realclean )
|
||||
done
|
||||
|
||||
|
||||
# clean out-of-source build directories
|
||||
[ -d platforms ] && ( set -x; rm -rf platforms/* )
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Print help message
|
||||
if [ "$1" = "-h" -o "$1" = "-help" ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Clean various packages via 'distclean'
|
||||
for i in \
|
||||
openmpi-* metis-* adios-* ADIOS-* gperftools-* qt-* \
|
||||
gmp-* mpfr-* mpc-* gcc-* llvm-* \
|
||||
;
|
||||
do
|
||||
[ -d "$i" ] && (
|
||||
echo
|
||||
echo "${i%/*}"
|
||||
echo " make distclean"
|
||||
echo
|
||||
cd $i && make distclean
|
||||
)
|
||||
done
|
||||
|
||||
|
||||
# Clean various packages via 'realclean'
|
||||
for i in scotch*/src
|
||||
do
|
||||
[ -d "$i" ] && (
|
||||
echo
|
||||
echo "${i%/*}"
|
||||
echo " make realclean"
|
||||
echo
|
||||
cd $i && make realclean
|
||||
)
|
||||
done
|
||||
|
||||
|
||||
# Clean various packages via 'wclean'
|
||||
for i in libccmio*/Make kahip*/lib/Make
|
||||
do
|
||||
[ -d "$i" ] && (
|
||||
echo
|
||||
echo "${i%/Make}"
|
||||
echo " wclean"
|
||||
echo
|
||||
cd ${i%/Make} && wclean
|
||||
)
|
||||
done
|
||||
|
||||
|
||||
# Clean out-of-source build directories
|
||||
if [ -d build ]
|
||||
then
|
||||
echo
|
||||
echo "Clean build/ directory"
|
||||
rm -rf build/*
|
||||
fi
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Clean platforms directories
|
||||
#
|
||||
removePlatform()
|
||||
{
|
||||
local platform="$1"
|
||||
if [ -n "$platform" -a -d "platforms/$platform" ]
|
||||
then
|
||||
echo
|
||||
echo "Cleaning platform '$platform'"
|
||||
\rm -rf "platforms/$platform"
|
||||
else
|
||||
echo
|
||||
echo "Platform '$platform' not built"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$#" -ge 1 ]
|
||||
then
|
||||
echo
|
||||
echo "Clean platforms/sub-directories"
|
||||
fi
|
||||
|
||||
# Optionally cleanup platforms specified from the arguments
|
||||
while [ "$#" -ge 1 ]
|
||||
do
|
||||
case "$1" in
|
||||
-all)
|
||||
echo
|
||||
echo "Removing all platforms/sub-directories"
|
||||
echo
|
||||
\rm -rf platforms/*
|
||||
break
|
||||
;;
|
||||
|
||||
-current)
|
||||
echo "Current platform '$WM_OPTIONS'"
|
||||
removePlatform "$WM_OPTIONS"
|
||||
;;
|
||||
|
||||
*)
|
||||
removePlatform "$1"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
652
Allwmake
652
Allwmake
@ -4,378 +4,40 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# Allwmake
|
||||
#
|
||||
# Description
|
||||
# Build script for ThirdParty
|
||||
# Build script for ThirdParty applications/libraries
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# run from third-party directory only
|
||||
cd ${0%/*} || exit 1
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
# Dynamic library endings (default is .so)
|
||||
[ "$(uname -s)" = Darwin ] && SO=dylib || SO=so
|
||||
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
[ -n "$FOAM_EXT_LIBBIN" ] || {
|
||||
echo "Error: FOAM_EXT_LIBBIN not set"
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set for ThirdParty"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# export WM settings in a form that GNU configure recognizes
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
[ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS"
|
||||
[ -n "$WM_CXXFLAGS" ] && export CXXFLAGS="$WM_CXXFLAGS"
|
||||
[ -n "$WM_LDFLAGS" ] && export LDFLAGS="$WM_LDFLAGS"
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
echo Start ThirdParty Allwmake
|
||||
echo ========================================
|
||||
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
echo Build MPI libraries if required
|
||||
echo " $MPI_ARCH_PATH"
|
||||
case "$WM_MPLIB" in
|
||||
OPENMPI)
|
||||
if [ -r $MPI_ARCH_PATH/lib${WM_COMPILER_LIB_ARCH}/libmpi.so ]
|
||||
then
|
||||
echo " have $WM_MPLIB shared library ($FOAM_MPI)"
|
||||
echo
|
||||
elif [ -r $MPI_ARCH_PATH/lib${WM_COMPILER_LIB_ARCH}/libmpi.a ]
|
||||
then
|
||||
echo " have $WM_MPLIB static library ($FOAM_MPI)"
|
||||
echo
|
||||
else
|
||||
(
|
||||
# configuration options:
|
||||
# Start with GridEngine support - builds without external libraries
|
||||
configOpt="--with-sge"
|
||||
|
||||
# Add InfiniBand support
|
||||
ibDir=/usr/local/ofed
|
||||
ibLib=$infbDIR/lib${WM_COMPILER_LIB_ARCH}
|
||||
if [ -d "$ibDir" -a -d "$ibLib" ]
|
||||
then
|
||||
configOpt="$configOpt --with-verbs=$ibDir --with-verbs-lib=$ibLib"
|
||||
fi
|
||||
|
||||
# end of configuration options
|
||||
# ----------------------------
|
||||
mpiPACKAGE="${MPI_ARCH_PATH##*/}"
|
||||
sourceDIR=$WM_THIRD_PARTY_DIR/$mpiPACKAGE
|
||||
buildDIR=$buildBASE/$mpiPACKAGE
|
||||
|
||||
cd $sourceDIR || exit 1
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
|
||||
rm -rf $MPI_ARCH_PATH
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
|
||||
set -x
|
||||
$sourceDIR/configure \
|
||||
--prefix=$MPI_ARCH_PATH \
|
||||
--disable-orterun-prefix-by-default \
|
||||
--enable-shared --disable-static \
|
||||
--libdir=$MPI_ARCH_PATH/lib${WM_COMPILER_LIB_ARCH} \
|
||||
--enable-mpi-fortran=none \
|
||||
--disable-mpi-profile \
|
||||
$configOpt \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $mpiPACKAGE"
|
||||
) || {
|
||||
echo "Error building: $mpiPACKAGE"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
;;
|
||||
|
||||
MPICH)
|
||||
if [ -r $MPI_ARCH_PATH/lib/libmpich.so ]
|
||||
then
|
||||
echo " have $WM_MPLIB shared library ($FOAM_MPI)"
|
||||
echo
|
||||
elif [ -r $MPI_ARCH_PATH/lib/libmpich.a ]
|
||||
then
|
||||
echo " have $WM_MPLIB static library ($FOAM_MPI)"
|
||||
echo
|
||||
else
|
||||
(
|
||||
# WARNING: unmaintained build code:
|
||||
# ---------------------------------
|
||||
set -x
|
||||
cd $MPI_HOME || exit 1 # change to mpich-VERSION
|
||||
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
rm -rf $MPI_ARCH_PATH
|
||||
rm -rf util/machines/machines.*
|
||||
|
||||
./configure \
|
||||
--prefix=$MPI_ARCH_PATH \
|
||||
--without-mpe \
|
||||
--disable-f77 \
|
||||
--disable-f90 \
|
||||
--disable-f90modules \
|
||||
--disable-mpedbg \
|
||||
--disable-devdebug \
|
||||
--disable-debug \
|
||||
--enable-sharedlib=$MPI_ARCH_PATH/lib \
|
||||
--with-device=ch_p4 \
|
||||
;
|
||||
|
||||
# For MPICH2 below 1.5a1 uncomment this line and comment next
|
||||
# make && make install
|
||||
|
||||
# For MPICH2 1.5a1 or above
|
||||
make -j $WM_NCOMPPROCS && make install
|
||||
|
||||
make distclean
|
||||
|
||||
if [ -r $MPI_ARCH_PATH ]
|
||||
then
|
||||
cd $MPI_ARCH_PATH/bin
|
||||
for file in *
|
||||
do
|
||||
sed s%$MPI_ARCH_PATH%'$MPI_ARCH_PATH'%g $file > temp.$$
|
||||
mv temp.$$ $file
|
||||
chmod 0755 $file
|
||||
done
|
||||
|
||||
cd $MPI_ARCH_PATH/lib
|
||||
|
||||
if [ -r libmpich.so.1.0 ]
|
||||
then
|
||||
rm *.so
|
||||
ln -s libmpich.so.1.0 libmpich.so
|
||||
fi
|
||||
fi
|
||||
)
|
||||
fi
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# building scotch is still a bit of a pain
|
||||
|
||||
# get SCOTCH_VERSION, SCOTCH_ARCH_PATH
|
||||
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch)
|
||||
then
|
||||
. $settings
|
||||
else
|
||||
echo
|
||||
echo "Error: no config.sh/scotch settings"
|
||||
echo
|
||||
fi
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
echo "Build Scotch decomposition library $SCOTCH_VERSION"
|
||||
echo " $SCOTCH_ARCH_PATH"
|
||||
|
||||
# this needs generalizing
|
||||
scotchMakefile=../../etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM-$WM_ARCH_OPTION$WM_LABEL_OPTION
|
||||
|
||||
if [ -f $SCOTCH_ARCH_PATH/include/scotch.h \
|
||||
-a -r $FOAM_EXT_LIBBIN/libscotch.so \
|
||||
-a -r $FOAM_EXT_LIBBIN/libscotcherrexit.so ]
|
||||
then
|
||||
echo " scotch header in $SCOTCH_ARCH_PATH/include"
|
||||
echo " scotch libs in $FOAM_EXT_LIBBIN"
|
||||
elif [ -d "$SCOTCH_VERSION" ]
|
||||
then
|
||||
(
|
||||
cd $SCOTCH_VERSION/src || exit 1
|
||||
applyPatch $SCOTCH_VERSION .. # patch at parent-level
|
||||
|
||||
prefixDIR=$SCOTCH_ARCH_PATH
|
||||
libDIR=$FOAM_EXT_LIBBIN
|
||||
|
||||
mkdir -p $prefixDIR 2>/dev/null
|
||||
mkdir -p $libDIR 2>/dev/null
|
||||
|
||||
configOpt="prefix=$prefixDIR libdir=$libDIR"
|
||||
|
||||
if [ -f $scotchMakefile ]
|
||||
then
|
||||
rm -f Makefile.inc
|
||||
ln -s $scotchMakefile Makefile.inc
|
||||
fi
|
||||
|
||||
[ -f Makefile.inc ] || {
|
||||
echo " Error: scotch needs an appropriate Makefile.inc"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# handle non-gcc compilers
|
||||
unset configEnv
|
||||
[ "${WM_CC:-gcc}" != gcc ] && configEnv="CC=$WM_CC CCS=$WM_CC"
|
||||
|
||||
make realclean 2>/dev/null # for safety
|
||||
|
||||
make -j $WM_NCOMPPROCS $configEnv scotch \
|
||||
&& make $configOpt install
|
||||
|
||||
# cleanup, could also remove Makefile.inc
|
||||
make realclean 2>/dev/null
|
||||
)
|
||||
else
|
||||
echo " Optional component (SCOTCH) was not found"
|
||||
fi
|
||||
|
||||
# build ptscotch if MPI (ThirdParty or system) is available
|
||||
# and there is a scotch include available (ie, normal scotch was built)
|
||||
if [ "${FOAM_MPI:-dummy}" != dummy ] && \
|
||||
[ -f $SCOTCH_ARCH_PATH/include/scotch.h ] || \
|
||||
{
|
||||
echo
|
||||
echo " WARNING: skipping pt-scotch - 'scotch.h' include file not found!"
|
||||
false
|
||||
}
|
||||
then
|
||||
echo
|
||||
echo ========================================
|
||||
echo "Build pt-scotch decomposition library $SCOTCH_VERSION (with $FOAM_MPI)"
|
||||
echo " $SCOTCH_ARCH_PATH"
|
||||
|
||||
if [ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h \
|
||||
-a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotch.so \
|
||||
-a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotcherrexit.so ]
|
||||
then
|
||||
echo " ptscotch header in $SCOTCH_ARCH_PATH/include/$FOAM_MPI"
|
||||
echo " ptscotch libs in $FOAM_EXT_LIBBIN/$FOAM_MPI"
|
||||
else
|
||||
(
|
||||
echo
|
||||
set -x
|
||||
cd $SCOTCH_VERSION/src || exit 1
|
||||
|
||||
prefixDIR=$SCOTCH_ARCH_PATH
|
||||
libDIR=$FOAM_EXT_LIBBIN/$FOAM_MPI
|
||||
incDIR=$SCOTCH_ARCH_PATH/include/$FOAM_MPI
|
||||
|
||||
mkdir -p $prefixDIR 2>/dev/null
|
||||
mkdir -p $libDIR 2>/dev/null
|
||||
|
||||
configOpt="prefix=$prefixDIR libdir=$libDIR includedir=$incDIR"
|
||||
|
||||
if [ -f $scotchMakefile ]
|
||||
then
|
||||
rm -f Makefile.inc
|
||||
ln -s $scotchMakefile Makefile.inc
|
||||
fi
|
||||
|
||||
[ -f Makefile.inc ] || {
|
||||
echo " Error: scotch needs an appropriate Makefile.inc"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# handle non-gcc compilers
|
||||
unset configEnv
|
||||
[ "${WM_CC:-gcc}" != gcc ] && configEnv="CC=$WM_CC CCS=$WM_CC"
|
||||
|
||||
make realclean 2>/dev/null # for safety
|
||||
|
||||
make -j $WM_NCOMPPROCS $configEnv ptscotch \
|
||||
&& make $configOpt install
|
||||
|
||||
# cleanup, could also remove Makefile.inc
|
||||
make realclean 2>/dev/null
|
||||
)
|
||||
fi
|
||||
|
||||
# verify existence of scotch include
|
||||
[ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h ] || {
|
||||
echo
|
||||
echo " WARNING: required include file 'ptscotch.h' not found!"
|
||||
}
|
||||
fi
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Metis is optional
|
||||
echo
|
||||
echo ========================================
|
||||
echo Build Metis decomposition
|
||||
|
||||
# get METIS_VERSION, METIS_ARCH_PATH
|
||||
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis)
|
||||
then
|
||||
. $settings
|
||||
fi
|
||||
if [ -d "$METIS_VERSION" ]
|
||||
then
|
||||
|
||||
if [ -f $METIS_ARCH_PATH/include/metis.h \
|
||||
-a -r $FOAM_EXT_LIBBIN/libmetis.so ]
|
||||
then
|
||||
echo " metis header in $METIS_ARCH_PATH/include"
|
||||
echo " metis libs in $FOAM_EXT_LIBBIN"
|
||||
echo
|
||||
else
|
||||
(
|
||||
set -x
|
||||
cd $METIS_VERSION || exit 1
|
||||
|
||||
if [ "$WM_PRECISION_OPTION" = "DP" ]
|
||||
then
|
||||
FLOAT_PRECISION=64
|
||||
elif [ "$WM_PRECISION_OPTION" = "SP" ]
|
||||
then
|
||||
FLOAT_PRECISION=32
|
||||
else
|
||||
echo " Metis pre-configure error:"
|
||||
echo " WM_PRECISION_OPTION is neither DP nor SP"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Change user settings automatically
|
||||
sed -i -e 's=\(#define IDXTYPEWIDTH\).*=\1 '$WM_LABEL_SIZE'=' \
|
||||
-e 's=\(#define REALTYPEWIDTH\).*=\1 '$FLOAT_PRECISION'=' \
|
||||
include/metis.h
|
||||
|
||||
make config shared=1 prefix=$METIS_ARCH_PATH
|
||||
make -j $WM_NCOMPPROCS install
|
||||
cp $METIS_ARCH_PATH/lib/libmetis.so $FOAM_EXT_LIBBIN
|
||||
)
|
||||
fi
|
||||
else
|
||||
echo " Optional component (METIS) was not found"
|
||||
fi
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler true # Compiler info + flags for CMake/configure
|
||||
exportLinker # Linker flags for CMake/configure
|
||||
useGccFlag $@ # Scan arguments for a '-gcc' option
|
||||
|
||||
warnBuildIssues()
|
||||
{
|
||||
@ -389,58 +51,252 @@ warnBuildIssues()
|
||||
|
||||
warnNotFound()
|
||||
{
|
||||
echo " Optional component ($1) was not found"
|
||||
echo
|
||||
echo "Optional component ($1) was not found"
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# CGAL is optional
|
||||
echo
|
||||
echo ========================================
|
||||
echo Build CGAL
|
||||
if [ -d "$CGAL_ARCH_PATH/include" \
|
||||
-a -r "$CGAL_ARCH_PATH/lib/libCGAL.so" ]
|
||||
then
|
||||
# first some information about boost
|
||||
if [ -d "$BOOST_ARCH_PATH/include/boost" \
|
||||
-a -r "$BOOST_ARCH_PATH/lib/libboost_system.so" ]
|
||||
then
|
||||
echo " BOOST headers in $BOOST_ARCH_PATH/include"
|
||||
echo " BOOST libs in $BOOST_ARCH_PATH/lib"
|
||||
elif [ -d "/usr/include/boost" \
|
||||
-a -r "/usr/lib${WM_COMPILER_LIB_ARCH}/libboost_system.so" ]
|
||||
then
|
||||
echo " BOOST headers in /usr/include"
|
||||
echo " BOOST libs in /usr/lib${WM_COMPILER_LIB_ARCH}"
|
||||
fi
|
||||
echo " CGAL headers in $CGAL_ARCH_PATH/include"
|
||||
echo " CGAL libs in $CGAL_ARCH_PATH/lib"
|
||||
elif [ -n "$CGAL_ARCH_PATH" ]
|
||||
then
|
||||
./makeCGAL || warnBuildIssues CGAL
|
||||
else
|
||||
warnNotFound CGAL
|
||||
fi
|
||||
|
||||
|
||||
# FFTW is optional
|
||||
echo Start ThirdParty Allwmake
|
||||
echo ========================================
|
||||
echo
|
||||
echo ========================================
|
||||
echo Build FFTW
|
||||
if [ -d "$FFTW_ARCH_PATH/include" \
|
||||
-a -r "$FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libfftw3.so" ]
|
||||
then
|
||||
echo " FFTW headers in $FFTW_ARCH_PATH/include"
|
||||
echo " FFTW libs in $FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
elif [ -n "$FFTW_ARCH_PATH" ]
|
||||
then
|
||||
./makeFFTW || warnBuildIssues FFTW
|
||||
else
|
||||
warnNotFound FFTW
|
||||
fi
|
||||
echo Build MPI libraries if required
|
||||
echo " $MPI_ARCH_PATH"
|
||||
case "$WM_MPLIB" in
|
||||
(OPENMPI | MPICH)
|
||||
./make$WM_MPLIB -test "$MPI_ARCH_PATH" || ./make$WM_MPLIB
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Building scotch on different platforms is still a bit of a pain
|
||||
|
||||
# Get SCOTCH_VERSION, SCOTCH_ARCH_PATH
|
||||
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch)
|
||||
then
|
||||
. $settings
|
||||
else
|
||||
echo
|
||||
echo "Error: no config.sh/scotch settings"
|
||||
echo
|
||||
fi
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
echo "Scotch decomposition ($SCOTCH_VERSION)"
|
||||
echo " $SCOTCH_ARCH_PATH"
|
||||
|
||||
SCOTCH_SOURCE_DIR=$sourceBASE/$SCOTCH_VERSION
|
||||
|
||||
# Needs generalizing, but works fairly well
|
||||
scotchMakefile=etc/makeFiles/scotch/Makefile.inc.OpenFOAM-"$(uname -s)".shlib
|
||||
|
||||
[ -f $scotchMakefile ] || \
|
||||
scotchMakefile=${scotchMakefile%/*}/Makefile.inc.OpenFOAM-Linux.shlib
|
||||
|
||||
if [ -f $SCOTCH_ARCH_PATH/include/scotch.h \
|
||||
-a -r $FOAM_EXT_LIBBIN/libscotch.$SO \
|
||||
-a -r $FOAM_EXT_LIBBIN/libscotcherrexit.$SO ]
|
||||
then
|
||||
echo " scotch include: $SCOTCH_ARCH_PATH/include"
|
||||
echo " scotch library: $FOAM_EXT_LIBBIN"
|
||||
elif [ -d "$SCOTCH_SOURCE_DIR" ]
|
||||
then
|
||||
(
|
||||
# Older versions ok, but scotch-6.0.5a cannot build in parallel.
|
||||
# Force serial build
|
||||
export WM_NCOMPPROCS=1
|
||||
echo "*** building scotch in serial ***"
|
||||
echo
|
||||
|
||||
cd $SCOTCH_SOURCE_DIR/src || exit 1
|
||||
export GIT_DIR=$SCOTCH_SOURCE_DIR/.git # Mask seeing our own git-repo
|
||||
rm -rf $SCOTCH_ARCH_PATH
|
||||
|
||||
applyPatch $SCOTCH_VERSION .. # patch at parent-level
|
||||
|
||||
prefixDIR=$SCOTCH_ARCH_PATH
|
||||
incDIR=$SCOTCH_ARCH_PATH/include
|
||||
libDIR=$FOAM_EXT_LIBBIN
|
||||
|
||||
mkdir -p $prefixDIR 2>/dev/null
|
||||
mkdir -p $incDIR 2>/dev/null
|
||||
mkdir -p $libDIR 2>/dev/null
|
||||
|
||||
# Makefile relative to this directory
|
||||
scotchMakefile=../../$scotchMakefile
|
||||
|
||||
if [ -f $scotchMakefile ]
|
||||
then
|
||||
rm -f Makefile.inc
|
||||
ln -s $scotchMakefile Makefile.inc
|
||||
fi
|
||||
[ -f Makefile.inc ] || {
|
||||
echo " Error: scotch needs an appropriate Makefile.inc"
|
||||
exit 1
|
||||
}
|
||||
|
||||
export CCS="${CC:-$WM_CC}" # CCS (serial compiler) default=$(CC)
|
||||
export CCP=$(whichMpicc) # CCP (parallel compiler) default=mpicc
|
||||
|
||||
# Consistency for Intel-MPI and non-icc compilers
|
||||
[ -n "$I_MPI_CC" ] || export I_MPI_CC="${CC:-$WM_CC}"
|
||||
|
||||
make realclean 2>/dev/null # Extra safety
|
||||
make -j $WM_NCOMPPROCS scotch \
|
||||
&& make \
|
||||
prefix=$prefixDIR \
|
||||
includedir=$incDIR \
|
||||
libdir=$libDIR \
|
||||
install
|
||||
|
||||
make realclean 2>/dev/null || true # Failed cleanup is uncritical
|
||||
) || warnBuildIssues SCOTCH
|
||||
else
|
||||
warnNotFound SCOTCH
|
||||
fi
|
||||
|
||||
# Build ptscotch if MPI (ThirdParty or system) is available
|
||||
# and normal scotch was built (has include and library)
|
||||
if [ "${FOAM_MPI:-dummy}" != dummy ] && \
|
||||
[ -f $SCOTCH_ARCH_PATH/include/scotch.h \
|
||||
-a -r $FOAM_EXT_LIBBIN/libscotch.$SO ] || \
|
||||
{
|
||||
# Report that the above tests failed and pass-through the failure
|
||||
echo
|
||||
echo " WARNING: skipping pt-scotch - no mpi or <scotch.h> not found"
|
||||
false
|
||||
}
|
||||
then
|
||||
echo
|
||||
echo ========================================
|
||||
echo "pt-scotch decomposition ($SCOTCH_VERSION with $FOAM_MPI)"
|
||||
echo " $SCOTCH_ARCH_PATH"
|
||||
|
||||
if [ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h \
|
||||
-a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotch.$SO \
|
||||
-a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotcherrexit.$SO ]
|
||||
then
|
||||
echo " ptscotch include: $SCOTCH_ARCH_PATH/include/$FOAM_MPI"
|
||||
echo " ptscotch library: $FOAM_EXT_LIBBIN/$FOAM_MPI"
|
||||
else
|
||||
(
|
||||
# Older versions ok, but scotch-6.0.5a cannot build in parallel.
|
||||
# Force serial build
|
||||
export WM_NCOMPPROCS=1
|
||||
echo "*** building pt-scotch in serial ***"
|
||||
|
||||
cd $SCOTCH_SOURCE_DIR/src || exit 1
|
||||
export GIT_DIR=$SCOTCH_SOURCE_DIR/.git # Mask seeing our own git-repo
|
||||
echo
|
||||
|
||||
prefixDIR=$SCOTCH_ARCH_PATH
|
||||
incDIR=$SCOTCH_ARCH_PATH/include/$FOAM_MPI
|
||||
libDIR=$FOAM_EXT_LIBBIN/$FOAM_MPI
|
||||
|
||||
mkdir -p $prefixDIR 2>/dev/null
|
||||
mkdir -p $incDIR 2>/dev/null
|
||||
mkdir -p $libDIR 2>/dev/null
|
||||
|
||||
if [ -f $scotchMakefile ]
|
||||
then
|
||||
rm -f Makefile.inc
|
||||
ln -s $scotchMakefile Makefile.inc
|
||||
fi
|
||||
[ -f Makefile.inc ] || {
|
||||
echo " Error: ptscotch needs an appropriate Makefile.inc"
|
||||
exit 1
|
||||
}
|
||||
|
||||
export CCS="${CC:-$WM_CC}" # CCS (serial compiler) default=$(CC)
|
||||
export CCP=$(whichMpicc) # CCP (parallel compiler) default=mpicc
|
||||
|
||||
# Consistency for Intel-MPI and non-icc compilers
|
||||
[ -n "$I_MPI_CC" ] || export I_MPI_CC="${CC:-$WM_CC}"
|
||||
|
||||
make realclean 2>/dev/null # Extra safety
|
||||
make -j $WM_NCOMPPROCS ptscotch \
|
||||
&& make \
|
||||
prefix=$prefixDIR \
|
||||
includedir=$incDIR \
|
||||
libdir=$libDIR \
|
||||
install
|
||||
|
||||
make realclean 2>/dev/null || true # Failed cleanup is uncritical
|
||||
) || warnBuildIssues PTSCOTCH
|
||||
fi
|
||||
|
||||
# Verify existence of ptscotch include
|
||||
[ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h ] || {
|
||||
echo
|
||||
echo " WARNING: required include file 'ptscotch.h' not found!"
|
||||
}
|
||||
fi
|
||||
|
||||
# Could now remove $SCOTCH_SOURCE_DIR/src/Makefile.inc
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
# Get KAHIP_ARCH_PATH
|
||||
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/kahip)
|
||||
then
|
||||
. $settings
|
||||
fi
|
||||
if [ -n "$KAHIP_ARCH_PATH" ]
|
||||
then
|
||||
echo KaHIP decomposition
|
||||
./makeKAHIP -test "$KAHIP_ARCH_PATH" || \
|
||||
./makeKAHIP || warnBuildIssues KAHIP
|
||||
else
|
||||
warnNotFound KAHIP # METIS is optional
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
echo
|
||||
echo ========================================
|
||||
|
||||
# Get METIS_ARCH_PATH
|
||||
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis)
|
||||
then
|
||||
. $settings
|
||||
fi
|
||||
if [ -n "$METIS_ARCH_PATH" ]
|
||||
then
|
||||
echo Metis decomposition
|
||||
./makeMETIS -test "$METIS_ARCH_PATH" || \
|
||||
./makeMETIS || warnBuildIssues METIS
|
||||
else
|
||||
warnNotFound METIS # METIS is optional
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
echo
|
||||
echo ========================================
|
||||
if [ -n "$CGAL_ARCH_PATH" ]
|
||||
then
|
||||
echo "CGAL/boost"
|
||||
./makeCGAL -test "$CGAL_ARCH_PATH" "$BOOST_ARCH_PATH" || \
|
||||
./makeCGAL || warnBuildIssues CGAL
|
||||
else
|
||||
warnNotFound CGAL # CGAL is optional
|
||||
fi
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
if [ -n "$FFTW_ARCH_PATH" ]
|
||||
then
|
||||
echo FFTW
|
||||
./makeFFTW -test "$FFTW_ARCH_PATH" || \
|
||||
./makeFFTW || warnBuildIssues FFTW
|
||||
else
|
||||
warnNotFound FFTW # FFTW is optional
|
||||
fi
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
|
||||
565
BUILD.md
Normal file
565
BUILD.md
Normal file
@ -0,0 +1,565 @@
|
||||
<!--
|
||||
|--------------------------------------------------------------------------|
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | |
|
||||
| \\ / A nd | Copyright (C) 2016-2018 OpenCFD Ltd. |
|
||||
| \\/ M anipulation | |
|
||||
|--------------------------------------------------------------------------|
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# OpenFOAM® ThirdParty Build
|
||||
|
||||
OpenFOAM depends to a certain extent on third-party libraries
|
||||
(*opensource only*). It also provides some interfaces to *opensource* or
|
||||
*proprietary* libraries. This third-party package contains configurations and
|
||||
scripts for building third-party packages. It should normally only be used in
|
||||
conjunction with the corresponding OpenFOAM version.
|
||||
|
||||
## Organization
|
||||
|
||||
The ThirdParty directory contains a number of build scripts as well as
|
||||
some directories:
|
||||
|
||||
| Directory | Contains
|
||||
|-------------------|-------------------------------------------------------
|
||||
| etc/ | auxiliary tools and content used for the build process
|
||||
| build/ | intermediate build objects
|
||||
| platforms/ | the installation directories
|
||||
|
||||
|
||||
## Configuration of Third-Party Versions
|
||||
|
||||
For most of the build scripts, the default software version
|
||||
is provided by an appropriate OpenFOAM `etc/config.sh/...` entry.
|
||||
This approach avoids duplicate entries for the default versions and
|
||||
ensures the best overall consistency between the OpenFOAM installation
|
||||
and its corresponding third-party installation.
|
||||
|
||||
Nonethess, the distributed make scripts can generally be used for a
|
||||
variety of versions of the third-party libraries, with the software
|
||||
version specified on the command-line. For example,
|
||||
|
||||
$ ./makeFFTW -help
|
||||
usage: makeFFTW [OPTION] [fftw-VERSION]
|
||||
|
||||
---
|
||||
|
||||
## Before Starting
|
||||
|
||||
0. Review the [system requirements](http://www.openfoam.com/documentation/system-requirements.php)
|
||||
and decide on the following:
|
||||
* compiler type/version - if the system compiler is not relatively recent,
|
||||
you will need a [third-party compiler](#makeGcc) installation.
|
||||
* MPI type/version.
|
||||
* ParaView type/version.
|
||||
* CMake type/version, ...
|
||||
1. If you are using a system MPI (eg, openmpi), ensure that this environment
|
||||
has also been properly activated for your user.
|
||||
Often (but not always) a `mpi-selector` command is available for this purpose.
|
||||
You may need to open a new shell afterwards for the change to take effect.
|
||||
Using the following command may help diagnosing things:
|
||||
|
||||
which mpicc
|
||||
|
||||
2. Adjust the OpenFOAM `etc/bashrc`, `etc/config.sh/...` or equivalent
|
||||
`prefs.sh` files to reflect your preferred configuration.
|
||||
For many config files, there are several configuration possibilities:
|
||||
- Define a particular third-party version.
|
||||
- Use a system installation.
|
||||
- Disable use of an optional component.
|
||||
- Define an alternative site-wide central location.
|
||||
- After making the desired changes, use `wmRefresh` or equivalent to use the configurations.
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Building
|
||||
|
||||
Many components of ThirdParty are *optional* or are invoked
|
||||
automatically as part of the top-level OpenFOAM `Allwmake`.
|
||||
Nonetheless it may be necessary or useful to build various
|
||||
ThirdParty components prior to building OpenFOAM itself.
|
||||
|
||||
### Bootstrapping *(optional)*
|
||||
|
||||
* `makeGcc` _or_ `makeLLVM` <a name="makeGcc"></a>
|
||||
- Makes a third-party [gcc](#gcc-compiler) or [clang](#clang-compiler) installation,
|
||||
which is needed if the system gcc is [too old](#gcc-compiler).
|
||||
If your system compiler is recent enough, you can skip this step.
|
||||
- If you do use this option, you will need the following adjustments to the
|
||||
OpenFOAM `etc/bashrc` or your equivalent `prefs.sh` file:
|
||||
- `WM_COMPILER_TYPE=ThirdParty`
|
||||
- `WM_COMPILER=Gcc48` (for example)
|
||||
- `WM_COMPILER=Clang40` (for example)
|
||||
- or `WM_COMPILER=Clang` and adjust `clang_version` in the OpenFOAM
|
||||
`etc/config.sh/compiler` or equivalent.
|
||||
- More description is contained in the header comments of the
|
||||
`makeGcc` and `makeLLVM` files.
|
||||
- *Attention*: If you are building a newer version of clang, you may need to
|
||||
update your CMake beforehand.
|
||||
* `makeCmake`
|
||||
- Makes a third-party [CMake](#general-packages) installation, which is
|
||||
needed if a system CMake does not exist or is [too old](#min-cmake),
|
||||
- Note that CMake is being used by an number of third-party packages
|
||||
(CGAL, LLVM, ParaView, VTK, ...)
|
||||
so this may become an increasingly important aspect of the build.
|
||||
|
||||
Note that the order of the bootstrapping process may need to be
|
||||
reversed, or even require a few loops. For example, if you may need a
|
||||
newer version of CMake before being able to build LLVM/Clang and
|
||||
subsequently use the newly build clang to create a newer version of
|
||||
CMake in the desired location.
|
||||
|
||||
Additionally, if you are using clang but with ThirdParty locations for
|
||||
gmp/mpfr you will need some extra work. Here is an example:
|
||||
|
||||
* Compile a new ThirdParty clang version:
|
||||
|
||||
./makeLLVM llvm-4.0.1
|
||||
|
||||
* Now adjust the OpenFOAM `prefs.sh` to use the new compiler settings,
|
||||
and update the OpenFOAM environment (eg, `wmRefresh`)
|
||||
|
||||
* Next use (abuse) the `makeGcc` script to compile gmp/mpfr libraries.
|
||||
It is best to pass the desired versions explicitly, and necessary
|
||||
to set the CC/CXX variables so that the correct compiler is used:
|
||||
|
||||
CC=clang CXX=clang++ ./makeGcc gmp-6.1.2 mpfr-4.0.0 gcc-system
|
||||
|
||||
specifying `gcc-system` effectively disables building of gcc,
|
||||
but will build the gmp/mpfr components.
|
||||
|
||||
* As a final step, it will be necessary to add the ThirdParty
|
||||
gmp/mpfr locations in the OpenFOAM config files since they are
|
||||
normally only used in combination with a ThirdParty gcc.
|
||||
The location to make these changes is in the `etc/config.sh/CGAL`,
|
||||
since this is the component that uses the mpfr library.
|
||||
For example,
|
||||
|
||||
gmp_version=gmp-6.1.2
|
||||
mpfr_version=mpfr-4.0.0
|
||||
|
||||
export GMP_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/$gmp_version
|
||||
export GMP_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/$mpfr_version
|
||||
|
||||
* Update update the OpenFOAM environment (eg, `wmRefresh`) again.
|
||||
|
||||
|
||||
### Build Sequence
|
||||
|
||||
1. `Allwmake`
|
||||
- This will be automatically invoked by the top-level OpenFOAM `Allwmake`, but
|
||||
can also be invoked directly to find possible build errors.
|
||||
- Builds an mpi library (openmpi or mpich), scotch decomposition, boost, CGAL, FFTW.
|
||||
- If the optional kahip or metis directories are found, they will also be compiled.
|
||||
2. `makeParaView` *(optional but highly recommended)*
|
||||
- This is optional, but extremely useful for visualization and for
|
||||
run-time post-processing function objects.
|
||||
You can build this at a later point in time, but then you should
|
||||
remember to rebuild the post-processing function objects and the
|
||||
reader module as well.
|
||||
3. Make any additional optional components
|
||||
|
||||
|
||||
#### Optional Components
|
||||
|
||||
`makeADIOS`
|
||||
- Only required for [ADIOS](#parallel) support,
|
||||
which is currently staged in the [add-ons repository][link AddOns].
|
||||
|
||||
`makeCGAL`
|
||||
- Builds [boost](#general-packages) and [CGAL](#general-packages).
|
||||
Automatically invoked from the ThirdParty `Allwmake`,
|
||||
but can be invoked directly to resolve possible build errors.
|
||||
|
||||
`makeFFTW`
|
||||
- Builds [FFTW](#general-packages).
|
||||
Automatically invoked from the ThirdParty `Allwmake`,
|
||||
but can be invoked directly to resolve possible build errors.
|
||||
|
||||
`makeKAHIP`
|
||||
- Builds [KaHIP](#parallel) decomposition library.
|
||||
Automatically invoked from the ThirdParty `Allwmake`,
|
||||
but can be invoked directly to resolve possible build errors.
|
||||
|
||||
`makeMETIS`
|
||||
- Builds [METIS](#parallel) decomposition library.
|
||||
Automatically invoked from the ThirdParty `Allwmake`,
|
||||
but can be invoked directly to resolve possible build errors.
|
||||
|
||||
`makeMGridGen`
|
||||
- Optional agglomeration routines.
|
||||
|
||||
`makeCCMIO`
|
||||
- Only required for conversion to/from STARCD/STARCCM+ files.
|
||||
|
||||
`makeMesa`, `makeVTK`
|
||||
- Additional support for building offscreen rendering components.
|
||||
Useful if you want to render on computer servers without graphics cards.
|
||||
The `makeParaView.example` and `makeVTK.example` files offer some
|
||||
suggestions about compiling such a configuration.
|
||||
|
||||
`makeQt`
|
||||
- Script to build a [Qt](#makeQt), including qmake.
|
||||
- Possibly needed for `makeParaView`.
|
||||
- The associated `etc/relocateQt` may be of independent use.
|
||||
Read the file for more details.
|
||||
|
||||
`makeGperftools`
|
||||
- Build gperftools (originally Google Performance Tools)
|
||||
|
||||
`minCmake`
|
||||
- Scour specified directories for CMakeLists.txt and their cmake_minimum.
|
||||
Report in sorted order.
|
||||
|
||||
`Allclean`
|
||||
- After building, this script may be used to remove intermediate build information
|
||||
and save some disk space.
|
||||
|
||||
|
||||
## Build Notes
|
||||
|
||||
### CGAL
|
||||
- The zlib library and zlib development headers are required.
|
||||
|
||||
### Scotch
|
||||
- The zlib library and zlib development headers are required.
|
||||
|
||||
|
||||
### Mesa
|
||||
- Needed for off-screen rendering.
|
||||
- Building with [mesa-11][link mesa11] and [mesa-13][link mesa13] both
|
||||
seem okay, as does building with [mesa-17][link mesa].
|
||||
- Building with mesa-12 is not possible since it fails to create
|
||||
the necessary `include/GL` directory and `osmesa.h` file.
|
||||
|
||||
### VTK
|
||||
- Needed for off-screen rendering and run-time post-processing without
|
||||
ParaView.
|
||||
- Rather than downloading VTK separately, it is easy to reuse the VTK
|
||||
sources that are bundled with ParaView.
|
||||
For example, by using a symbolic link:
|
||||
|
||||
ln -s ParaView-v5.5.2/VTK VTK-9.0.0
|
||||
|
||||
The appropriate VTK version number can be found from the contents of
|
||||
the `vtkVersion.cmake` file.
|
||||
For example,
|
||||
|
||||
$ cat ParaView-v5.5.2/VTK/CMake/vtkVersion.cmake
|
||||
|
||||
# VTK version number components.
|
||||
set(VTK_MAJOR_VERSION 9)
|
||||
set(VTK_MINOR_VERSION 0)
|
||||
set(VTK_BUILD_VERSION 0)
|
||||
|
||||
### ParaView
|
||||
- Building ParaView requires CMake, qmake and a `qt` development files.
|
||||
Use the `-cmake`, `-qmake` and `-qt-*` options for `makeParaView` as
|
||||
required.
|
||||
See additional notes below about [making Qt](#makeQt) if necessary.
|
||||
|
||||
**NOTE** this step may not be entirely successful for your particular
|
||||
system. Building ParaView itself is generally not a significant problem
|
||||
but its dependency on particular Qt versions can be a problem.
|
||||
|
||||
If you fail at this step due to Qt dependencies, you may have success
|
||||
building a slightly older Qt version. Another alternative may be to
|
||||
use the ParaView-5.4 sources that were included in the ThirdParty-v1712
|
||||
source pack. This, however, has never been tested in combination with
|
||||
the OpenFOAM Catalyst insitu visualization.
|
||||
|
||||
|
||||
#### 5.5.x binary package
|
||||
|
||||
For general functionality, the paraview version distributed with
|
||||
the operating system or a [binary package][download ParaView]])
|
||||
may be sufficient for your needs.
|
||||
- No known issues with the native OpenFOAM reader.
|
||||
|
||||
|
||||
Using a binary package does mean you miss these elements (which may or
|
||||
may not be important for you):
|
||||
- cannot visualize a `blockMeshDict`
|
||||
- cannot build Catalyst insitu visualization
|
||||
- no alternative OpenFOAM reader module for some special features not
|
||||
found in the native OpenFOAM reader.
|
||||
|
||||
#### 5.5.x
|
||||
- Requires patching for the vtk-m configuration (on some systems).
|
||||
- Recommended patching for ParaView Catalyst.
|
||||
- Recommended patching for file series
|
||||
No known issues with the native OpenFOAM reader.
|
||||
|
||||
#### 5.4.x
|
||||
- Compiles without patching.
|
||||
No known issues with the native OpenFOAM reader.
|
||||
|
||||
#### 5.3.0 and older are neither recommended nor supported
|
||||
- Various compilation issues and known bugs.
|
||||
|
||||
### ADIOS
|
||||
- The github release currently requires GNU autoconf tools (eg,
|
||||
autoconf, autoheader, automake) for its configuration.
|
||||
- Some inconsistency in directory names (ADIOS vs. adios) between releases.
|
||||
- Optionally uses bzip2, zlib development headers (eg, libbz2-devel, zlib-devel)
|
||||
for the corresponding compression tranforms.
|
||||
- The [zfp floating point compression][page zfp] library is now included as
|
||||
part of ADIOS.
|
||||
|
||||
### Making Qt <a name="makeQt"></a>
|
||||
- Building a third-party Qt installation (prior to building ParaView) requires
|
||||
some additional effort, but should nonetheless work smoothly.
|
||||
|
||||
1. Download a [*qt-everywhere-opensource-src*][link Qt5] package and
|
||||
unpack in the third-party directory.
|
||||
2. Use the `makeQt` script with the QT version number. For example,
|
||||
|
||||
./makeQt 5.9.3
|
||||
|
||||
3. Build ParaView using this third-party QT. For example,
|
||||
|
||||
./makeParaView -qt-5.9.3 5.5.2
|
||||
|
||||
- ParaView versions prior to 5.3.0 do not properly support QT5.
|
||||
|
||||
- If you relocate the third-party directory to another location
|
||||
(eg, you built in your home directory, but want to install it in a
|
||||
central location), you will need to use the `etc/relocateQt` script
|
||||
afterwards.
|
||||
|
||||
*Note* On some older systems it can be quite difficult to build the
|
||||
latest QT. In these cases, it is sometimes possible to build a
|
||||
slightly older QT (eg, [qt-5.6.3][link Qt56]) instead.
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Versions
|
||||
|
||||
### Gcc Compiler <a name="gcc-compiler"></a>
|
||||
|
||||
The minimum version of gcc required is 4.8.0.
|
||||
|
||||
| Name | Location
|
||||
|-------------------|--------------------------------------------
|
||||
| [gcc][page gcc] | [releases][link gcc]
|
||||
| [gmp][page gmp] | system is often ok, otherwise [download][link gmp]
|
||||
| [mpfr][page mpfr] | system is often ok, otherwise [download][link mpfr]
|
||||
| [mpc][page mpc] | system is often ok, otherwise [download][link mpc]
|
||||
|
||||
|
||||
#### Potential MPFR conflicts
|
||||
|
||||
If you elect to use a third-party version of mpfr, you may experience
|
||||
conflicts with your installed system mpfr.
|
||||
On some systems, mpfr is compiled as *non-threaded*, whereas the
|
||||
third-party will use *threaded* by default.
|
||||
This can cause some confusion at the linker stage, since it may
|
||||
resolve the system mpfr first (and find that it is *non-threaded*).
|
||||
|
||||
You can avoid this by one of two means:
|
||||
1. Use system components for gmp/mpfr/mpc: `makeGcc -system ...`
|
||||
2. Use third-party mpfr, but without threading: `makeGcc -no-threadsafe ...`
|
||||
|
||||
|
||||
#### 32-bit build (on 64-bit)
|
||||
|
||||
If you have a 64-bit system, but wish to have a 32-bit compiler, you
|
||||
will need to enable multi-lib support for Gcc: `makeGcc -multilib`,
|
||||
which is normally disabled, since many (most?) 64-bit systems do not
|
||||
install the 32-bit development libraries by default.
|
||||
|
||||
|
||||
### Clang Compiler <a name="clang-compiler"></a>
|
||||
|
||||
The minimum version of clang required is 3.5.
|
||||
|
||||
*Attention*: If you are building a newer version of clang, you may need to
|
||||
update your CMake beforehand since GNU *configure* can only be used prior
|
||||
to clang version 3.9.
|
||||
|
||||
If your system gcc is particularly old
|
||||
(see [minimum gcc requirements for clang](#min-gcc))
|
||||
you may have additional hurdles to using the newest versions of clang.
|
||||
|
||||
|
||||
| Name | Location
|
||||
|-----------------------|------------------------
|
||||
| [clang][page clang] | [download][link clang] or [newer][newer clang]
|
||||
| [llvm][page llvm] | [download][link llvm] or [newer][newer llvm]
|
||||
| [openmp][page omp] | [download][link omp] or [newer][newer omp]
|
||||
|
||||
|
||||
### General <a name="general-packages"></a>
|
||||
|
||||
| Name | Location
|
||||
|-----------------------|------------------------
|
||||
| [CMake][page cmake] | [download][link cmake]
|
||||
| [boost][page boost] | [download][link boost]
|
||||
| [CGAL][page CGAL] | [download][link CGAL]
|
||||
| [FFTW][page FFTW] | [download][link FFTW]
|
||||
| [ADF/CGNS][page CGNS], ccm | [link ccmio][link ccmio]
|
||||
| gperftools | [repo][repo gperftools] or [download][link gperftools]
|
||||
|
||||
|
||||
### Parallel Processing <a name="parallel"></a>
|
||||
|
||||
| Name | Location
|
||||
|-----------------------|------------------------
|
||||
| [openmpi][page openmpi] | [download][link openmpi]. The newer [openmpi][newer openmpi] make exhibit stability issues.
|
||||
| [adios][page adios] | [repo][repo adios] or [github download][link adios] or [alt download][altlink adios]
|
||||
| [scotch, ptscotch][page scotch] | [download][link scotch]
|
||||
| [kahip][page kahip] | [download][link kahip]
|
||||
| [metis][page metis] | [download][link metis]
|
||||
|
||||
|
||||
### Visualization <a name="viz-version"></a>
|
||||
|
||||
| Name | Location
|
||||
|-----------------------|------------------------
|
||||
| [MESA][page mesa] | [download][link mesa] or [older 13][link mesa13], [older 11][link mesa11]
|
||||
| [ParaView][page ParaView] | [download][link ParaView] or [older paraview-54][link ParaView54] or [binaries][download ParaView]
|
||||
| [Qt][page Qt] | [QT5][link Qt5] for ParaView-5.3.0 and later, or the [older qt-56][link Qt56] for older systems.
|
||||
|
||||
|
||||
### CMake Minimum Requirements <a name="min-cmake"></a>
|
||||
|
||||
The minimum CMake requirements for building various components.
|
||||
|
||||
2.8 llvm-3.4.2
|
||||
2.8.11 CGAL-4.9
|
||||
2.8.11 CGAL-4.11
|
||||
2.8.12.2 llvm-3.7.0
|
||||
2.8.12.2 llvm-3.8.0
|
||||
2.8.4 cmake-3.6.0
|
||||
3.3 ParaView-5.5.2
|
||||
3.4.3 llvm-3.9.1
|
||||
3.4.3 llvm-4.0.0 - llvm-6.0.0
|
||||
3.6 ADIOS2
|
||||
|
||||
|
||||
### GCC Minimum Requirements <a name="min-gcc"></a>
|
||||
|
||||
The minimum gcc/g++ requirements for building various components.
|
||||
|
||||
4.7 llvm-3.7.0
|
||||
4.7 llvm-3.6.2
|
||||
4.7 llvm-3.5.2
|
||||
4.4 llvm-3.4.2
|
||||
|
||||
If your system gcc/g++ is too old to build the desired llvm/clang
|
||||
version, you may need to build a lower llvm/clang version and then use
|
||||
that clang compiler for building the newer llvm/clang version.
|
||||
|
||||
|
||||
<!-- gcc-related -->
|
||||
[page gcc]: http://gcc.gnu.org/releases.html
|
||||
[page gmp]: http://gmplib.org/
|
||||
[page mpfr]: http://www.mpfr.org/
|
||||
[page mpc]: http://www.multiprecision.org/
|
||||
|
||||
[link gcc]: http://gcc.gnu.org/releases.html
|
||||
[link gmp]: ftp://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2
|
||||
[link mpfr]: ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.bz2
|
||||
[link mpc]: ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
|
||||
|
||||
|
||||
<!-- clang-related -->
|
||||
[page llvm]: http://llvm.org/
|
||||
[page clang]: http://clang.llvm.org/
|
||||
[page omp]: http://openmp.llvm.org/
|
||||
|
||||
[link clang]: http://llvm.org/releases/3.7.1/cfe-3.7.1.src.tar.xz
|
||||
[link llvm]: http://llvm.org/releases/3.7.1/llvm-3.7.1.src.tar.xz
|
||||
[link omp]: http://llvm.org/releases/3.7.1/openmp-3.7.1.src.tar.xz
|
||||
|
||||
[newer clang]: http://llvm.org/releases/4.0.1/cfe-4.0.1.src.tar.xz
|
||||
[newer llvm]: http://llvm.org/releases/4.0.1/llvm-4.0.1.src.tar.xz
|
||||
[newer omp]: http://llvm.org/releases/4.0.1/openmp-4.0.1.src.tar.xz
|
||||
|
||||
|
||||
<!-- parallel -->
|
||||
[page adios]: https://www.olcf.ornl.gov/center-projects/adios/
|
||||
[repo adios]: https://github.com/ornladios/ADIOS
|
||||
[link adios]: https://github.com/ornladios/ADIOS/archive/v1.13.0.tar.gz
|
||||
[altlink adios]: http://users.nccs.gov/%7Epnorbert/adios-1.13.0.tar.gz
|
||||
[page zfp]: http://computation.llnl.gov/projects/floating-point-compression/zfp-versions
|
||||
|
||||
[page scotch]: https://www.labri.fr/perso/pelegrin/scotch/
|
||||
[link scotch]: https://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz
|
||||
[link scotch]: https://gforge.inria.fr/frs/download.php/file/37398/scotch_6.0.5a.tar.gz
|
||||
|
||||
[page kahip]: http://algo2.iti.kit.edu/documents/kahip/
|
||||
[link kahip]: http://algo2.iti.kit.edu/schulz/software_releases/KaHIP_2.00.tar.gz
|
||||
|
||||
[page metis]: http://glaros.dtc.umn.edu/gkhome/metis/metis/overview
|
||||
[link metis]: http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz
|
||||
|
||||
[page openmpi]: http://www.open-mpi.org/
|
||||
[link openmpi]: https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.4.tar.bz2
|
||||
[newer openmpi]: https://www.open-mpi.org/software/ompi/v2.1/downloads/openmpi-2.1.1.tar.bz2
|
||||
|
||||
|
||||
<!-- general -->
|
||||
[page cmake]: http://www.cmake.org/
|
||||
[link cmake]: http://www.cmake.org/files/v3.5/cmake-3.5.2.tar.gz
|
||||
|
||||
[page boost]: http://boost.org
|
||||
[link boost]: https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2
|
||||
|
||||
[page CGAL]: http://cgal.org
|
||||
[link CGAL]: https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.9.1/CGAL-4.9.1.tar.xz
|
||||
|
||||
[page FFTW]: http://www.fftw.org/
|
||||
[link FFTW]: http://www.fftw.org/fftw-3.3.7.tar.gz
|
||||
|
||||
[page cgns]: http://cgns.github.io/
|
||||
[link ccmio]: http://portal.nersc.gov/project/visit/third_party/libccmio-2.6.1.tar.gz (check usage conditions)
|
||||
[altlink ccmio]: http://portal.nersc.gov/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz (check usage conditions)
|
||||
|
||||
[repo gperftools]: https://github.com/gperftools/gperftools
|
||||
[link gperftools]: https://github.com/gperftools/gperftools/releases/download/gperftools-2.5/gperftools-2.5.tar.gz
|
||||
|
||||
|
||||
<!-- Visualization -->
|
||||
|
||||
[page ParaView]: http://www.paraview.org/
|
||||
[download ParaView]: https://www.paraview.org/download/
|
||||
[link ParaView54]: http://www.paraview.org/files/v5.4/ParaView-v5.4.1.tar.gz
|
||||
[link ParaView]: http://www.paraview.org/files/v5.5/ParaView-v5.5.2.tar.gz
|
||||
|
||||
[page mesa]: http://mesa3d.org/
|
||||
[link mesa]: ftp://ftp.freedesktop.org/pub/mesa/mesa-17.1.1.tar.xz
|
||||
[link mesa13]: ftp://ftp.freedesktop.org/pub/mesa/13.0.6/mesa-13.0.6.tar.xz
|
||||
[link mesa11]: ftp://ftp.freedesktop.org/pub/mesa/older-versions/11.x/11.2.2/mesa-11.2.2.tar.xz
|
||||
|
||||
[page Qt]: https://www.qt.io/download-open-source/
|
||||
[repo Qt]: http://code.qt.io/cgit/qt-creator/qt-creator.git
|
||||
[link Qt56]: http://download.qt.io/official_releases/qt/5.6/5.6.3/single/qt-everywhere-opensource-src-5.6.3.tar.xz
|
||||
[link Qt5]: http://download.qt.io/official_releases/qt/5.9/5.9.3/single/qt-everywhere-opensource-src-5.9.3.tar.xz
|
||||
|
||||
<!-- OpenFOAM -->
|
||||
|
||||
[link AddOns]: https://develop.openfoam.com/Community/OpenFOAM-addOns
|
||||
[link community-projects]: http://www.openfoam.com/community/projects.php
|
||||
|
||||
---
|
||||
|
||||
<!-- Standard Footer -->
|
||||
## Additional OpenFOAM Links
|
||||
|
||||
- [Community AddOns][link AddOns] repository
|
||||
- [Collaborative and Community-based Developments][link community-projects]
|
||||
- [Download](http://www.openfoam.com/download) and
|
||||
[installation instructions](http://www.openfoam.com/code/build-guide.php)
|
||||
- [Documentation](http://www.openfoam.com/documentation)
|
||||
- [Reporting bugs/issues](http://www.openfoam.com/code/bug-reporting.php) (including bugs/suggestions/feature requests) in OpenFOAM
|
||||
- [Contacting OpenCFD](http://www.openfoam.com/contact)
|
||||
|
||||
---
|
||||
|
||||
Copyright 2016-2018 OpenCFD Ltd
|
||||
90
README.md
Normal file
90
README.md
Normal file
@ -0,0 +1,90 @@
|
||||
<!--
|
||||
|--------------------------------------------------------------------------|
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | |
|
||||
| \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd. |
|
||||
| \\/ M anipulation | |
|
||||
|--------------------------------------------------------------------------|
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# OpenFOAM® ThirdParty
|
||||
|
||||
OpenFOAM depends to a certain extent on third-party libraries
|
||||
(*opensource only*). It also provides some interfaces to *opensource* or
|
||||
*proprietary* libraries. This third-party package contains configurations and
|
||||
scripts for building third-party packages. It should normally only be used in
|
||||
conjunction with the corresponding OpenFOAM version.
|
||||
|
||||
## Configuration of Third-Party Versions
|
||||
|
||||
For most of the build scripts, the default software version
|
||||
is provided by an appropriate OpenFOAM `etc/config.sh/...` entry.
|
||||
This approach avoids duplicate entries for the default versions and
|
||||
ensures the best overall consistency between the OpenFOAM installation
|
||||
and its corresponding third-party installation.
|
||||
|
||||
Nonethess, the distributed make scripts can generally be used for a
|
||||
variety of versions of the third-party libraries, with the software
|
||||
version specified on the command-line.
|
||||
|
||||
---
|
||||
|
||||
## Before Starting
|
||||
|
||||
0. Review the [system requirements](http://www.openfoam.com/documentation/system-requirements.php)
|
||||
and decide on the following:
|
||||
* compiler type/version (you may need a third-party compiler installation).
|
||||
* MPI type/version.
|
||||
* ParaView type/version.
|
||||
* CMake type/version, ...
|
||||
1. Adjust the OpenFOAM `etc/bashrc`, `etc/config.sh/...` or equivalent
|
||||
`prefs.sh` files to reflect your preferred configuration.
|
||||
2. Source the updated OpenFOAM environment
|
||||
|
||||
---
|
||||
|
||||
## Building
|
||||
|
||||
Many components of ThirdParty are *optional* or are invoked
|
||||
automatically as part of the top-level OpenFOAM `Allwmake`.
|
||||
Nonetheless it may be necessary or useful to build particular
|
||||
ThirdParty components prior to building OpenFOAM itself.
|
||||
|
||||
### Build Sequence
|
||||
|
||||
1. `makeGcc` _or_ `makeLLVM` *(optional)*
|
||||
2. `makeCmake` *(optional)*
|
||||
3. `Allwmake`
|
||||
- This will be automatically invoked by the top-level OpenFOAM `Allwmake`.
|
||||
4. `makeParaView` *(optional but highly recommended)*
|
||||
5. Any other additional optional components
|
||||
|
||||
|
||||
### Build Details
|
||||
|
||||
More details can be found the ThirdParty BUILD.md information.
|
||||
|
||||
<!-- OpenFOAM -->
|
||||
|
||||
[link AddOns]: https://develop.openfoam.com/Community/OpenFOAM-addOns
|
||||
[link community-projects]: http://www.openfoam.com/community/projects.php
|
||||
|
||||
---
|
||||
|
||||
<!-- Standard Footer -->
|
||||
## Additional OpenFOAM Links
|
||||
|
||||
- [Community AddOns][link AddOns] repository
|
||||
- [Collaborative and Community-based Developments][link community-projects]
|
||||
- [Download](http://www.openfoam.com/download) and
|
||||
[installation instructions](http://www.openfoam.com/code/build-guide.php)
|
||||
- [Documentation](http://www.openfoam.com/documentation)
|
||||
- [Reporting bugs/issues](http://www.openfoam.com/code/bug-reporting.php) (including bugs/suggestions/feature requests) in OpenFOAM
|
||||
- [Contacting OpenCFD](http://www.openfoam.com/contact)
|
||||
|
||||
---
|
||||
|
||||
Copyright 2016-2017 OpenCFD Ltd
|
||||
96
README.org
96
README.org
@ -1,96 +0,0 @@
|
||||
# -*- mode: org; -*-
|
||||
#
|
||||
#+TITLE: OpenFOAM Third-Party packages
|
||||
#+AUTHOR: The OpenFOAM Foundation / OpenCFD Ltd.
|
||||
#+DATE: 2016-06-28
|
||||
#+LINK: http://www.openfoam.org
|
||||
#+OPTIONS: author:nil ^:{}
|
||||
# Copyright (c) 2014-2016 OpenFOAM Foundation.
|
||||
# Copyright (c) 2016 OpenCFD Ltd.
|
||||
|
||||
* Description
|
||||
Scripts for building third-party packages.
|
||||
* Build Order:
|
||||
+ makeGcc (recommended if the system gcc is < 4.7)
|
||||
+ Allwmake (Builds OpenMPI, Scotch etc.)
|
||||
+ makeCmake (if the system cmake version is < 2.8.8)
|
||||
+ makeParaView
|
||||
*** Optional Build Components:
|
||||
+ makeLLVM (Replaces makeGcc in the above description
|
||||
- to use clang as compiler)
|
||||
+ makeCCMIO (Only required for conversion of STAR-CCM+ meshes)
|
||||
+ Allclean (Only required to save disk space)
|
||||
* Versions and locations to download the third party packages
|
||||
*** Gcc C++ Compiler
|
||||
The minimum version of gcc required is 4.5.0
|
||||
+ gcc http://gcc.gnu.org/releases.html
|
||||
+ gmp http://gmplib.org/
|
||||
ftp://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2
|
||||
+ mpfr http://www.mpfr.org/
|
||||
ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.bz2
|
||||
+ mpc http://www.multiprecision.org/
|
||||
ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
|
||||
*** Parallel Processing
|
||||
***** Scotch
|
||||
+ Scotch/PtScotch: https://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz
|
||||
***** OpenMPI
|
||||
+ OpenMPI: http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.2.tar.bz2
|
||||
*** ParaView
|
||||
+ cmake http://www.cmake.org/files/v3.5/cmake-3.5.2.tar.gz
|
||||
+ ParaView-4.4.0 http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz
|
||||
+ ParaView-5.0.1 http://www.paraview.org/files/v5.0/ParaView-v5.0.1-source.tar.gz
|
||||
but may need patching to compile (See [[Notes]]).
|
||||
*** CGAL
|
||||
+ CGAL https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.8/CGAL-4.8.tar.xz
|
||||
+ boost https://sourceforge.net/projects/boost/files/boost/1.61.0/boost_1_61_0.tar.bz2/download
|
||||
*** Miscellaneous
|
||||
+ FFTW http://www.fftw.org/fftw-3.3.4.tar.gz
|
||||
+ libccmio http://portal.nersc.gov/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz
|
||||
* Notes
|
||||
*** Building ParaView-4.3.1/4.4.0/5.0.0/5.0.1
|
||||
The ParaView-4.3.1/4.4.0/5.0.0 source-pack provided by KitWare will not
|
||||
build and install correctly without a minor correction: lines 653-656
|
||||
(650-653 in ParaView-5.0.0, 659-662 in ParaView-5.0.1) must be removed or
|
||||
commented from file
|
||||
/ThirdParty-???/ParaView-[45].?.?/Qt/Components/CMakeLists.txt/ after
|
||||
unpacking and renaming the ParaView-[45].?.? directory. This is because the
|
||||
file ui_pqExportStateWizard.h referred to in
|
||||
#+begin_src C
|
||||
if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
|
||||
DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
|
||||
endif()
|
||||
#+end_src
|
||||
does not exist and cannot be installed causing the build and installation to
|
||||
fail.
|
||||
|
||||
Additionally for ParaView-4.4.0 there is a bug in the STL reader.
|
||||
(see http://www.openfoam.org/mantisbt/view.php?id=1887).
|
||||
|
||||
For ParaView-4.4.0 and ParaView-5.0.1,
|
||||
the necessary patches are supplied with the ThirdParty repository
|
||||
(see the etc/patches directory) and are applied when building paraview.
|
||||
|
||||
*** Building ParaView-5.0.1 with gcc-6.1.0
|
||||
***** Add support for gcc-6.?.?
|
||||
The following cmake files
|
||||
+ ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake
|
||||
+ ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake
|
||||
specifically limit the gcc versions supported.
|
||||
To add support gcc-6.?.? replace the '[345]' with '[3456]'.
|
||||
|
||||
This patch is also supplied with the ThirdParty repository and
|
||||
applied when building paraview.
|
||||
|
||||
***** SciberQuestToolKit
|
||||
The SciberQuestToolKit plugin fails to compile with gcc-6.1.0 and causes
|
||||
the compilation of ParaView to halt. The easiest solution is to delete
|
||||
the ParaView-5.0.1/Plugins/SciberQuestToolKit directory.
|
||||
*** Building ParaView-4.1.0
|
||||
On Ubuntu 14.10 and higher, OpenSuSE 13.2 and probably other recent
|
||||
GNU/Linux distributions there is an issue in the GL libraries requiring a
|
||||
change to the vtkXOpenGLRenderWindow.cxx file in ParaView: Uncomment line 30
|
||||
|
||||
#define GLX_GLXEXT_LEGACY
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
80
SOURCES.txt
Normal file
80
SOURCES.txt
Normal file
@ -0,0 +1,80 @@
|
||||
Short summary of third-party software versions for recent OpenFOAM versions.
|
||||
|
||||
OpenFOAM-1806
|
||||
---------------
|
||||
CGAL-4.9.1
|
||||
ParaView-5.5.2 *update*
|
||||
boost_1_64_0
|
||||
fftw-3.3.7
|
||||
openmpi-1.10.4
|
||||
scotch_6.0.3
|
||||
kahip-2.00d
|
||||
|
||||
|
||||
OpenFOAM-1712
|
||||
---------------
|
||||
CGAL-4.9.1
|
||||
ParaView-5.4.1 *minor*
|
||||
boost_1_64_0
|
||||
fftw-3.3.7 *minor*
|
||||
openmpi-1.10.4
|
||||
scotch_6.0.3
|
||||
kahip-2.00d *new*
|
||||
|
||||
|
||||
OpenFOAM-1706
|
||||
---------------
|
||||
CGAL-4.9.1 *minor*
|
||||
ParaView-5.4.0 *update*
|
||||
boost_1_64_0 *update*
|
||||
fftw-3.3.6-pl1 *minor*
|
||||
openmpi-1.10.4
|
||||
scotch_6.0.3
|
||||
|
||||
|
||||
OpenFOAM-1612
|
||||
---------------
|
||||
CGAL-4.9 *update*
|
||||
ParaView-5.0.1 *update*
|
||||
boost_1_62_0 *update*
|
||||
fftw-3.3.5 *minor*
|
||||
openmpi-1.10.4 *minor*
|
||||
scotch_6.0.3
|
||||
|
||||
|
||||
OpenFOAM-1606
|
||||
---------------
|
||||
CGAL-4.8 *update*
|
||||
ParaView-5.0.1 *update*
|
||||
boost_1_61_0 *new*
|
||||
fftw-3.3.4 *new*
|
||||
openmpi-1.10.2 *minor*
|
||||
scotch_6.0.3
|
||||
|
||||
|
||||
OpenFOAM-3.0+
|
||||
---------------
|
||||
CGAL-4.7 *update*
|
||||
ParaView-4.4.0 *update*
|
||||
openmpi-1.10.0 *update*
|
||||
scotch_6.0.3
|
||||
|
||||
|
||||
OpenFOAM-2.4
|
||||
---------------
|
||||
CGAL-4.6 *update*
|
||||
ParaView-4.1.0
|
||||
openmpi-1.8.5 *update*
|
||||
scotch_6.0.3 *update*
|
||||
|
||||
|
||||
---------------
|
||||
OpenFOAM-2.3
|
||||
---------------
|
||||
CGAL-4.3
|
||||
ParaView-4.1.0
|
||||
openmpi-1.6.5
|
||||
scotch_6.0.0
|
||||
|
||||
|
||||
---------------
|
||||
70
etc/makeFiles/kahip/files
Normal file
70
etc/makeFiles/kahip/files
Normal file
@ -0,0 +1,70 @@
|
||||
/* NOTE: make any changes to this file in etc/wmakeFiles/ */
|
||||
|
||||
interface/kaHIP_interface.cpp
|
||||
|
||||
/* List obtained from SConscript, libkaffpa_files = [ ... ] entry */
|
||||
|
||||
data_structure/graph_hierarchy.cpp
|
||||
algorithms/strongly_connected_components.cpp
|
||||
algorithms/topological_sort.cpp
|
||||
algorithms/push_relabel.cpp
|
||||
io/graph_io.cpp
|
||||
tools/quality_metrics.cpp
|
||||
tools/random_functions.cpp
|
||||
tools/graph_extractor.cpp
|
||||
tools/misc.cpp
|
||||
tools/partition_snapshooter.cpp
|
||||
partition/graph_partitioner.cpp
|
||||
partition/w_cycles/wcycle_partitioner.cpp
|
||||
partition/coarsening/coarsening.cpp
|
||||
partition/coarsening/contraction.cpp
|
||||
partition/coarsening/edge_rating/edge_ratings.cpp
|
||||
partition/coarsening/matching/matching.cpp
|
||||
partition/coarsening/matching/random_matching.cpp
|
||||
partition/coarsening/matching/gpa/path.cpp
|
||||
partition/coarsening/matching/gpa/gpa_matching.cpp
|
||||
partition/coarsening/matching/gpa/path_set.cpp
|
||||
partition/coarsening/clustering/node_ordering.cpp
|
||||
partition/coarsening/clustering/size_constraint_label_propagation.cpp
|
||||
partition/initial_partitioning/initial_partitioning.cpp
|
||||
partition/initial_partitioning/initial_partitioner.cpp
|
||||
partition/initial_partitioning/initial_partition_bipartition.cpp
|
||||
partition/initial_partitioning/initial_refinement/initial_refinement.cpp
|
||||
partition/initial_partitioning/bipartition.cpp
|
||||
partition/initial_partitioning/initial_node_separator.cpp
|
||||
partition/uncoarsening/uncoarsening.cpp
|
||||
partition/uncoarsening/separator/area_bfs.cpp
|
||||
partition/uncoarsening/separator/vertex_separator_algorithm.cpp
|
||||
partition/uncoarsening/separator/vertex_separator_flow_solver.cpp
|
||||
partition/uncoarsening/refinement/cycle_improvements/greedy_neg_cycle.cpp
|
||||
partition/uncoarsening/refinement/cycle_improvements/problem_factory.cpp
|
||||
partition/uncoarsening/refinement/cycle_improvements/augmented_Qgraph.cpp
|
||||
partition/uncoarsening/refinement/mixed_refinement.cpp
|
||||
partition/uncoarsening/refinement/label_propagation_refinement/label_propagation_refinement.cpp
|
||||
partition/uncoarsening/refinement/refinement.cpp
|
||||
partition/uncoarsening/refinement/quotient_graph_refinement/2way_fm_refinement/two_way_fm.cpp
|
||||
partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement/two_way_flow_refinement.cpp
|
||||
partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement/boundary_bfs.cpp
|
||||
partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement/flow_solving_kernel/cut_flow_problem_solver.cpp
|
||||
partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement/most_balanced_minimum_cuts/most_balanced_minimum_cuts.cpp
|
||||
partition/uncoarsening/refinement/quotient_graph_refinement/quotient_graph_refinement.cpp
|
||||
partition/uncoarsening/refinement/quotient_graph_refinement/complete_boundary.cpp
|
||||
partition/uncoarsening/refinement/quotient_graph_refinement/partial_boundary.cpp
|
||||
partition/uncoarsening/refinement/quotient_graph_refinement/quotient_graph_scheduling/quotient_graph_scheduling.cpp
|
||||
partition/uncoarsening/refinement/quotient_graph_refinement/quotient_graph_scheduling/simple_quotient_graph_scheduler.cpp
|
||||
partition/uncoarsening/refinement/quotient_graph_refinement/quotient_graph_scheduling/active_block_quotient_graph_scheduler.cpp
|
||||
partition/uncoarsening/refinement/kway_graph_refinement/kway_graph_refinement.cpp
|
||||
partition/uncoarsening/refinement/kway_graph_refinement/kway_graph_refinement_core.cpp
|
||||
partition/uncoarsening/refinement/kway_graph_refinement/kway_graph_refinement_commons.cpp
|
||||
partition/uncoarsening/refinement/cycle_improvements/augmented_Qgraph_fabric.cpp
|
||||
partition/uncoarsening/refinement/cycle_improvements/advanced_models.cpp
|
||||
partition/uncoarsening/refinement/kway_graph_refinement/multitry_kway_fm.cpp
|
||||
partition/uncoarsening/refinement/node_separators/greedy_ns_local_search.cpp
|
||||
partition/uncoarsening/refinement/node_separators/fm_ns_local_search.cpp
|
||||
partition/uncoarsening/refinement/node_separators/localized_fm_ns_local_search.cpp
|
||||
algorithms/cycle_search.cpp
|
||||
partition/uncoarsening/refinement/cycle_improvements/cycle_refinement.cpp
|
||||
partition/uncoarsening/refinement/tabu_search/tabu_search.cpp
|
||||
|
||||
|
||||
LIB = $(FOAM_EXT_LIBBIN)/libkahip
|
||||
15
etc/makeFiles/kahip/options
Normal file
15
etc/makeFiles/kahip/options
Normal file
@ -0,0 +1,15 @@
|
||||
/*
|
||||
* NOTE: make any changes to this file in etc/wmakeFiles/
|
||||
* Must use -DNDEBUG to disable kahip debug mode.
|
||||
* Using -DMODE_NODESEP is not strictly required for building the library.
|
||||
*/
|
||||
|
||||
EXE_INC = \
|
||||
${c++LESSWARN} \
|
||||
${COMP_OPENMP} \
|
||||
-DNDEBUG -DMODE_NODESEP \
|
||||
-I$(KAHIP_LIB_SRC) \
|
||||
-I$(KAHIP_LIB_SRC)/partition \
|
||||
-I$(KAHIP_LIB_SRC)/partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement
|
||||
|
||||
LIB_LIBS =
|
||||
22
etc/makeFiles/libccmio/files
Normal file
22
etc/makeFiles/libccmio/files
Normal file
@ -0,0 +1,22 @@
|
||||
/* NOTE: make any changes to this file in etc/makeFiles/ */
|
||||
|
||||
libadf/ADF_interface.c
|
||||
libadf/ADF_internals.c
|
||||
|
||||
libccmio/ccmio.c
|
||||
libccmio/ccmiocore.c
|
||||
libccmio/ccmioprivate.c
|
||||
libccmio/ccmioutility.c
|
||||
libccmio/ccmioversion.c
|
||||
|
||||
/*
|
||||
* CGNS library not needed by ccmio, retain for documentation purposes only
|
||||
*
|
||||
libcgns/adf_cond.c
|
||||
libcgns/adf_ftoc.c
|
||||
libcgns/cgns_error.c
|
||||
libcgns/cgns_internals.c
|
||||
libcgns/cgnslib.c
|
||||
*/
|
||||
|
||||
LIB = $(FOAM_EXT_LIBBIN)/libccmio
|
||||
3
etc/makeFiles/libccmio/options
Normal file
3
etc/makeFiles/libccmio/options
Normal file
@ -0,0 +1,3 @@
|
||||
/* NOTE: make any changes to this file in etc/makeFiles/ */
|
||||
|
||||
/* EXE_INC = */
|
||||
45
etc/makeFiles/scotch/Makefile.inc.OpenFOAM-Darwin.shlib
Normal file
45
etc/makeFiles/scotch/Makefile.inc.OpenFOAM-Darwin.shlib
Normal file
@ -0,0 +1,45 @@
|
||||
#-------------------------------*- makefile -*---------------------------------
|
||||
# OpenFOAM notes:
|
||||
#
|
||||
# WM_CFLAGS, WM_LDFLAGS contain "-m32 -fPIC" etc
|
||||
# WM_LABEL_SIZE == 64 for 'long' instead of 'int' for OpenFOAM labels
|
||||
#
|
||||
# - compiled without pthread
|
||||
#
|
||||
# Normally set CCS, CCP by caller
|
||||
|
||||
EXE =
|
||||
LIB = .dylib
|
||||
OBJ = .o
|
||||
|
||||
AR = $(CC)
|
||||
ARFLAGS = $(WM_CFLAGS) -dynamiclib -undefined dynamic_lookup -o
|
||||
CCS ?= $(CC)
|
||||
CCP ?= mpicc
|
||||
CCD = $(CCP)
|
||||
CFLAGS = $(WM_CFLAGS) -O3 \
|
||||
-DCOMMON_FILE_COMPRESS_GZ \
|
||||
-DCOMMON_RANDOM_FIXED_SEED \
|
||||
-DSCOTCH_DETERMINISTIC \
|
||||
-DSCOTCH_RENAME \
|
||||
-Drestrict=__restrict
|
||||
|
||||
# 32-bit vs. 64-bit labels
|
||||
ifeq ($(WM_LABEL_SIZE),64)
|
||||
CFLAGS += -DINTSIZE64
|
||||
endif
|
||||
|
||||
CLIBFLAGS =
|
||||
LDFLAGS = $(WM_LDFLAGS) -lz -lm
|
||||
|
||||
MAKE = make
|
||||
CP = cp
|
||||
CAT = cat
|
||||
LN = ln
|
||||
MKDIR = mkdir
|
||||
MV = mv
|
||||
RANLIB = echo
|
||||
LEX = flex -Pscotchyy -olex.yy.c
|
||||
YACC = bison -pscotchyy -y -b y
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
45
etc/makeFiles/scotch/Makefile.inc.OpenFOAM-Linux.shlib
Normal file
45
etc/makeFiles/scotch/Makefile.inc.OpenFOAM-Linux.shlib
Normal file
@ -0,0 +1,45 @@
|
||||
#-------------------------------*- makefile -*---------------------------------
|
||||
# OpenFOAM notes:
|
||||
#
|
||||
# WM_CFLAGS, WM_LDFLAGS contain "-m32 -fPIC" etc
|
||||
# WM_LABEL_SIZE == 64 for 'long' instead of 'int' for OpenFOAM labels
|
||||
#
|
||||
# - compiled without pthread
|
||||
#
|
||||
# Normally set CCS, CCP by caller
|
||||
|
||||
EXE =
|
||||
LIB = .so
|
||||
OBJ = .o
|
||||
|
||||
AR = $(CC)
|
||||
ARFLAGS = $(WM_CFLAGS) -shared -o
|
||||
CCS ?= $(CC)
|
||||
CCP ?= mpicc
|
||||
CCD = $(CCP)
|
||||
CFLAGS = $(WM_CFLAGS) -O3 \
|
||||
-DCOMMON_FILE_COMPRESS_GZ \
|
||||
-DCOMMON_RANDOM_FIXED_SEED \
|
||||
-DSCOTCH_DETERMINISTIC \
|
||||
-DSCOTCH_RENAME \
|
||||
-Drestrict=__restrict
|
||||
|
||||
# 32-bit vs. 64-bit labels
|
||||
ifeq ($(WM_LABEL_SIZE),64)
|
||||
CFLAGS += -DINTSIZE64
|
||||
endif
|
||||
|
||||
CLIBFLAGS = -shared
|
||||
LDFLAGS = -Xlinker --no-as-needed $(WM_LDFLAGS) -lz -lm -lrt
|
||||
|
||||
MAKE = make
|
||||
CP = cp
|
||||
CAT = cat
|
||||
LN = ln
|
||||
MKDIR = mkdir
|
||||
MV = mv
|
||||
RANLIB = echo
|
||||
LEX = flex -Pscotchyy -olex.yy.c
|
||||
YACC = bison -pscotchyy -y -b y
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -1,13 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# simple script to generate patches
|
||||
paraview=ParaView-5.0.1
|
||||
|
||||
for i in \
|
||||
$paraview/VTK/CMake/vtkCompilerExtras.cmake \
|
||||
$paraview/VTK/CMake/GenerateExportHeader.cmake \
|
||||
$paraview/Qt/Components/CMakeLists.txt \
|
||||
;
|
||||
do
|
||||
diff -uw $i.orig $i
|
||||
done
|
||||
@ -1,50 +0,0 @@
|
||||
--- ParaView-4.4.0/VTK/IO/Geometry/vtkSTLReader.cxx.orig 2015-09-11 19:59:24.000000000 +0200
|
||||
+++ ParaView-4.4.0/VTK/IO/Geometry/vtkSTLReader.cxx 2016-06-19 12:59:50.769770143 +0200
|
||||
@@ -448,7 +448,7 @@
|
||||
done = done || (fscanf(fp,"%s", line)==EOF);
|
||||
}
|
||||
}
|
||||
- if (!done)
|
||||
+ else if (!done)
|
||||
{
|
||||
done = (fgets(line, 255, fp) == 0);
|
||||
lineCount++;
|
||||
--- ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake.orig 2016-03-28 17:07:10.000000000 +0200
|
||||
+++ ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake 2016-06-11 15:10:14.820958942 +0200
|
||||
@@ -32,7 +32,7 @@
|
||||
OUTPUT_VARIABLE _gcc_version_info
|
||||
ERROR_VARIABLE _gcc_version_info)
|
||||
|
||||
- string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
|
||||
+ string (REGEX MATCH "[3-6]\\.[0-9]\\.[0-9]*"
|
||||
_gcc_version "${_gcc_version_info}")
|
||||
if(NOT _gcc_version)
|
||||
string (REGEX REPLACE ".*\\(GCC\\).*([34]\\.[0-9]).*" "\\1.0"
|
||||
--- ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake.orig 2016-03-28 17:07:10.000000000 +0200
|
||||
+++ ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake 2016-06-11 15:12:16.344357746 +0200
|
||||
@@ -166,7 +166,7 @@
|
||||
execute_process(COMMAND ${CMAKE_C_COMPILER} ARGS --version
|
||||
OUTPUT_VARIABLE _gcc_version_info
|
||||
ERROR_VARIABLE _gcc_version_info)
|
||||
- string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
|
||||
+ string(REGEX MATCH "[3-6]\\.[0-9]\\.[0-9]*"
|
||||
_gcc_version "${_gcc_version_info}")
|
||||
# gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the
|
||||
# patch level, handle this here:
|
||||
--- ParaView-5.0.1/Qt/Components/CMakeLists.txt.orig 2016-06-13 09:27:27.827849525 +0200
|
||||
+++ ParaView-5.0.1/Qt/Components/CMakeLists.txt 2016-06-13 09:29:28.599318445 +0200
|
||||
@@ -656,10 +656,10 @@
|
||||
#the pqSGExportStateWizard has subclasses that directly access
|
||||
#the UI file, and currently we don't have a clean way to break this hard
|
||||
#dependency, so for no we install this ui file.
|
||||
-if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
|
||||
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
|
||||
- DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
|
||||
-endif()
|
||||
+#OPENFOAM patch#if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
|
||||
+#OPENFOAM patch# install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
|
||||
+#OPENFOAM patch# DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
|
||||
+#OPENFOAM patch#endif()
|
||||
|
||||
#IF (NOT PV_INSTALL_NO_DEVELOPMENT)
|
||||
# # Headers
|
||||
@ -1,39 +0,0 @@
|
||||
--- ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake.orig 2016-03-28 17:07:10.000000000 +0200
|
||||
+++ ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake 2016-06-11 15:10:14.820958942 +0200
|
||||
@@ -32,7 +32,7 @@
|
||||
OUTPUT_VARIABLE _gcc_version_info
|
||||
ERROR_VARIABLE _gcc_version_info)
|
||||
|
||||
- string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
|
||||
+ string (REGEX MATCH "[3-6]\\.[0-9]\\.[0-9]*"
|
||||
_gcc_version "${_gcc_version_info}")
|
||||
if(NOT _gcc_version)
|
||||
string (REGEX REPLACE ".*\\(GCC\\).*([34]\\.[0-9]).*" "\\1.0"
|
||||
--- ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake.orig 2016-03-28 17:07:10.000000000 +0200
|
||||
+++ ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake 2016-06-11 15:12:16.344357746 +0200
|
||||
@@ -166,7 +166,7 @@
|
||||
execute_process(COMMAND ${CMAKE_C_COMPILER} ARGS --version
|
||||
OUTPUT_VARIABLE _gcc_version_info
|
||||
ERROR_VARIABLE _gcc_version_info)
|
||||
- string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
|
||||
+ string(REGEX MATCH "[3-6]\\.[0-9]\\.[0-9]*"
|
||||
_gcc_version "${_gcc_version_info}")
|
||||
# gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the
|
||||
# patch level, handle this here:
|
||||
--- ParaView-5.0.1/Qt/Components/CMakeLists.txt.orig 2016-06-13 09:27:27.827849525 +0200
|
||||
+++ ParaView-5.0.1/Qt/Components/CMakeLists.txt 2016-06-13 09:29:28.599318445 +0200
|
||||
@@ -656,10 +656,10 @@
|
||||
#the pqSGExportStateWizard has subclasses that directly access
|
||||
#the UI file, and currently we don't have a clean way to break this hard
|
||||
#dependency, so for no we install this ui file.
|
||||
-if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
|
||||
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
|
||||
- DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
|
||||
-endif()
|
||||
+#OPENFOAM patch#if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
|
||||
+#OPENFOAM patch# install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
|
||||
+#OPENFOAM patch# DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
|
||||
+#OPENFOAM patch#endif()
|
||||
|
||||
#IF (NOT PV_INSTALL_NO_DEVELOPMENT)
|
||||
# # Headers
|
||||
1
etc/patches/paraview-5.5.1
Symbolic link
1
etc/patches/paraview-5.5.1
Symbolic link
@ -0,0 +1 @@
|
||||
paraview-5.5.2
|
||||
655
etc/patches/paraview-5.5.2
Normal file
655
etc/patches/paraview-5.5.2
Normal file
@ -0,0 +1,655 @@
|
||||
--- ParaView-v5.5.0/VTK/ThirdParty/vtkm/vtk-m/CMake/VTKmDetermineVersion.cmake.orig 2018-04-06 22:03:33.000000000 +0200
|
||||
+++ ParaView-v5.5.0/VTK/ThirdParty/vtkm/vtk-m/CMake/VTKmDetermineVersion.cmake 2018-04-23 12:00:23.708544206 +0200
|
||||
@@ -51,6 +51,8 @@
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_STRIP_TRAILING_WHITESPACE)
|
||||
+ else()
|
||||
+ set(output)
|
||||
endif()
|
||||
else()
|
||||
set(result 0)
|
||||
@@ -75,7 +77,7 @@
|
||||
|
||||
# Extracts components from a version string. See determine_version() for usage.
|
||||
function(extract_version_components version_string var_prefix)
|
||||
- string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)[-]*(.*)"
|
||||
+ string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)[-]*(.*)$"
|
||||
version_matches "${version_string}")
|
||||
if(CMAKE_MATCH_0)
|
||||
set(full ${CMAKE_MATCH_0})
|
||||
--- ParaView-v5.5.0/CoProcessing/Catalyst/vtkCPProcessor.cxx.orig 2018-04-06 22:03:33.000000000 +0200
|
||||
+++ ParaView-v5.5.0/CoProcessing/Catalyst/vtkCPProcessor.cxx 2018-05-11 12:02:26.894772713 +0200
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "vtkStringArray.h"
|
||||
|
||||
#include <list>
|
||||
+#include <vtksys/SystemTools.hxx>
|
||||
|
||||
struct vtkCPProcessorInternals
|
||||
{
|
||||
@@ -47,12 +48,13 @@
|
||||
};
|
||||
|
||||
vtkStandardNewMacro(vtkCPProcessor);
|
||||
-vtkMultiProcessController* vtkCPProcessor::Controller = NULL;
|
||||
+vtkMultiProcessController* vtkCPProcessor::Controller = nullptr;
|
||||
//----------------------------------------------------------------------------
|
||||
vtkCPProcessor::vtkCPProcessor()
|
||||
{
|
||||
this->Internal = new vtkCPProcessorInternals;
|
||||
- this->InitializationHelper = NULL;
|
||||
+ this->InitializationHelper = nullptr;
|
||||
+ this->WorkingDirectory = nullptr;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -61,14 +63,15 @@
|
||||
if (this->Internal)
|
||||
{
|
||||
delete this->Internal;
|
||||
- this->Internal = NULL;
|
||||
+ this->Internal = nullptr;
|
||||
}
|
||||
|
||||
if (this->InitializationHelper)
|
||||
{
|
||||
this->InitializationHelper->Delete();
|
||||
- this->InitializationHelper = NULL;
|
||||
+ this->InitializationHelper = nullptr;
|
||||
}
|
||||
+ this->SetWorkingDirectory(nullptr);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -95,7 +98,7 @@
|
||||
{
|
||||
if (which < 0 || which >= this->GetNumberOfPipelines())
|
||||
{
|
||||
- return NULL;
|
||||
+ return nullptr;
|
||||
}
|
||||
int counter = 0;
|
||||
vtkCPProcessorInternals::PipelineListIterator iter = this->Internal->Pipelines.begin();
|
||||
@@ -108,7 +111,7 @@
|
||||
counter++;
|
||||
iter++;
|
||||
}
|
||||
- return NULL;
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -130,17 +133,41 @@
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
-int vtkCPProcessor::Initialize()
|
||||
+int vtkCPProcessor::Initialize(const char* workingDirectory)
|
||||
{
|
||||
- if (this->InitializationHelper == NULL)
|
||||
+ if (this->InitializationHelper == nullptr)
|
||||
{
|
||||
this->InitializationHelper = this->NewInitializationHelper();
|
||||
}
|
||||
+ // make sure the directory exists here so that we only do it once
|
||||
+ if (workingDirectory)
|
||||
+ {
|
||||
+ vtkMultiProcessController* controller = vtkMultiProcessController::GetGlobalController();
|
||||
+ int success = 1;
|
||||
+ if (controller == nullptr || controller->GetLocalProcessId() == 0)
|
||||
+ {
|
||||
+ success = vtksys::SystemTools::MakeDirectory(workingDirectory) == true ? 1 : 0;
|
||||
+ if (success == 0)
|
||||
+ {
|
||||
+ vtkWarningMacro("Could not make "
|
||||
+ << workingDirectory << " directory. "
|
||||
+ << "Results will be generated in current working directory instead.");
|
||||
+ }
|
||||
+ }
|
||||
+ if (controller)
|
||||
+ {
|
||||
+ controller->Broadcast(&success, 1, 0);
|
||||
+ }
|
||||
+ if (success)
|
||||
+ {
|
||||
+ this->SetWorkingDirectory(workingDirectory);
|
||||
+ }
|
||||
+ }
|
||||
return 1;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
-int vtkCPProcessor::Initialize(vtkMPICommunicatorOpaqueComm& comm)
|
||||
+int vtkCPProcessor::Initialize(vtkMPICommunicatorOpaqueComm& comm, const char* workingDirectory)
|
||||
{
|
||||
#ifdef PARAVIEW_USE_MPI
|
||||
if (vtkCPProcessor::Controller)
|
||||
@@ -148,7 +175,7 @@
|
||||
vtkErrorMacro("Can only initialize with a communicator once per process.");
|
||||
return 0;
|
||||
}
|
||||
- if (this->InitializationHelper == NULL)
|
||||
+ if (this->InitializationHelper == nullptr)
|
||||
{
|
||||
vtkMPICommunicator* communicator = vtkMPICommunicator::New();
|
||||
communicator->InitializeExternal(&comm);
|
||||
@@ -157,12 +184,12 @@
|
||||
this->Controller = controller;
|
||||
this->Controller->SetGlobalController(controller);
|
||||
communicator->Delete();
|
||||
- return this->Initialize();
|
||||
+ return this->Initialize(workingDirectory);
|
||||
}
|
||||
return 1;
|
||||
#else
|
||||
static_cast<void>(&comm); // get rid of variable not used warning
|
||||
- return this->Initialize();
|
||||
+ return this->Initialize(workingDirectory);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -225,6 +252,13 @@
|
||||
input->GetFieldData()->AddArray(catalystChannel);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ std::string originalWorkingDirectory;
|
||||
+ if (this->WorkingDirectory)
|
||||
+ {
|
||||
+ originalWorkingDirectory = vtksys::SystemTools::GetCurrentWorkingDirectory();
|
||||
+ vtksys::SystemTools::ChangeDirectory(this->WorkingDirectory);
|
||||
+ }
|
||||
for (vtkCPProcessorInternals::PipelineListIterator iter = this->Internal->Pipelines.begin();
|
||||
iter != this->Internal->Pipelines.end(); iter++)
|
||||
{
|
||||
@@ -248,6 +282,10 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+ if (originalWorkingDirectory.empty() == false)
|
||||
+ {
|
||||
+ vtksys::SystemTools::ChangeDirectory(originalWorkingDirectory);
|
||||
+ }
|
||||
// we want to reset everything here to make sure that new information
|
||||
// is properly passed in the next time.
|
||||
dataDescription->ResetAll();
|
||||
@@ -259,7 +297,7 @@
|
||||
{
|
||||
if (this->Controller)
|
||||
{
|
||||
- this->Controller->SetGlobalController(NULL);
|
||||
+ this->Controller->SetGlobalController(nullptr);
|
||||
this->Controller->Finalize(1);
|
||||
this->Controller->Delete();
|
||||
}
|
||||
--- ParaView-v5.5.0/CoProcessing/Catalyst/vtkCPProcessor.h.orig 2018-04-06 22:03:33.000000000 +0200
|
||||
+++ ParaView-v5.5.0/CoProcessing/Catalyst/vtkCPProcessor.h 2018-05-11 12:02:26.894772713 +0200
|
||||
@@ -76,14 +76,16 @@
|
||||
virtual void RemoveAllPipelines();
|
||||
|
||||
/// Initialize the co-processor. Returns 1 if successful and 0
|
||||
- /// otherwise.
|
||||
/// otherwise. If Catalyst is built with MPI then Initialize()
|
||||
/// can also be called with a specific MPI communicator if
|
||||
/// MPI_COMM_WORLD isn't the proper one. Catalyst is initialized
|
||||
- /// to use MPI_COMM_WORLD by default.
|
||||
- virtual int Initialize();
|
||||
+ /// to use MPI_COMM_WORLD by default. Both methods have an optional
|
||||
+ /// workingDirectory argument which will set *WorkingDirectory* so
|
||||
+ /// that files will be put relative to this directory.
|
||||
+ virtual int Initialize(const char* workingDirectory = nullptr);
|
||||
#ifndef __WRAP__
|
||||
- virtual int Initialize(vtkMPICommunicatorOpaqueComm& comm);
|
||||
+ virtual int Initialize(
|
||||
+ vtkMPICommunicatorOpaqueComm& comm, const char* workingDirectory = nullptr);
|
||||
#endif
|
||||
|
||||
/// The Catalyst input field data string array name. This array will
|
||||
@@ -111,6 +113,13 @@
|
||||
/// implementation an opportunity to clean up, before it is destroyed.
|
||||
virtual int Finalize();
|
||||
|
||||
+ /// Get the current working directory for outputting Catalyst files.
|
||||
+ /// If not set then Catalyst output files will be relative to the
|
||||
+ /// current working directory. This will not affect where Catalyst
|
||||
+ /// looks for Python scripts. *WorkingDirectory* gets set through
|
||||
+ /// the *Initialize()* methods.
|
||||
+ vtkGetStringMacro(WorkingDirectory);
|
||||
+
|
||||
protected:
|
||||
vtkCPProcessor();
|
||||
virtual ~vtkCPProcessor();
|
||||
@@ -118,6 +127,11 @@
|
||||
/// Create a new instance of the InitializationHelper.
|
||||
virtual vtkObject* NewInitializationHelper();
|
||||
|
||||
+ /// Set the current working directory for outputting Catalyst files.
|
||||
+ /// This is a protected method since simulation code adaptors should
|
||||
+ /// set this through the *Initialize()* methods.
|
||||
+ vtkSetStringMacro(WorkingDirectory);
|
||||
+
|
||||
private:
|
||||
vtkCPProcessor(const vtkCPProcessor&) = delete;
|
||||
void operator=(const vtkCPProcessor&) = delete;
|
||||
@@ -125,6 +139,7 @@
|
||||
vtkCPProcessorInternals* Internal;
|
||||
vtkObject* InitializationHelper;
|
||||
static vtkMultiProcessController* Controller;
|
||||
+ char* WorkingDirectory;
|
||||
};
|
||||
|
||||
#endif
|
||||
--- ParaView-v5.5.0/CoProcessing/Catalyst/vtkCPXMLPWriterPipeline.cxx.orig 2018-04-06 22:03:33.000000000 +0200
|
||||
+++ ParaView-v5.5.0/CoProcessing/Catalyst/vtkCPXMLPWriterPipeline.cxx 2018-05-11 12:02:26.894772713 +0200
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <vtkSmartPointer.h>
|
||||
#include <vtkUnstructuredGrid.h>
|
||||
|
||||
+#include <algorithm>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
||||
@@ -174,7 +175,7 @@
|
||||
|
||||
for (unsigned int i = 0; i < dataDescription->GetNumberOfInputDescriptions(); i++)
|
||||
{
|
||||
- const char* inputName = dataDescription->GetInputDescriptionName(i);
|
||||
+ std::string inputName = dataDescription->GetInputDescriptionName(i);
|
||||
vtkCPInputDataDescription* idd = dataDescription->GetInputDescription(i);
|
||||
vtkDataObject* grid = idd->GetGrid();
|
||||
if (grid == nullptr)
|
||||
@@ -206,6 +207,8 @@
|
||||
vtkSMStringVectorProperty* fileName =
|
||||
vtkSMStringVectorProperty::SafeDownCast(writer->GetProperty("FileName"));
|
||||
|
||||
+ // If we have a / in the channel name we take it out of the filename we're going to write to
|
||||
+ inputName.erase(std::remove(inputName.begin(), inputName.end(), '/'), inputName.end());
|
||||
std::ostringstream o;
|
||||
if (this->Path.empty() == false)
|
||||
{
|
||||
--- ParaView-v5.5.0/Wrapping/Python/paraview/coprocessing.py.orig 2018-04-06 22:03:33.000000000 +0200
|
||||
+++ ParaView-v5.5.0/Wrapping/Python/paraview/coprocessing.py 2018-05-11 12:02:27.038772408 +0200
|
||||
@@ -11,22 +11,12 @@
|
||||
from paraview.vtk.vtkPVVTKExtensionsCore import *
|
||||
import math
|
||||
|
||||
-# -----------------------------------------------------------------------------
|
||||
-def IsInModulo(timestep, frequencyArray):
|
||||
- """
|
||||
- Return True if the given timestep is in one of the provided frequency.
|
||||
- This can be interpreted as follow::
|
||||
-
|
||||
- isFM = IsInModulo(timestep, [2,3,7])
|
||||
-
|
||||
- is similar to::
|
||||
+# If the user created a filename in a location that doesn't exist by default we'll
|
||||
+# make the directory for them. This can be changed though by setting createDirectoriesIfNeeded
|
||||
+# to False.
|
||||
+createDirectoriesIfNeeded = True
|
||||
|
||||
- isFM = (timestep % 2 == 0) or (timestep % 3 == 0) or (timestep % 7 == 0)
|
||||
- """
|
||||
- for frequency in frequencyArray:
|
||||
- if frequency > 0 and (timestep % frequency == 0):
|
||||
- return True
|
||||
- return False
|
||||
+# -----------------------------------------------------------------------------
|
||||
|
||||
class CoProcessor(object):
|
||||
"""Base class for co-processing Pipelines.
|
||||
@@ -68,6 +58,9 @@
|
||||
self.__CinemaTracks = {}
|
||||
self.__InitialFrequencies = {}
|
||||
self.__PrintEnsightFormatString = False
|
||||
+ self.__TimeStepToStartOutputAt=0
|
||||
+ self.__ForceOutputAtFirstCall=False
|
||||
+ self.__FirstTimeStepIndex = None
|
||||
|
||||
def SetPrintEnsightFormatString(self, enable):
|
||||
"""If outputting ExodusII files with the purpose of reading them into
|
||||
@@ -87,6 +80,17 @@
|
||||
"Incorrect argument type: %s, must be a dict" % type(frequencies))
|
||||
self.__InitialFrequencies = frequencies
|
||||
|
||||
+ def SetInitialOutputOptions(self, timeStepToStartOutputAt, forceOutputAtFirstCall):
|
||||
+ """Set the frequencies at which the pipeline needs to be updated.
|
||||
+ Typically, this is called by the subclass once it has determined what
|
||||
+ timesteps co-processing will be needed to be done.
|
||||
+ frequencies is a map, with key->string name of for the simulation
|
||||
+ input, and value is a list of frequencies.
|
||||
+ """
|
||||
+
|
||||
+ self.__TimeStepToStartOutputAt=timeStepToStartOutputAt
|
||||
+ self.__ForceOutputAtFirstCall=forceOutputAtFirstCall
|
||||
+
|
||||
def EnableLiveVisualization(self, enable, frequency = 1):
|
||||
"""Call this method to enable live-visualization. When enabled,
|
||||
DoLiveVisualization() will communicate with ParaView server if possible
|
||||
@@ -115,7 +119,7 @@
|
||||
# if this is a time step to do live then all of the inputs
|
||||
# must be made available. note that we want the pipeline built
|
||||
# before we do the actual first live connection.
|
||||
- if self.__EnableLiveVisualization and timestep % self.__LiveVisualizationFrequency == 0 \
|
||||
+ if self.__EnableLiveVisualization and self.NeedToOutput(timestep, self.__LiveVisualizationFrequency) \
|
||||
and self.__LiveVisualizationLink:
|
||||
if self.__LiveVisualizationLink.Initialize(servermanager.ActiveConnection.Session.GetSessionProxyManager()):
|
||||
num_inputs = datadescription.GetNumberOfInputDescriptions()
|
||||
@@ -132,13 +136,13 @@
|
||||
# hasn't been set up yet). If we don't have live enabled
|
||||
# we know that the output frequencies aren't changed and can
|
||||
# just use the initial frequencies.
|
||||
- if self.__InitialFrequencies or not self.__EnableLiveVisualization:
|
||||
+ if self.__ForceOutputAtFirstCall or self.__InitialFrequencies or not self.__EnableLiveVisualization:
|
||||
num_inputs = datadescription.GetNumberOfInputDescriptions()
|
||||
for cc in range(num_inputs):
|
||||
input_name = datadescription.GetInputDescriptionName(cc)
|
||||
|
||||
freqs = self.__InitialFrequencies.get(input_name, [])
|
||||
- if self.__EnableLiveVisualization or ( self and IsInModulo(timestep, freqs) ):
|
||||
+ if self.__EnableLiveVisualization or ( self and self.IsInModulo(timestep, freqs) ):
|
||||
datadescription.GetInputDescription(cc).AllFieldsOn()
|
||||
datadescription.GetInputDescription(cc).GenerateMeshOn()
|
||||
else:
|
||||
@@ -149,15 +153,14 @@
|
||||
for writer in self.__WritersList:
|
||||
frequency = writer.parameters.GetProperty(
|
||||
"WriteFrequency").GetElement(0)
|
||||
- if (timestep % frequency) == 0 or \
|
||||
- datadescription.GetForceOutput() == True:
|
||||
+ if self.NeedToOutput(timestep, frequency) or datadescription.GetForceOutput() == True:
|
||||
writerinputs = cpstate.locate_simulation_inputs(writer)
|
||||
for writerinput in writerinputs:
|
||||
datadescription.GetInputDescriptionByName(writerinput).AllFieldsOn()
|
||||
datadescription.GetInputDescriptionByName(writerinput).GenerateMeshOn()
|
||||
|
||||
for view in self.__ViewsList:
|
||||
- if (view.cpFrequency and timestep % view.cpFrequency == 0) or \
|
||||
+ if (view.cpFrequency and self.NeedToOutput(timestep, view.cpFrequency)) or \
|
||||
datadescription.GetForceOutput() == True:
|
||||
viewinputs = cpstate.locate_simulation_inputs_for_view(view)
|
||||
for viewinput in viewinputs:
|
||||
@@ -192,8 +195,7 @@
|
||||
for writer in self.__WritersList:
|
||||
frequency = writer.parameters.GetProperty(
|
||||
"WriteFrequency").GetElement(0)
|
||||
- if (timestep % frequency) == 0 or \
|
||||
- datadescription.GetForceOutput() == True:
|
||||
+ if self.NeedToOutput(timestep, frequency) or datadescription.GetForceOutput() == True:
|
||||
fileName = writer.parameters.GetProperty("FileName").GetElement(0)
|
||||
paddingamount = writer.parameters.GetProperty("PaddingAmount").GetElement(0)
|
||||
helperName = writer.GetXMLName()
|
||||
@@ -203,6 +205,23 @@
|
||||
else:
|
||||
ts = str(timestep).rjust(paddingamount, '0')
|
||||
writer.FileName = fileName.replace("%t", ts)
|
||||
+ if '/' in writer.FileName and createDirectoriesIfNeeded:
|
||||
+ oktowrite = [1.]
|
||||
+ import vtk
|
||||
+ comm = vtk.vtkMultiProcessController.GetGlobalController()
|
||||
+ if comm.GetLocalProcessId() == 0:
|
||||
+ import os
|
||||
+ newDir = writer.FileName[0:writer.FileName.rfind('/')]
|
||||
+ try:
|
||||
+ os.makedirs(newDir)
|
||||
+ except OSError:
|
||||
+ if not os.path.isdir(newDir):
|
||||
+ print ("ERROR: Cannot make directory for", writer.FileName, ". No data will be written.")
|
||||
+ oktowrite[0] = 0.
|
||||
+ comm.Broadcast(oktowrite, 1, 0)
|
||||
+ if oktowrite[0] == 0:
|
||||
+ # we can't make the directory so no reason to update the pipeline
|
||||
+ return
|
||||
writer.UpdatePipeline(datadescription.GetTime())
|
||||
|
||||
def WriteImages(self, datadescription, rescale_lookuptable=False,
|
||||
@@ -240,7 +259,7 @@
|
||||
|
||||
cinema_dirs = []
|
||||
for view in self.__ViewsList:
|
||||
- if (view.cpFrequency and timestep % view.cpFrequency == 0) or \
|
||||
+ if (view.cpFrequency and self.NeedToOutput(timestep, view.cpFrequency)) or \
|
||||
datadescription.GetForceOutput() == True:
|
||||
fname = view.cpFileName
|
||||
ts = str(timestep).rjust(padding_amount, '0')
|
||||
@@ -267,6 +286,24 @@
|
||||
if dirname:
|
||||
cinema_dirs.append(dirname)
|
||||
else:
|
||||
+ if '/' in fname and createDirectoriesIfNeeded:
|
||||
+ oktowrite = [1.]
|
||||
+ import vtk
|
||||
+ comm = vtk.vtkMultiProcessController.GetGlobalController()
|
||||
+ if comm.GetLocalProcessId() == 0:
|
||||
+ import os
|
||||
+ newDir = fname[0:fname.rfind('/')]
|
||||
+ try:
|
||||
+ os.makedirs(newDir)
|
||||
+ except OSError:
|
||||
+ if not os.path.isdir(newDir):
|
||||
+ print ("ERROR: Cannot make directory for", fname, ". No image will be output.")
|
||||
+ oktowrite[0] = 0.
|
||||
+ comm.Broadcast(oktowrite, 1, 0)
|
||||
+ if oktowrite[0] == 0:
|
||||
+ # we can't make the directory so no reason to update the pipeline
|
||||
+ return
|
||||
+
|
||||
if image_quality is None and fname.endswith('png'):
|
||||
# for png quality = 0 means no compression. compression can be a potentially
|
||||
# very costly serial operation on process 0
|
||||
@@ -307,7 +344,7 @@
|
||||
|
||||
|
||||
timeStep = datadescription.GetTimeStep()
|
||||
- if self.__EnableLiveVisualization and timeStep % self.__LiveVisualizationFrequency == 0:
|
||||
+ if self.__EnableLiveVisualization and self.NeedToOutput(timeStep, self.__LiveVisualizationFrequency):
|
||||
if not self.__LiveVisualizationLink.Initialize(servermanager.ActiveConnection.Session.GetSessionProxyManager()):
|
||||
return
|
||||
|
||||
@@ -412,7 +449,7 @@
|
||||
"""
|
||||
controller = servermanager.ParaViewPipelineController()
|
||||
# assume that a client only proxy with the same name as a writer
|
||||
- # is available in "insitu_writer_paramters"
|
||||
+ # is available in "insitu_writer_parameters"
|
||||
|
||||
# Since coprocessor sometimes pass writer as a custom object and not
|
||||
# a proxy, we need to handle that. Just creating any arbitrary writer
|
||||
@@ -666,3 +703,42 @@
|
||||
#restore what we showed
|
||||
pv_introspect.restore_visibility(pxystate)
|
||||
return os.path.basename(vfname)
|
||||
+
|
||||
+ def IsInModulo(self, timestep, frequencies):
|
||||
+ """
|
||||
+ Return True if the given timestep is in one of the provided frequency.
|
||||
+ This can be interpreted as follow::
|
||||
+
|
||||
+ isFM = IsInModulo(timestep-timeStepToStartOutputAt, [2,3,7])
|
||||
+
|
||||
+ is similar to::
|
||||
+
|
||||
+ isFM = (timestep-timeStepToStartOutputAt % 2 == 0) or (timestep-timeStepToStartOutputAt % 3 == 0) or (timestep-timeStepToStartOutputAt % 7 == 0)
|
||||
+
|
||||
+ The timeStepToStartOutputAt is the first timestep that will potentially be output.
|
||||
+ """
|
||||
+ if timestep < self.__TimeStepToStartOutputAt and not self.__ForceOutputAtFirstCall:
|
||||
+ return False
|
||||
+ for frequency in frequencies:
|
||||
+ if frequency > 0 and self.NeedToOutput(timestep, frequency):
|
||||
+ return True
|
||||
+
|
||||
+ return False
|
||||
+
|
||||
+
|
||||
+ def NeedToOutput(self, timestep, frequency):
|
||||
+ """
|
||||
+ Return True if we need to output based on the input timestep and frequency. Checks based
|
||||
+ __FirstTimeStepIndex, __FirstTimeStepIndex, __ForceOutputAtFirstCall and __TimeStepToStartOutputAt
|
||||
+ member variables.
|
||||
+ """
|
||||
+ if self.__FirstTimeStepIndex == None:
|
||||
+ self.__FirstTimeStepIndex = timestep
|
||||
+
|
||||
+ if self.__ForceOutputAtFirstCall and self.__FirstTimeStepIndex == timestep:
|
||||
+ return True
|
||||
+
|
||||
+ if self.__TimeStepToStartOutputAt <= timestep and (timestep-self.__TimeStepToStartOutputAt) % frequency == 0:
|
||||
+ return True
|
||||
+
|
||||
+ return False
|
||||
--- ParaView-v5.5.1/ParaViewCore/ServerManager/SMApplication/Resources/readers.xml.orig 2018-06-01 21:23:15.000000000 +0200
|
||||
+++ ParaView-v5.5.1/ParaViewCore/ServerManager/SMApplication/Resources/readers.xml 2018-06-19 20:50:55.128914062 +0200
|
||||
@@ -3769,7 +3769,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="vtm vtmb"
|
||||
+ <ReaderFactory extensions="vtm vtm.series vtmb vtmb.series"
|
||||
file_description="VTK MultiBlock Data Files" />
|
||||
</Hints>
|
||||
<!-- end of XMLMultiBlockDataReader -->
|
||||
@@ -3824,7 +3824,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="vthb vth"
|
||||
+ <ReaderFactory extensions="vthb vthb.series vth vth.series"
|
||||
file_description="VTK Hierarchical Box Data Files" />
|
||||
</Hints>
|
||||
<!-- end of XMLUniformGridAMRReader -->
|
||||
@@ -3933,7 +3933,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="vtp"
|
||||
+ <ReaderFactory extensions="vtp vtp.series"
|
||||
file_description="VTK PolyData Files" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -3990,7 +3990,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="vtt"
|
||||
+ <ReaderFactory extensions="vtt vtt.series"
|
||||
file_description="VTK Table Files" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -4050,7 +4050,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="vtu"
|
||||
+ <ReaderFactory extensions="vtu vtu.series"
|
||||
file_description="VTK UnstructuredGrid Files" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -4108,7 +4108,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="vti"
|
||||
+ <ReaderFactory extensions="vti vti.series"
|
||||
file_description="VTK ImageData Files" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -4166,7 +4166,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="vts"
|
||||
+ <ReaderFactory extensions="vts vts.series"
|
||||
file_description="VTK StructuredGrid Files" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -4224,7 +4224,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="vtr"
|
||||
+ <ReaderFactory extensions="vtr vtr.series"
|
||||
file_description="VTK RectilinearGrid Files" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -4284,7 +4284,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="pvtp"
|
||||
+ <ReaderFactory extensions="pvtp pvtp.series"
|
||||
file_description="VTK PolyData Files (partitioned)" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -4346,7 +4346,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="pvtu"
|
||||
+ <ReaderFactory extensions="pvtu pvtu.series"
|
||||
file_description="VTK UnstructuredGrid Files (partitioned)" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -4406,7 +4406,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="pvtt"
|
||||
+ <ReaderFactory extensions="pvtt pvtt.series"
|
||||
file_description="VTK Table (partitioned)" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -4467,7 +4467,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="pvti"
|
||||
+ <ReaderFactory extensions="pvti pvti.series"
|
||||
file_description="VTK ImageData Files (partitioned)" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -4529,7 +4529,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="pvts"
|
||||
+ <ReaderFactory extensions="pvts pvts.series"
|
||||
file_description="VTK StructuredGrid Files (partitioned)" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -4591,7 +4591,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="pvtr"
|
||||
+ <ReaderFactory extensions="pvtr pvtr.series"
|
||||
file_description="VTK RectilinearGrid Files (partitioned)" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -4702,7 +4702,7 @@
|
||||
Partitioned Legacy VTK reader.</Documentation>
|
||||
</StringVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="pvtk"
|
||||
+ <ReaderFactory extensions="pvtk pvtk.series"
|
||||
file_description="Legacy VTK Files (partitioned)" />
|
||||
</Hints>
|
||||
<!-- End pvtkfile -->
|
||||
@@ -5102,7 +5102,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="ply"
|
||||
+ <ReaderFactory extensions="ply ply.series"
|
||||
file_description="PLY Polygonal File Format" />
|
||||
</Hints>
|
||||
</SourceProxy>
|
||||
@@ -5230,7 +5230,7 @@
|
||||
<Documentation>Available timestep values.</Documentation>
|
||||
</DoubleVectorProperty>
|
||||
<Hints>
|
||||
- <ReaderFactory extensions="stl"
|
||||
+ <ReaderFactory extensions="stl stl.series"
|
||||
file_description="Stereo Lithography" />
|
||||
</Hints>
|
||||
<!-- End stlreader-->
|
||||
76
etc/pkgconfigAdjust
Executable file
76
etc/pkgconfigAdjust
Executable file
@ -0,0 +1,76 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2017 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# etc/pkgconfigAdjust
|
||||
#
|
||||
# Description
|
||||
# Adjust pkgconfig information to use '${prefix} where possible instead of
|
||||
# directory paths. This makes it easier when relocating software.
|
||||
# Adjusts includedir=, libdir=, -I/... and -L/... entries.
|
||||
#
|
||||
# The specified directory can be any of the following:
|
||||
# - base-dir
|
||||
# - base-dir/bin
|
||||
# - base-dir/lib
|
||||
# - base-dir/lib64
|
||||
# - base-dir/lib/pkgconfig
|
||||
# - base-dir/lib64/pkgconfig
|
||||
#
|
||||
# This allows this type of shell command
|
||||
#
|
||||
# etc/pkgconfigAdjust $(find platforms -type d -name pkgconfig)
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party (parent) directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [directory1 [... directoryN]]
|
||||
options:
|
||||
-help
|
||||
|
||||
Adjust pkgconfig files after relocating third-party files.
|
||||
Locates pkgconfig files under the lib/ or lib64/ directories and adjusts them
|
||||
to use '${prefix}' instead of absolute directory paths where possible.
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Process options/arguments
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
|
||||
*)
|
||||
pkgconfigAdjust "$1"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
73
etc/pkgconfigPrefix
Executable file
73
etc/pkgconfigPrefix
Executable file
@ -0,0 +1,73 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2017 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# etc/pkgconfigPrefix
|
||||
#
|
||||
# Description
|
||||
# Set the prefix= entry for pkgconfig files to account for a new location.
|
||||
#
|
||||
# The specified directory can be any of the following:
|
||||
# - base-dir
|
||||
# - base-dir/bin
|
||||
# - base-dir/lib
|
||||
# - base-dir/lib64
|
||||
# - base-dir/lib/pkgconfig
|
||||
# - base-dir/lib64/pkgconfig
|
||||
#
|
||||
# This allows this type of shell command
|
||||
#
|
||||
# etc/pkgconfigPrefix $(find platforms -type d -name pkgconfig)
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party (parent) directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [directory1 [... directoryN]]
|
||||
options:
|
||||
-help
|
||||
|
||||
Set the 'prefix=' entry for pkgconfig files.
|
||||
The pkgconfig files are located under lib/pkgconfig or lib64/pkgconfig.
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Process options/arguments
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
|
||||
*)
|
||||
pkgconfigNewPrefix "$1"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -4,75 +4,65 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# etc/relocateQt
|
||||
#
|
||||
# Description
|
||||
# Change prefix when relocating qt installation
|
||||
# Change prefix when relocating QT installation
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
qtVERSION=4.7.2
|
||||
#------------------------------------------------------------------------------
|
||||
# run from third-party directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
# Run from third-party (parent) directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
. etc/tools/QtFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [VERSION]
|
||||
usage: ${0##*/} [OPTION] [qt-VERSION]
|
||||
options:
|
||||
-force create qt.conf and edit pkgconfig to use \${prefix}
|
||||
-force Create qt.conf and edit pkgconfig to use \${prefix}
|
||||
-help
|
||||
|
||||
Adjust prefix in qt.conf and pkgconfig files after relocating third-party
|
||||
with a QT installation.
|
||||
|
||||
* adjust relocation prefix for $qtVERSION
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
unset optForce
|
||||
|
||||
|
||||
unset forceOpt
|
||||
# parse options
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
|
||||
-f | -force)
|
||||
forceOpt=true
|
||||
optForce=true
|
||||
;;
|
||||
[1-9]* | qt-[1-9]*)
|
||||
-qt-[1-9]* | [1-9]* | qt-*)
|
||||
# -qt-VERSION, VERSION, qt-VERSION, qt-everywhere-opensource-src-VERSION
|
||||
qtVERSION="${1%%/}";
|
||||
qtVERSION="${qtVERSION#qt-}"
|
||||
qtVERSION="${qtVERSION##*-}"
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
@ -82,10 +72,16 @@ do
|
||||
done
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
prefixDIR=$installBASE/qt-$qtVERSION
|
||||
QT_ARCH_PATH=$installBASE/qt-$qtVERSION
|
||||
|
||||
[ "${forceOpt:-false}" = true ] && finalizeQt
|
||||
changePrefix
|
||||
[ -n "$qtVERSION" ] || die "No QT version specified"
|
||||
[ -d "$QT_ARCH_PATH" ] || die "No QT installation"
|
||||
|
||||
if [ "${optForce:-false}" = true ]
|
||||
then
|
||||
# Create qt.conf and adjust locations to use '${prefix}' internally
|
||||
finalizeQt
|
||||
fi
|
||||
pkgconfigNewPrefix $QT_ARCH_PATH
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
@ -1,502 +0,0 @@
|
||||
#---------------------------------*- sh -*-------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/tools/ParaViewFunctions
|
||||
#
|
||||
# Description
|
||||
# ParaView make/install helper functions
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# buildBASE, installBASE defined from tools/ThirdPartyFunctions
|
||||
|
||||
#
|
||||
# Where things are or should be put
|
||||
# ParaView_VERSION and ParaView_MAJOR should already have been set
|
||||
#
|
||||
# ParaView_SOURCE_DIR : location of the original sources
|
||||
# ParaView_BINARY_DIR : location of the build
|
||||
# ParaView_DIR : location of the installed program
|
||||
#
|
||||
setDirs()
|
||||
{
|
||||
ParaView_SOURCE_DIR=$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
|
||||
|
||||
[ -d "$ParaView_SOURCE_DIR" ] || {
|
||||
echo "did not find ParaView-$ParaView_VERSION in these directories:"
|
||||
echo " WM_THIRD_PARTY_DIR=$WM_THIRD_PARTY_DIR"
|
||||
echo
|
||||
echo "abort build"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION-$OBJ_ADD
|
||||
ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION
|
||||
|
||||
# ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION-$OBJ_ADD
|
||||
ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION
|
||||
|
||||
export ParaView_SOURCE_DIR ParaView_BINARY_DIR ParaView_DIR
|
||||
|
||||
echo
|
||||
echo "ParaView_SOURCE_DIR=$ParaView_SOURCE_DIR"
|
||||
echo "ParaView_BINARY_DIR=$ParaView_BINARY_DIR"
|
||||
echo "ParaView_DIR=$ParaView_DIR"
|
||||
|
||||
# Forcefully override the .git path for the ParaView source code directory
|
||||
export GIT_DIR=$ParaView_SOURCE_DIR/.git
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Set ParaView_VERSION and adjust ParaView_MAJOR accordingly
|
||||
#
|
||||
# $1 can contain something something like 4.4.0, paraview-4.4.0, ParaView-4.0.0
|
||||
#
|
||||
setVersion()
|
||||
{
|
||||
[ $# -gt 0 ] || {
|
||||
echo "Error: function setVersion() called without an argument"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ParaView_VERSION="${1##*-}"
|
||||
|
||||
# The major version is "<digits>.<digits>"
|
||||
ParaView_MAJOR=$(echo $ParaView_VERSION | \
|
||||
sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/')
|
||||
|
||||
export ParaView_VERSION ParaView_MAJOR
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Compare version information (specified vs what is found in CMakeLists.txt)
|
||||
# Parse this type of content:
|
||||
# set (PARAVIEW_VERSION_FULL "3.98.1")
|
||||
#
|
||||
checkVersion()
|
||||
{
|
||||
local ver=$(
|
||||
sed -ne 's/^ *set *( *PARAVIEW_VERSION_FULL[ "]*\([.0-9]*\).*$/\1/ip' \
|
||||
$ParaView_SOURCE_DIR/CMakeLists.txt
|
||||
)
|
||||
|
||||
if [ "$ParaView_VERSION" != "$ver" ]
|
||||
then
|
||||
echo "MISMATCH!"
|
||||
echo " specified $ParaView_VERSION"
|
||||
echo " found ${ver:-NONE}"
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Set CMake cache variables
|
||||
#
|
||||
addCMakeVariable()
|
||||
{
|
||||
while [ -n "$1" ]
|
||||
do
|
||||
CMAKE_VARIABLES="$CMAKE_VARIABLES -D$1"
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Verbose makefiles
|
||||
#
|
||||
addVerbosity()
|
||||
{
|
||||
if [ "${withVERBOSE:=false}" = true ]
|
||||
then
|
||||
addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Define options for mpi support
|
||||
#
|
||||
addMpiSupport()
|
||||
{
|
||||
if [ "${withMPI:=false}" != true ]
|
||||
then
|
||||
return
|
||||
fi
|
||||
|
||||
OBJ_ADD="$OBJ_ADD-mpi"
|
||||
|
||||
addCMakeVariable "PARAVIEW_USE_MPI=ON VTK_USE_MPI=ON"
|
||||
addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS"
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Define options for python support
|
||||
#
|
||||
addPythonSupport()
|
||||
{
|
||||
if [ "${withPYTHON:=false}" != true ]
|
||||
then
|
||||
return
|
||||
fi
|
||||
|
||||
OBJ_ADD="$OBJ_ADD-py"
|
||||
|
||||
if pythonBin=$(which python 2>/dev/null)
|
||||
then
|
||||
if [ -n "$PYTHON_LIBRARY" ]
|
||||
then
|
||||
# Check $PYTHON_LIBRARY if it has been set
|
||||
if [ ! -e "$PYTHON_LIBRARY" ]
|
||||
then
|
||||
echo "*** Error: libpython not found at location specified " \
|
||||
"by -pythnon-lib input: PYTHON_LIBRARY=$PYTHON_LIBRARY"
|
||||
fi
|
||||
else
|
||||
# Try to get $PYTHON_LIBRARY from dynamically linked binary
|
||||
PYTHON_LIBRARY=$(ldd $pythonBin | \
|
||||
sed -ne '/libpython/s/.* => \(.*\) (.*/\1/p')
|
||||
|
||||
[ -e "$PYTHON_LIBRARY" ] || {
|
||||
echo "*** Error: Unable to determine path to python library."
|
||||
}
|
||||
fi
|
||||
|
||||
[ -e "$PYTHON_LIBRARY" ] || {
|
||||
echo " Please set the full path to the python library "
|
||||
echo " (including libpython) using the -python-lib option, "
|
||||
echo " or deactivate python support by not using the -python "
|
||||
echo " option"
|
||||
exit 1
|
||||
}
|
||||
|
||||
pythonMajor=$(echo $PYTHON_LIBRARY | sed 's/.*libpython\(.*\)\.so.*/\1/')
|
||||
pythonInclude=/usr/include/python$pythonMajor
|
||||
|
||||
# Note - we could also allow for a PYTHON_INCLUDE variable ...
|
||||
[ -d "$pythonInclude" ] || {
|
||||
echo " No python headers found in $pythonInclude/"
|
||||
echo " Please install python headers or deactivate "
|
||||
echo " python support by not using the -python option"
|
||||
exit 1
|
||||
}
|
||||
|
||||
addCMakeVariable "PARAVIEW_ENABLE_PYTHON=ON"
|
||||
addCMakeVariable "PYTHON_INCLUDE_PATH=$pythonInclude"
|
||||
addCMakeVariable "PYTHON_LIBRARY=$PYTHON_LIBRARY"
|
||||
|
||||
echo "----"
|
||||
echo "Python information:"
|
||||
echo " executable : $pythonBin"
|
||||
echo " version : $pythonMajor"
|
||||
echo " include path : $pythonInclude"
|
||||
echo " library : $PYTHON_LIBRARY"
|
||||
|
||||
unset pythonBin pythonInclude pythonMajor
|
||||
else
|
||||
echo "*** Error: python not found"
|
||||
echo "*** Deactivate python support by not using the -python "
|
||||
echo "*** option"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Define options for mesa support
|
||||
#
|
||||
addMesaSupport()
|
||||
{
|
||||
if [ "${withMESA:=false}" != true ]
|
||||
then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -d "$MESA_INCLUDE" -a -f "$MESA_LIBRARY" ]
|
||||
then
|
||||
OBJ_ADD="$OBJ_ADD-mesa"
|
||||
|
||||
addCMakeVariable "VTK_OPENGL_HAS_OSMESA=ON"
|
||||
addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE"
|
||||
addCMakeVariable "OSMESA_LIBRARY=$MESA_LIBRARY"
|
||||
|
||||
else
|
||||
echo "*** Error: no MESA information found"
|
||||
echo "*** Deactivate MESA support by not using the -mesa option, "
|
||||
echo "*** or set the correct paths for:"
|
||||
echo "*** -mesa-include ($MESA_INCLUDE)"
|
||||
echo "*** -mesa-lib ($MESA_LIBRARY)"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
addQtSupport()
|
||||
{
|
||||
QtVersion=none
|
||||
|
||||
if [ "${withQT:=false}" != true ]
|
||||
then
|
||||
return
|
||||
fi
|
||||
|
||||
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON"
|
||||
|
||||
unset qmakeExe
|
||||
if [ -n "$QMAKE_PATH" ]
|
||||
then
|
||||
if [ -d "$QMAKE_PATH" ]
|
||||
then
|
||||
if [ -x "$QMAKE_PATH/qmake" ]
|
||||
then
|
||||
qmakeExe=$QMAKE_PATH/qmake
|
||||
elif [ -x "$QMAKE_PATH/bin/qmake" ]
|
||||
then
|
||||
qmakeExe=$QMAKE_PATH/bin/qmake
|
||||
fi
|
||||
elif [ -x "$QMAKE_PATH" ]
|
||||
then
|
||||
qmakeExe=$QMAKE_PATH
|
||||
fi
|
||||
|
||||
if [ -n "$qmakeExe" ]
|
||||
then
|
||||
# Use absolute path
|
||||
if [ "${qmakeExe#/}" = "$qmakeExe" ]
|
||||
then
|
||||
qmakeExe="$(cd ${qmakeExe%/qmake} 2>/dev/null && pwd)/qmake"
|
||||
fi
|
||||
else
|
||||
echo
|
||||
echo "qmake not found under specified QMAKE_PATH"
|
||||
echo " QMAKE_PATH=$QMAKE_PATH"
|
||||
echo "leaving unspecified"
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
|
||||
# Default to using qmake from the path
|
||||
if [ -n "$qmakeExe" ]
|
||||
then
|
||||
addCMakeVariable "QT_QMAKE_EXECUTABLE:FILEPATH=$qmakeExe"
|
||||
else
|
||||
qmakeExe=qmake
|
||||
fi
|
||||
|
||||
|
||||
# Check qmake can be found
|
||||
if type $qmakeExe >/dev/null 2>&1
|
||||
then
|
||||
# Check the Qt version selected
|
||||
# parse -> "Using Qt version X.Y.Z in ..."
|
||||
QtVersion=$($qmakeExe -query QT_VERSION)
|
||||
|
||||
# Split Major.Minor.Revision - could also use IFS hacking
|
||||
set -- $(echo "$QtVersion" | sed -e 's/\./ /g')
|
||||
|
||||
QtMajor=$1
|
||||
QtMinor=$2
|
||||
|
||||
if [ $QtMajor -ne 4 -o $QtMajor -eq 4 -a $QtMinor -lt 5 ]
|
||||
then
|
||||
echo "*** Error: Qt version provided < 4.5"
|
||||
echo "*** Please use the -qmake option to specify the location of a version of Qt >= 4.5 and < 5.0"
|
||||
echo "*** e.g."
|
||||
echo "*** -qmake /usr/local/qt-4.6.2/bin/qmake"
|
||||
echo "*** -qmake $installBASE/qt-4.6.2/bin/qmake"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "*** Error: cannot find qmake either at \$QMAKE_PATH or in current \$PATH"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Configure via cmake, but don't actually build anything
|
||||
#
|
||||
configParaView()
|
||||
{
|
||||
unset cmakeExe
|
||||
if [ -n "$CMAKE_PATH" ]
|
||||
then
|
||||
if [ -d "$CMAKE_PATH" ]
|
||||
then
|
||||
if [ -x "$CMAKE_PATH/cmake" ]
|
||||
then
|
||||
cmakeExe=$CMAKE_PATH/cmake
|
||||
elif [ -x "$CMAKE_PATH/bin/cmake" ]
|
||||
then
|
||||
cmakeExe=$CMAKE_PATH/bin/cmake
|
||||
fi
|
||||
elif [ -x "$CMAKE_PATH" ]
|
||||
then
|
||||
cmakeExe=$CMAKE_PATH
|
||||
fi
|
||||
|
||||
if [ -n "$cmakeExe" ]
|
||||
then
|
||||
# Use absolute path
|
||||
if [ "${cmakeExe#/}" = "$cmakeExe" ]
|
||||
then
|
||||
cmakeExe="$(cd ${cmakeExe%/cmake} 2>/dev/null && pwd)/cmake"
|
||||
fi
|
||||
else
|
||||
echo
|
||||
echo "cmake not found under specified CMAKE_PATH"
|
||||
echo " CMAKE_PATH=$CMAKE_PATH"
|
||||
echo "leaving unspecified"
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
|
||||
# Default to using cmake from the path
|
||||
if [ -z "$cmakeExe" ]
|
||||
then
|
||||
cmakeExe=cmake
|
||||
fi
|
||||
|
||||
# Remove any existing build folder and recreate
|
||||
if [ -d $ParaView_BINARY_DIR ]
|
||||
then
|
||||
echo "removing old build directory"
|
||||
echo " $ParaView_BINARY_DIR"
|
||||
rm -rf $ParaView_BINARY_DIR
|
||||
fi
|
||||
mkdir -p $ParaView_BINARY_DIR
|
||||
|
||||
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
|
||||
|
||||
echo "----"
|
||||
echo "Configuring paraview-$ParaView_VERSION (major version: $ParaView_MAJOR)"
|
||||
echo " MPI support : ${withMPI:-false}"
|
||||
echo " Python support : ${withPYTHON:-false}"
|
||||
echo " MESA support : ${withMESA:-false}"
|
||||
echo " GL2 rendering : false"
|
||||
echo " Qt dev support : ${withQT:-false}"
|
||||
echo " Source : $ParaView_SOURCE_DIR"
|
||||
echo " Build : $ParaView_BINARY_DIR"
|
||||
echo " Target : $ParaView_DIR"
|
||||
echo "----"
|
||||
echo
|
||||
echo "$cmakeExe" \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
|
||||
$CMAKE_VARIABLES \
|
||||
$ParaView_SOURCE_DIR
|
||||
echo
|
||||
echo "----"
|
||||
echo
|
||||
|
||||
# Run cmake to create Makefiles
|
||||
$cmakeExe -Wno-dev \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
|
||||
$CMAKE_VARIABLES \
|
||||
$ParaView_SOURCE_DIR
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Invoke make
|
||||
# also link bin/ to lib/paraview-* for development without installation
|
||||
#
|
||||
makeParaView()
|
||||
{
|
||||
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
|
||||
echo " Starting make"
|
||||
time make -j $WM_NCOMPPROCS
|
||||
echo " Done make"
|
||||
|
||||
# Remove lib if it is a link
|
||||
# (how this was previously handled before 'make install' worked)
|
||||
if [ -L lib ]
|
||||
then
|
||||
rm lib 2>/dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Install the program
|
||||
#
|
||||
installParaView()
|
||||
{
|
||||
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
|
||||
echo " Installing ParaView to $ParaView_DIR"
|
||||
|
||||
make install
|
||||
|
||||
# hack for missing files after install of version 3.14.1
|
||||
echo "Copying missing files to install folder"
|
||||
CMAKE_SRC_DIR=$ParaView_SOURCE_DIR/CMake
|
||||
CMAKE_INSTALL_DIR=$ParaView_DIR/lib/paraview-$ParaView_MAJOR/CMake
|
||||
cp -f $ParaView_SOURCE_DIR/ParaViewUse.cmake $CMAKE_INSTALL_DIR
|
||||
cp -f $CMAKE_SRC_DIR/generate_proxydocumentation.cmake $CMAKE_INSTALL_DIR
|
||||
cp -f $CMAKE_SRC_DIR/smxml_to_xml.xsl $CMAKE_INSTALL_DIR
|
||||
cp -f $CMAKE_SRC_DIR/xml_to_html.xsl $CMAKE_INSTALL_DIR
|
||||
cp -f $CMAKE_SRC_DIR/xml_to_wiki.xsl.in $CMAKE_INSTALL_DIR
|
||||
cp -f $CMAKE_SRC_DIR/generate_qhp.cmake $CMAKE_INSTALL_DIR
|
||||
unset CMAKE_SRC_DIR CMAKE_INSTALL_DIR
|
||||
# --- end hack
|
||||
|
||||
cat<< INFO
|
||||
---
|
||||
Installation complete for paraview-$ParaView_VERSION
|
||||
Now update the environment by running:
|
||||
wmREFRESH
|
||||
---
|
||||
INFO
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Clear the referenced variables before using any of the functions
|
||||
unset withMPI withVERBOSE
|
||||
unset withQT QMAKE_PATH
|
||||
unset withMESA MESA_INCLUDE MESA_LIBRARY
|
||||
unset withPYTHON PYTHON_INCLUDE PYTHON_LIBRARY
|
||||
unset CMAKE_VARIABLES
|
||||
unset OBJ_ADD
|
||||
|
||||
|
||||
# Start with these general settings
|
||||
addCMakeVariable "VTK_USE_TK:BOOL=OFF"
|
||||
addCMakeVariable "BUILD_SHARED_LIBS:BOOL=ON VTK_USE_RPATH:BOOL=OFF"
|
||||
addCMakeVariable "CMAKE_BUILD_TYPE:STRING=Release"
|
||||
|
||||
# Include development files in "make install"
|
||||
addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT:BOOL=ON"
|
||||
|
||||
# Don't build test tree
|
||||
addCMakeVariable "BUILD_TESTING:BOOL=OFF"
|
||||
|
||||
# remove dependency on WebKit
|
||||
# addCMakeVariable VTK_QT_USE_WEBKIT:BOOL=OFF
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -3,23 +3,11 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/tools/ParaViewFunctions
|
||||
@ -27,45 +15,75 @@
|
||||
# Description
|
||||
# ParaView make/install helper functions
|
||||
#
|
||||
# Note
|
||||
# Obtaining paths via 'python-config' is possible, but may not always
|
||||
# resolve properly:
|
||||
#
|
||||
# python-config --includes
|
||||
# >>
|
||||
# -I/usr/include/python2.7 -I/usr/include/python2.7
|
||||
#
|
||||
# python-config --libs
|
||||
# >>
|
||||
# -lpython2.7 -lpthread -ldl -lutil -lm
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# buildBASE, installBASE defined from tools/ThirdPartyFunctions
|
||||
# Variables referenced by the functions. Initialization at the end of the file.
|
||||
unset CMAKE_VARIABLES
|
||||
unset withVERBOSE
|
||||
unset withMPI MPI_MAX_PROCS
|
||||
unset withQT QT_VERSION QMAKE_PATH
|
||||
unset withMESA MESA_INCLUDE MESA_LIBRARY withOSMESA
|
||||
unset withPYTHON PYTHON_INCLUDE PYTHON_LIBRARY
|
||||
unset withGL2
|
||||
BUILD_TYPE=Release # The cmake build type
|
||||
|
||||
# sourceBASE, buildBASE, installBASE and BUILD_SUFFIX
|
||||
# are defined in tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Where things are or should be put
|
||||
# ParaView_VERSION and ParaView_MAJOR should already have been set
|
||||
#
|
||||
# ParaView_SOURCE_DIR : location of the original sources
|
||||
# ParaView_BINARY_DIR : location of the build
|
||||
# ParaView_BUILD_DIR : location of the build
|
||||
# ParaView_DIR : location of the installed program
|
||||
#
|
||||
setDirs()
|
||||
setParaViewDirs()
|
||||
{
|
||||
ParaView_SOURCE_DIR=$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
|
||||
set -- "ParaView-$ParaView_VERSION" "ParaView-v$ParaView_VERSION"
|
||||
|
||||
unset ParaView_SOURCE_DIR
|
||||
for i
|
||||
do
|
||||
ParaView_SOURCE_DIR="$sourceBASE/$i"
|
||||
[ -d "$ParaView_SOURCE_DIR" ] && break
|
||||
done
|
||||
|
||||
[ -d "$ParaView_SOURCE_DIR" ] || {
|
||||
echo "did not find ParaView-$ParaView_VERSION in these directories:"
|
||||
echo " WM_THIRD_PARTY_DIR=$WM_THIRD_PARTY_DIR"
|
||||
echo "Did not locate ParaView version:"
|
||||
while [ "$#" -ge 1 ]; do echo " $1"; shift; done
|
||||
echo
|
||||
echo "In the directory:"
|
||||
echo " $sourceBASE"
|
||||
echo
|
||||
echo "abort build"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION-$OBJ_ADD
|
||||
ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION
|
||||
ParaView_BUILD_DIR=$buildBASE/ParaView-$ParaView_VERSION$BUILD_SUFFIX
|
||||
ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION$BUILD_SUFFIX
|
||||
|
||||
# ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION-$OBJ_ADD
|
||||
ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION
|
||||
|
||||
export ParaView_SOURCE_DIR ParaView_BINARY_DIR ParaView_DIR
|
||||
export ParaView_SOURCE_DIR ParaView_BUILD_DIR ParaView_DIR
|
||||
|
||||
echo
|
||||
echo "ParaView_SOURCE_DIR=$ParaView_SOURCE_DIR"
|
||||
echo "ParaView_BINARY_DIR=$ParaView_BINARY_DIR"
|
||||
echo "ParaView_BUILD_DIR=$ParaView_BUILD_DIR"
|
||||
echo "ParaView_DIR=$ParaView_DIR"
|
||||
|
||||
# Forcefully override the .git path for the ParaView source code directory
|
||||
export GIT_DIR=$ParaView_SOURCE_DIR/.git
|
||||
export GIT_DIR=$ParaView_SOURCE_DIR/.git # Mask seeing our own git-repo
|
||||
}
|
||||
|
||||
|
||||
@ -74,10 +92,10 @@ setDirs()
|
||||
#
|
||||
# $1 can contain something something like 4.4.0, paraview-4.4.0, ParaView-4.0.0
|
||||
#
|
||||
setVersion()
|
||||
setParaViewVersion()
|
||||
{
|
||||
[ $# -gt 0 ] || {
|
||||
echo "Error: function setVersion() called without an argument"
|
||||
echo "Error: function setParaViewVersion() called without an argument"
|
||||
exit 1
|
||||
}
|
||||
|
||||
@ -93,35 +111,15 @@ setVersion()
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Compare version information (specified vs what is found in CMakeLists.txt)
|
||||
# Parse this type of content:
|
||||
# set (PARAVIEW_VERSION_FULL "5.0.1")
|
||||
#
|
||||
checkVersion()
|
||||
{
|
||||
local ver=$(
|
||||
sed -ne 's/^ *set *( *PARAVIEW_VERSION_FULL[ "]*\([.0-9]*\).*$/\1/ip' \
|
||||
$ParaView_SOURCE_DIR/CMakeLists.txt
|
||||
)
|
||||
|
||||
if [ "$ParaView_VERSION" != "$ver" ]
|
||||
then
|
||||
echo "MISMATCH!"
|
||||
echo " specified $ParaView_VERSION"
|
||||
echo " found ${ver:-NONE}"
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Set CMake cache variables
|
||||
#
|
||||
addCMakeVariable()
|
||||
{
|
||||
while [ -n "$1" ]
|
||||
local i
|
||||
for i
|
||||
do
|
||||
CMAKE_VARIABLES="$CMAKE_VARIABLES -D$1"
|
||||
shift
|
||||
[ -n "$i" ] && CMAKE_VARIABLES="$CMAKE_VARIABLES -D$i"
|
||||
done
|
||||
}
|
||||
|
||||
@ -133,7 +131,7 @@ addVerbosity()
|
||||
{
|
||||
if [ "${withVERBOSE:=false}" = true ]
|
||||
then
|
||||
addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE"
|
||||
addCMakeVariable "CMAKE_VERBOSE_MAKEFILE=TRUE"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -148,10 +146,11 @@ addMpiSupport()
|
||||
return
|
||||
fi
|
||||
|
||||
OBJ_ADD="$OBJ_ADD-mpi"
|
||||
|
||||
addCMakeVariable "PARAVIEW_USE_MPI=ON VTK_USE_MPI=ON"
|
||||
addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS"
|
||||
addCMakeVariable "PARAVIEW_USE_MPI=ON" "VTK_USE_MPI=ON"
|
||||
if [ "${MPI_MAX_PROCS:=0}" -gt 1 ]
|
||||
then
|
||||
addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@ -160,70 +159,91 @@ addMpiSupport()
|
||||
#
|
||||
addPythonSupport()
|
||||
{
|
||||
if [ "${withPYTHON:=false}" != true ]
|
||||
if [ "${withPYTHON:-false}" != true ]
|
||||
then
|
||||
return
|
||||
fi
|
||||
|
||||
OBJ_ADD="$OBJ_ADD-py"
|
||||
local pythonBin pythonConfig pythonMajor
|
||||
|
||||
if pythonBin=$(which python 2>/dev/null)
|
||||
then
|
||||
if [ -n "$PYTHON_LIBRARY" ]
|
||||
then
|
||||
# Check $PYTHON_LIBRARY if it has been set
|
||||
if [ ! -e "$PYTHON_LIBRARY" ]
|
||||
then
|
||||
echo "*** Error: libpython not found at location specified " \
|
||||
"by -pythnon-lib input: PYTHON_LIBRARY=$PYTHON_LIBRARY"
|
||||
fi
|
||||
else
|
||||
# Try to get $PYTHON_LIBRARY from dynamically linked binary
|
||||
PYTHON_LIBRARY=$(ldd $pythonBin | \
|
||||
sed -ne '/libpython/s/.* => \(.*\) (.*/\1/p')
|
||||
|
||||
[ -e "$PYTHON_LIBRARY" ] || {
|
||||
echo "*** Error: Unable to determine path to python library."
|
||||
}
|
||||
fi
|
||||
|
||||
[ -e "$PYTHON_LIBRARY" ] || {
|
||||
echo " Please set the full path to the python library "
|
||||
echo " (including libpython) using the -python-lib option, "
|
||||
echo " or deactivate python support by not using the -python "
|
||||
echo " option"
|
||||
exit 1
|
||||
}
|
||||
|
||||
pythonMajor=$(echo $PYTHON_LIBRARY | sed 's/.*libpython\(.*\)\.so.*/\1/')
|
||||
pythonInclude=/usr/include/python$pythonMajor
|
||||
|
||||
# Note - we could also allow for a PYTHON_INCLUDE variable ...
|
||||
[ -d "$pythonInclude" ] || {
|
||||
echo " No python headers found in $pythonInclude/"
|
||||
echo " Please install python headers or deactivate "
|
||||
echo " python support by not using the -python option"
|
||||
exit 1
|
||||
}
|
||||
|
||||
addCMakeVariable "PARAVIEW_ENABLE_PYTHON=ON"
|
||||
addCMakeVariable "PYTHON_INCLUDE_PATH=$pythonInclude"
|
||||
addCMakeVariable "PYTHON_LIBRARY=$PYTHON_LIBRARY"
|
||||
|
||||
echo "----"
|
||||
echo "Python information:"
|
||||
echo " executable : $pythonBin"
|
||||
echo " version : $pythonMajor"
|
||||
echo " include path : $pythonInclude"
|
||||
echo " library : $PYTHON_LIBRARY"
|
||||
|
||||
unset pythonBin pythonInclude pythonMajor
|
||||
else
|
||||
pythonBin=$(which python 2>/dev/null) || {
|
||||
echo "*** Error: python not found"
|
||||
echo "*** Deactivate python support by not using the -python "
|
||||
echo "*** option"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ -n "$PYTHON_LIBRARY" ]
|
||||
then
|
||||
|
||||
# PYTHON_LIBRARY set:
|
||||
[ -e "$PYTHON_LIBRARY" ] || \
|
||||
echo "*** Error: libpython not found at location specified " \
|
||||
"by -python-lib : PYTHON_LIBRARY=$PYTHON_LIBRARY"
|
||||
|
||||
else
|
||||
|
||||
# Fallback: get PYTHON_LIBRARY from dynamically linked binary
|
||||
|
||||
PYTHON_LIBRARY=$(ldd $pythonBin | \
|
||||
sed -ne '/libpython/s/^.* => \(.*\) (.*/\1/p')
|
||||
|
||||
[ -e "$PYTHON_LIBRARY" ] || {
|
||||
echo "*** Error: Unable to determine path to python library."
|
||||
}
|
||||
|
||||
fi
|
||||
|
||||
[ -e "$PYTHON_LIBRARY" ] || {
|
||||
echo " Please set the full path to the python library "
|
||||
echo " (including libpython) using the -python-lib option, "
|
||||
echo " or deactivate python support by not using the -python "
|
||||
echo " option"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Guess major from library
|
||||
pythonMajor=$(echo $PYTHON_LIBRARY | sed 's/.*libpython\(.*\)\.so.*/\1/')
|
||||
|
||||
if [ -n "$PYTHON_INCLUDE" ]
|
||||
then
|
||||
|
||||
# PYTHON_INCLUDE set:
|
||||
[ -d "$PYTHON_INCLUDE" -a -f "$PYTHON_INCLUDE/Python.h" ] || \
|
||||
echo "*** Error: Python.h not found at location specified " \
|
||||
"by -python-include : PYTHON_INCLUDE=$PYTHON_INCLUDE"
|
||||
|
||||
elif pythonConfig=$(which python-config 2>/dev/null)
|
||||
then
|
||||
# Guess from python-config
|
||||
# parse '-I/usr/include/python2.7 -I/usr/include/python2.7'
|
||||
# -> '/usr/include/python2.7'
|
||||
PYTHON_INCLUDE=$(python-config --includes | sed -ne 's/^-I\([^ ][^ ]*\).*$/\1/p')
|
||||
|
||||
else
|
||||
|
||||
# Fallback to system headers
|
||||
PYTHON_INCLUDE=/usr/include/python$pythonMajor
|
||||
|
||||
fi
|
||||
|
||||
[ -d "$PYTHON_INCLUDE" -a -f "$PYTHON_INCLUDE/Python.h" ] || {
|
||||
echo " No python headers found in $PYTHON_INCLUDE/"
|
||||
echo " Please install python headers or deactivate "
|
||||
echo " python support by not using the -python option"
|
||||
exit 1
|
||||
}
|
||||
|
||||
addCMakeVariable "PARAVIEW_ENABLE_PYTHON=ON"
|
||||
addCMakeVariable "PYTHON_INCLUDE_DIRS=$PYTHON_INCLUDE"
|
||||
addCMakeVariable "PYTHON_LIBRARY=$PYTHON_LIBRARY"
|
||||
|
||||
echo "----"
|
||||
echo "Python information:"
|
||||
echo " executable : $pythonBin"
|
||||
echo " version : $pythonMajor"
|
||||
echo " include path : $PYTHON_INCLUDE"
|
||||
echo " library : $PYTHON_LIBRARY"
|
||||
}
|
||||
|
||||
|
||||
@ -239,19 +259,17 @@ addMesaSupport()
|
||||
|
||||
if [ -d "$MESA_INCLUDE" -a -f "$MESA_LIBRARY" ]
|
||||
then
|
||||
OBJ_ADD="$OBJ_ADD-mesa"
|
||||
|
||||
addCMakeVariable "VTK_OPENGL_HAS_OSMESA=ON"
|
||||
addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE"
|
||||
addCMakeVariable "OSMESA_LIBRARY=$MESA_LIBRARY"
|
||||
addCMakeVariable "VTK_OPENGL_HAS_OSMESA=ON"
|
||||
addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE"
|
||||
addCMakeVariable "OSMESA_LIBRARY=$MESA_LIBRARY"
|
||||
|
||||
else
|
||||
echo "*** Error: no MESA information found"
|
||||
echo "*** Deactivate MESA support by not using the -mesa option, "
|
||||
echo "*** or set the correct paths for:"
|
||||
echo "*** -mesa-include ($MESA_INCLUDE)"
|
||||
echo "*** -mesa-lib ($MESA_LIBRARY)"
|
||||
exit 1
|
||||
echo "*** Error: no MESA information found"
|
||||
echo "*** Deactivate MESA support by not using the -mesa option, "
|
||||
echo "*** or set the correct paths for:"
|
||||
echo "*** -mesa-include ($MESA_INCLUDE)"
|
||||
echo "*** -mesa-lib ($MESA_LIBRARY)"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
@ -263,88 +281,79 @@ addGL2Support()
|
||||
{
|
||||
if [ "${withGL2:=false}" = true ]
|
||||
then
|
||||
addCMakeVariable "VTK_RENDERING_BACKEND=OpenGL2"
|
||||
addCMakeVariable "VTK_RENDERING_BACKEND=OpenGL2"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Qt 4/5 support
|
||||
#
|
||||
addQtSupport()
|
||||
{
|
||||
QtVersion=none
|
||||
QT_VERSION=none
|
||||
: ${withQT:=true} # default is on
|
||||
|
||||
if [ "${withQT:=false}" != true ]
|
||||
if [ "$withQT" = false ]
|
||||
then
|
||||
# Explicitly disabled
|
||||
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=OFF"
|
||||
return
|
||||
fi
|
||||
|
||||
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON"
|
||||
local qmake qtLib
|
||||
|
||||
unset qmakeExe
|
||||
if [ -n "$QMAKE_PATH" ]
|
||||
# Check qmake can be found and handle version differences
|
||||
qmake=$(findQMake)
|
||||
if QT_VERSION=$($qmake -query QT_VERSION 2>/dev/null)
|
||||
then
|
||||
if [ -d "$QMAKE_PATH" ]
|
||||
then
|
||||
if [ -x "$QMAKE_PATH/qmake" ]
|
||||
then
|
||||
qmakeExe=$QMAKE_PATH/qmake
|
||||
elif [ -x "$QMAKE_PATH/bin/qmake" ]
|
||||
then
|
||||
qmakeExe=$QMAKE_PATH/bin/qmake
|
||||
fi
|
||||
elif [ -x "$QMAKE_PATH" ]
|
||||
then
|
||||
qmakeExe=$QMAKE_PATH
|
||||
fi
|
||||
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON"
|
||||
|
||||
if [ -n "$qmakeExe" ]
|
||||
then
|
||||
# Use absolute path
|
||||
if [ "${qmakeExe#/}" = "$qmakeExe" ]
|
||||
then
|
||||
qmakeExe="$(cd ${qmakeExe%/qmake} 2>/dev/null && pwd)/qmake"
|
||||
fi
|
||||
else
|
||||
echo
|
||||
echo "qmake not found under specified QMAKE_PATH"
|
||||
echo " QMAKE_PATH=$QMAKE_PATH"
|
||||
echo "leaving unspecified"
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
case "$QT_VERSION" in
|
||||
(3.* | 4.[0-4]*)
|
||||
# QT is too old
|
||||
cat <<ERROR
|
||||
----
|
||||
Error: ${0##*/}
|
||||
|
||||
# Default to using qmake from the path
|
||||
if [ -n "$qmakeExe" ]
|
||||
then
|
||||
addCMakeVariable "QT_QMAKE_EXECUTABLE:FILEPATH=$qmakeExe"
|
||||
else
|
||||
qmakeExe=qmake
|
||||
fi
|
||||
|
||||
|
||||
# Check qmake can be found
|
||||
if type $qmakeExe >/dev/null 2>&1
|
||||
then
|
||||
# Check the Qt version selected
|
||||
# parse -> "Using Qt version X.Y.Z in ..."
|
||||
QtVersion=$($qmakeExe -query QT_VERSION)
|
||||
|
||||
# Split Major.Minor.Revision - could also use IFS hacking
|
||||
set -- $(echo "$QtVersion" | sed -e 's/\./ /g')
|
||||
|
||||
QtMajor=$1
|
||||
QtMinor=$2
|
||||
|
||||
if [ $QtMajor -lt 4 -o $QtMajor -eq 4 -a $QtMinor -lt 5 ]
|
||||
then
|
||||
echo "*** Error: Qt version provided < 4.5"
|
||||
echo "*** Please use the -qmake option to specify the location of a version of Qt >= 4.5"
|
||||
echo "*** e.g."
|
||||
echo "*** -qmake /usr/local/qt-4.6.2/bin/qmake"
|
||||
echo "*** -qmake $installBASE/qt-4.6.2/bin/qmake"
|
||||
QT version ($QT_VERSION) provided < 4.5
|
||||
Please use the -qmake option to specify the location of a newer QT version
|
||||
For example,
|
||||
... -qmake /usr/local/qt-4.6.2/bin/qmake
|
||||
... -qmake $installBASE/qt-4.6.2/bin/qmake
|
||||
----
|
||||
ERROR
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
(4.*)
|
||||
# Default changed to Qt5 with paraview 5.2.1, so specify explicitly
|
||||
addCMakeVariable "PARAVIEW_QT_VERSION=4"
|
||||
|
||||
# Non-system installation - specify location of qmake
|
||||
if [ "$qmake" != /usr/bin/qmake ]
|
||||
then
|
||||
addCMakeVariable "QT_QMAKE_EXECUTABLE=$qmake"
|
||||
fi
|
||||
;;
|
||||
|
||||
(5.*)
|
||||
# Default changed to Qt5 with paraview 5.2.1, so specify explicitly
|
||||
addCMakeVariable "PARAVIEW_QT_VERSION=5"
|
||||
|
||||
# Non-system installation - find CMake config files
|
||||
if [ "$qmake" != /usr/bin/qmake ] \
|
||||
&& qtLib="$($qmake -query QT_INSTALL_LIBS)/cmake/Qt5" \
|
||||
&& [ -d "$qtLib" ]
|
||||
then
|
||||
addCMakeVariable "Qt5_DIR=$qtLib"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
else
|
||||
echo "*** Error: cannot find qmake either at \$QMAKE_PATH or in current \$PATH"
|
||||
QT_VERSION=none
|
||||
echo "Error: cannot find qmake either at \$QMAKE_PATH or in current \$PATH"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
@ -364,57 +373,20 @@ patchParaView()
|
||||
#
|
||||
configParaView()
|
||||
{
|
||||
unset cmakeExe
|
||||
if [ -n "$CMAKE_PATH" ]
|
||||
then
|
||||
if [ -d "$CMAKE_PATH" ]
|
||||
then
|
||||
if [ -x "$CMAKE_PATH/cmake" ]
|
||||
then
|
||||
cmakeExe=$CMAKE_PATH/cmake
|
||||
elif [ -x "$CMAKE_PATH/bin/cmake" ]
|
||||
then
|
||||
cmakeExe=$CMAKE_PATH/bin/cmake
|
||||
fi
|
||||
elif [ -x "$CMAKE_PATH" ]
|
||||
then
|
||||
cmakeExe=$CMAKE_PATH
|
||||
fi
|
||||
|
||||
if [ -n "$cmakeExe" ]
|
||||
then
|
||||
# Use absolute path
|
||||
if [ "${cmakeExe#/}" = "$cmakeExe" ]
|
||||
then
|
||||
cmakeExe="$(cd ${cmakeExe%/cmake} 2>/dev/null && pwd)/cmake"
|
||||
fi
|
||||
else
|
||||
echo
|
||||
echo "cmake not found under specified CMAKE_PATH"
|
||||
echo " CMAKE_PATH=$CMAKE_PATH"
|
||||
echo "leaving unspecified"
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
|
||||
# Default to using cmake from the path
|
||||
if [ -z "$cmakeExe" ]
|
||||
then
|
||||
cmakeExe=cmake
|
||||
fi
|
||||
local cmake=$(findCMake)
|
||||
|
||||
# Remove any existing build folder and recreate
|
||||
if [ -d $ParaView_BINARY_DIR ]
|
||||
if [ -d $ParaView_BUILD_DIR ]
|
||||
then
|
||||
echo "removing old build directory"
|
||||
echo " $ParaView_BINARY_DIR"
|
||||
rm -rf $ParaView_BINARY_DIR
|
||||
echo " $ParaView_BUILD_DIR"
|
||||
rm -rf $ParaView_BUILD_DIR
|
||||
fi
|
||||
mkdir -p $ParaView_BINARY_DIR
|
||||
mkdir -p $ParaView_BUILD_DIR
|
||||
|
||||
addCMakeVariable "CMAKE_BUILD_TYPE:STRING=$buildType"
|
||||
addCMakeVariable "CMAKE_BUILD_TYPE=$BUILD_TYPE"
|
||||
|
||||
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
|
||||
cd $ParaView_BUILD_DIR || exit 1 # Change to build folder
|
||||
|
||||
echo "----"
|
||||
echo "Configuring paraview-$ParaView_VERSION (major version: $ParaView_MAJOR)"
|
||||
@ -422,15 +394,16 @@ configParaView()
|
||||
echo " Python support : ${withPYTHON:-false}"
|
||||
echo " MESA support : ${withMESA:-false}"
|
||||
echo " GL2 rendering : ${withGL2:-false}"
|
||||
echo " Qt dev support : ${withQT:-false}"
|
||||
echo " QT dev support : ${withQT:-true}"
|
||||
echo " Source : $ParaView_SOURCE_DIR"
|
||||
echo " Build : $ParaView_BINARY_DIR"
|
||||
echo " Build : $ParaView_BUILD_DIR"
|
||||
echo " Target : $ParaView_DIR"
|
||||
echo " Build type : $buildType"
|
||||
echo " cmake : $cmake"
|
||||
echo " Build suffix : ${BUILD_SUFFIX:-none}"
|
||||
echo "----"
|
||||
echo
|
||||
echo "$cmakeExe" \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
|
||||
echo "$cmake" \
|
||||
-DCMAKE_INSTALL_PREFIX=$ParaView_DIR \
|
||||
$CMAKE_VARIABLES \
|
||||
$ParaView_SOURCE_DIR
|
||||
echo
|
||||
@ -438,8 +411,8 @@ configParaView()
|
||||
echo
|
||||
|
||||
# Run cmake to create Makefiles
|
||||
$cmakeExe \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
|
||||
$cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=$ParaView_DIR \
|
||||
$CMAKE_VARIABLES \
|
||||
$ParaView_SOURCE_DIR
|
||||
}
|
||||
@ -451,7 +424,7 @@ configParaView()
|
||||
#
|
||||
makeParaView()
|
||||
{
|
||||
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
|
||||
cd $ParaView_BUILD_DIR || exit 1 # Change to build folder
|
||||
echo " Starting make"
|
||||
time make -j $WM_NCOMPPROCS
|
||||
echo " Done make"
|
||||
@ -470,40 +443,49 @@ makeParaView()
|
||||
#
|
||||
installParaView()
|
||||
{
|
||||
cd $ParaView_BINARY_DIR || exit 1 # Change to build folder
|
||||
cd $ParaView_BUILD_DIR || exit 1 # Change to build folder
|
||||
echo " Installing ParaView to $ParaView_DIR"
|
||||
|
||||
make install
|
||||
|
||||
cat<< INFO
|
||||
---
|
||||
Installation complete for paraview-$ParaView_VERSION
|
||||
Now update the environment by running:
|
||||
wmREFRESH
|
||||
---
|
||||
# System or non-system installation of QT?
|
||||
local qmake qtLib QT_VERSION
|
||||
if qmake=$(findQMake 2>/dev/null)
|
||||
then
|
||||
qtLib=$($qmake -query QT_INSTALL_LIBS)
|
||||
QT_VERSION=$($qmake -query QT_VERSION 2>/dev/null)
|
||||
fi
|
||||
|
||||
/bin/cat<<INFO
|
||||
|
||||
====
|
||||
Installation complete for paraview-$ParaView_VERSION with qt-${QT_VERSION:-none}
|
||||
ParaView_DIR=$ParaView_DIR
|
||||
|
||||
You may need to update the OpenFOAM environment by running:
|
||||
wmRefresh
|
||||
INFO
|
||||
|
||||
# Non-system installation of QT?
|
||||
if [ "$qmake" != /usr/bin/qmake -a -d "$qtLib" ]
|
||||
then
|
||||
/bin/cat<<INFO
|
||||
|
||||
And adjust your LD_LIBRARY_PATH to include the following:
|
||||
$qtLib
|
||||
INFO
|
||||
fi
|
||||
|
||||
echo "===="
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Clear the referenced variables before using any of the functions
|
||||
unset withMPI withVERBOSE
|
||||
unset withQT QMAKE_PATH
|
||||
unset withMESA MESA_INCLUDE MESA_LIBRARY
|
||||
unset withPYTHON PYTHON_INCLUDE PYTHON_LIBRARY
|
||||
unset CMAKE_VARIABLES
|
||||
unset OBJ_ADD
|
||||
unset buildType
|
||||
|
||||
# Start with these general settings
|
||||
addCMakeVariable "BUILD_SHARED_LIBS:BOOL=ON VTK_USE_RPATH:BOOL=OFF"
|
||||
addCMakeVariable "BUILD_SHARED_LIBS=ON" "BUILD_TESTING=OFF"
|
||||
|
||||
# Include development files in "make install"
|
||||
addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON"
|
||||
|
||||
# Don't build test tree
|
||||
addCMakeVariable "BUILD_TESTING:BOOL=OFF"
|
||||
|
||||
addCMakeVariable "PARAVIEW_INSTALL_DEVELOPMENT_FILES=ON"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -3,146 +3,61 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/tools/QtFunction
|
||||
#
|
||||
# Description
|
||||
# Functions for helping relocate a QT installation
|
||||
# To be loaded *after* etc/tools/ThirdPartyFunctions
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Qt-related variables. Initialization at the end of the file.
|
||||
|
||||
qtTYPE=qt-everywhere-opensource-src
|
||||
unset qtVERSION # No default version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# create a qt.conf file in the QT bin/
|
||||
# this can be modified easily if the qt installation gets relocated
|
||||
# Create a qt.conf file in the QT bin/
|
||||
# - this can be modified easily if the qt installation is relocated
|
||||
#
|
||||
createQtConf()
|
||||
{
|
||||
echo "create:"
|
||||
echo " $prefixDIR/bin/qt.conf"
|
||||
local confFile="$QT_ARCH_PATH/bin/qt.conf"
|
||||
|
||||
[ -n "$prefixDIR" -a -d "$prefixDIR/bin" ] || {
|
||||
echo "Error: prefixDIR not correctly set"
|
||||
return
|
||||
}
|
||||
if [ -n "$QT_ARCH_PATH" -a -d "$QT_ARCH_PATH/bin" ]
|
||||
then
|
||||
/bin/cat << QT_CONF > $confFile
|
||||
[Paths]
|
||||
Prefix=$QT_ARCH_PATH
|
||||
QT_CONF
|
||||
echo " created qt.conf"
|
||||
|
||||
echo "[Paths]" > $prefixDIR/bin/qt.conf
|
||||
echo "Prefix=$prefixDIR" >> $prefixDIR/bin/qt.conf
|
||||
else
|
||||
echo "Error: QT_ARCH_PATH not correctly set"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# adjust pkgconfig information
|
||||
# to generalize *location=, -L/... and -I/...
|
||||
# to use ${prefix}
|
||||
#
|
||||
adjustPkgConfig()
|
||||
{
|
||||
echo "edit pkgconfig:"
|
||||
echo " $prefixDIR/lib/pkgconfig/*.pc"
|
||||
|
||||
[ -n "$prefixDIR" -a -d "$prefixDIR/lib/pkgconfig" ] || {
|
||||
echo "Error: prefixDIR not correctly set"
|
||||
return
|
||||
}
|
||||
|
||||
(
|
||||
cd $prefixDIR/lib/pkgconfig || exit
|
||||
|
||||
unset nfiles
|
||||
for i in *.pc
|
||||
do
|
||||
if [ -f "$i" ]
|
||||
then
|
||||
nfiles="x$nfiles"
|
||||
sed -i \
|
||||
-e 's@\(location=\)'"$prefixDIR/"'@\1${prefix}/@' \
|
||||
-e 's@\(-[IL]\)'"$prefixDIR/"'@\1${prefix}/@g' \
|
||||
$i
|
||||
fi
|
||||
done
|
||||
echo " edited ${#nfiles} files"
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# change prefix=... and Prefix=... to use ${prefix}
|
||||
#
|
||||
changePrefix()
|
||||
{
|
||||
echo "relocate QT installation to new prefix directory:"
|
||||
echo " $prefixDIR"
|
||||
echo "edit:"
|
||||
echo " $prefixDIR/bin/qt.conf"
|
||||
echo " $prefixDIR/lib/pkgconfig/*.pc"
|
||||
|
||||
[ -n "$prefixDIR" -a -d "$prefixDIR/bin" -a -d "$prefixDIR/lib/pkgconfig" ] || {
|
||||
echo "Error: prefixDIR not correctly set"
|
||||
return
|
||||
}
|
||||
|
||||
# adjust qt.conf
|
||||
for i in $prefixDIR/bin/qt.conf
|
||||
do
|
||||
if [ -f "$i" ]
|
||||
then
|
||||
nfiles="x$nfiles"
|
||||
sed -i \
|
||||
-e 's@^\([Pp]refix=\).*$@\1'"$prefixDIR@" \
|
||||
$i
|
||||
echo " edited 1 file"
|
||||
fi
|
||||
done
|
||||
|
||||
# adjust pkgconfig files
|
||||
(
|
||||
cd $prefixDIR/lib/pkgconfig || exit
|
||||
|
||||
unset nfiles
|
||||
for i in *.pc
|
||||
do
|
||||
if [ -f "$i" ]
|
||||
then
|
||||
nfiles="x$nfiles"
|
||||
sed -i \
|
||||
-e 's@^\([Pp]refix=\).*$@\1'"$prefixDIR@" \
|
||||
$i
|
||||
fi
|
||||
done
|
||||
echo " edited ${#nfiles} files"
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# create qt.conf and adjustPkgConfig to use ${prefix} internally
|
||||
# create qt.conf and adjust locations to use ${prefix} internally
|
||||
#
|
||||
finalizeQt()
|
||||
{
|
||||
echo "Create/Edit files to ease later relocation of a QT installation"
|
||||
createQtConf
|
||||
adjustPkgConfig
|
||||
pkgconfigAdjust $QT_ARCH_PATH
|
||||
}
|
||||
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
@ -3,38 +3,163 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/tools/ThirdPartyFunctions
|
||||
#
|
||||
# Description
|
||||
# Functions for managing the third-party packages
|
||||
# Various functions used in building ThirdParty packages
|
||||
#
|
||||
# Define the standard buildBASE and installBASE for the platform
|
||||
# Define WM_NCOMPPROCS always.
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Define the normal build and prefix directories
|
||||
# The normal locations for source, build and installation (prefix-dir)
|
||||
sourceBASE=$WM_THIRD_PARTY_DIR
|
||||
buildBASE=$WM_THIRD_PARTY_DIR/build/$WM_ARCH$WM_COMPILER
|
||||
installBASE=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
|
||||
|
||||
# Dynamic library endings (default is .so)
|
||||
[ "$(uname -s)" = Darwin ] && SO=dylib || SO=so
|
||||
|
||||
unset BUILD_SUFFIX
|
||||
#------------------------------------------------------------------------------
|
||||
# Export WM compiler settings (and flags) for CMake/configure
|
||||
# $1 = true: export compiler flags too
|
||||
exportCompiler()
|
||||
{
|
||||
if test -n "$WM_CC" && command -v "$WM_CC" >/dev/null
|
||||
then
|
||||
export CC="$WM_CC"
|
||||
if [ "$1" = true -a -n "$WM_CFLAGS" ]
|
||||
then
|
||||
export CFLAGS="$WM_CFLAGS"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$WM_CXX" && command -v "$WM_CXX" >/dev/null
|
||||
then
|
||||
export CXX="$WM_CXX"
|
||||
if [ "$1" = true -a -n "$WM_CXXFLAGS" ]
|
||||
then
|
||||
export CXXFLAGS="$WM_CXXFLAGS"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Export WM linker settings for CMake/configure
|
||||
exportLinker()
|
||||
{
|
||||
if [ -n "$WM_LDFLAGS" ]
|
||||
then
|
||||
export LDFLAGS="$WM_LDFLAGS"
|
||||
fi
|
||||
}
|
||||
|
||||
# Force use of gcc/g++
|
||||
useGcc()
|
||||
{
|
||||
export CC=gcc # Use gcc/g++
|
||||
export CXX=g++
|
||||
}
|
||||
|
||||
# Scan arguments for a '-gcc' option, forcing gcc/g++ when found
|
||||
useGccFlag()
|
||||
{
|
||||
for i
|
||||
do
|
||||
if [ "$i" = "-gcc" ]
|
||||
then
|
||||
useGcc
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Return <mpicc> by default or <mpiicc> if possible for INTELMPI.
|
||||
# Cray doesn't have <mpicc>, but its <cc> manages mpi paths directly.
|
||||
# NOTE: could further refine based on $CC or $WM_CC, but not yet needed
|
||||
whichMpicc()
|
||||
{
|
||||
local mpicc=$(command -v mpicc)
|
||||
case "$WM_MPLIB" in
|
||||
(INTELMPI)
|
||||
mpicc=$(command -v mpiicc) # Intel <mpiicc> available?
|
||||
;;
|
||||
(CRAY-MPI*)
|
||||
: ${mpicc:=cc} # Cray <cc> if there is no <mpicc>
|
||||
;;
|
||||
esac
|
||||
echo "${mpicc:-mpicc}"
|
||||
}
|
||||
|
||||
# The presence of wmkdep etc required for building with wmake
|
||||
requireWMakeToolchain()
|
||||
{
|
||||
local dir="${WM_DIR:-$WM_PROJECT_DIR/wmake}"
|
||||
local src="$dir/src"
|
||||
local bin="$dir/platforms/$WM_ARCH$WM_COMPILER/wmkdep"
|
||||
|
||||
test -x $bin || {
|
||||
echo "Warning: the 'wmkdep' binary is missing - attempting to build it"
|
||||
( cd $src && make -s )
|
||||
}
|
||||
|
||||
test -x $bin || {
|
||||
exec 1>&2
|
||||
echo
|
||||
echo "Error: cannot use wmake build for '${0##*/}"
|
||||
echo " The 'wmkdep' binary is missing"
|
||||
echo " Please run the top-level OpenFOAM Allwmake first"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Some functions as per OpenFOAM etc/config.sh/functions
|
||||
|
||||
unset -f _foamAddLib _foamAddLibAuto _foamAddMan _foamAddPath # Get settings only
|
||||
unset -f _foamClean _foamConfig
|
||||
|
||||
if [ -x "$WM_PROJECT_DIR/bin/foamCleanPath" ]
|
||||
then
|
||||
# Cleaning environment variables
|
||||
_foamClean()
|
||||
{
|
||||
local var=$1
|
||||
shift
|
||||
eval $($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=$var "$@")
|
||||
}
|
||||
else
|
||||
_foamClean() { echo "No foamCleanPath" 1>&2; }
|
||||
fi
|
||||
|
||||
# Source an etc/config.sh file
|
||||
_foamConfig() { eval "$($WM_PROJECT_DIR/bin/foamEtcFile -sh -config $@)"; }
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Set a suffix for the build
|
||||
# - eg, for -mpi, or -mesa etc
|
||||
#
|
||||
setBuildSuffix()
|
||||
{
|
||||
BUILD_SUFFIX="${1##-}"
|
||||
if [ -n "$BUILD_SUFFIX" ]
|
||||
then
|
||||
BUILD_SUFFIX="-${BUILD_SUFFIX}"
|
||||
else
|
||||
unset BUILD_SUFFIX
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Mostly building without wmake
|
||||
@ -42,20 +167,18 @@ installBASE=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
|
||||
# - use max number of cores for building
|
||||
#
|
||||
unset WM_HOSTS WM_SCHEDULER
|
||||
if [ -r /proc/cpuinfo ]
|
||||
then
|
||||
WM_NCOMPPROCS=$(egrep "^processor" /proc/cpuinfo | wc -l)
|
||||
else
|
||||
WM_NCOMPPROCS=1
|
||||
fi
|
||||
|
||||
WM_NCOMPPROCS=$(egrep -c "^processor" /proc/cpuinfo 2>/dev/null) || \
|
||||
WM_NCOMPPROCS=$(getconf _NPROCESSORS_ONLN 2>/dev/null) || \
|
||||
WM_NCOMPPROCS=1
|
||||
: ${WM_NCOMPPROCS:=1}
|
||||
export WM_NCOMPPROCS
|
||||
# echo "Building on $WM_NCOMPPROCS cores"
|
||||
|
||||
|
||||
#
|
||||
# If WM_CONTINUE_ON_ERROR not set activate the shell option "stop on error"
|
||||
#
|
||||
if [ -z "${WM_CONTINUE_ON_ERROR}" ]
|
||||
if [ -z "$WM_CONTINUE_ON_ERROR" ]
|
||||
then
|
||||
set -e
|
||||
fi
|
||||
@ -85,6 +208,258 @@ _foamIsSystem()
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Try to locate cmake according to the CMAKE_PATH.
|
||||
#
|
||||
# On success: return the resolved value as output.
|
||||
# On failure: just report what is found in the path.
|
||||
#
|
||||
unset CMAKE_PATH # clear when first loaded
|
||||
findCMake()
|
||||
{
|
||||
local candidate foundExe
|
||||
|
||||
if [ -n "$CMAKE_PATH" ]
|
||||
then
|
||||
# Check as directory
|
||||
if [ -d "$CMAKE_PATH" ]
|
||||
then
|
||||
for candidate in \
|
||||
$CMAKE_PATH/cmake \
|
||||
$CMAKE_PATH/bin/cmake \
|
||||
;
|
||||
do
|
||||
if [ -f "$candidate" -a -x "$candidate" ]
|
||||
then
|
||||
foundExe=$candidate
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Check as file, include ThirdParty installation in the search
|
||||
if [ -z "$foundExe" ]
|
||||
then
|
||||
for candidate in \
|
||||
$CMAKE_PATH \
|
||||
$installBASE/$CMAKE_PATH/bin/cmake \
|
||||
$installBASE/cmake-$CMAKE_PATH/bin/cmake \
|
||||
;
|
||||
do
|
||||
if [ -f "$candidate" -a -x "$candidate" ]
|
||||
then
|
||||
foundExe=$candidate
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -n "$foundExe" ]
|
||||
then
|
||||
# Use absolute path
|
||||
if [ "${foundExe#/}" = "$foundExe" ]
|
||||
then
|
||||
foundExe="$(cd ${foundExe%/cmake} 2>/dev/null && pwd)/cmake"
|
||||
fi
|
||||
echo "Using cmake=$foundExe" 1>&2
|
||||
echo $foundExe
|
||||
return 0
|
||||
else
|
||||
cat << NOT_FOUND 1>&2
|
||||
'cmake' not found under specified CMAKE_PATH
|
||||
CMAKE_PATH=$CMAKE_PATH
|
||||
reverting to using command from path
|
||||
NOT_FOUND
|
||||
fi
|
||||
fi
|
||||
|
||||
# Default to use the path, try resolving (so we know what we are using).
|
||||
for candidate in cmake
|
||||
do
|
||||
foundExe=$(command -v $candidate 2>/dev/null) && break
|
||||
done
|
||||
: ${foundExe:=false}
|
||||
|
||||
echo "Using cmake=$foundExe" 1>&2
|
||||
echo $foundExe
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Try to locate qmake or qmake-qt5 according to the QMAKE_PATH
|
||||
#
|
||||
# On success: return the resolved value as output.
|
||||
# On failure: just report what is found in the path.
|
||||
#
|
||||
unset QMAKE_PATH # clear when first loaded
|
||||
findQMake()
|
||||
{
|
||||
local candidate foundExe
|
||||
|
||||
if [ -n "$QMAKE_PATH" ]
|
||||
then
|
||||
# Check as directory
|
||||
if [ -d "$QMAKE_PATH" ]
|
||||
then
|
||||
for candidate in \
|
||||
$QMAKE_PATH/qmake \
|
||||
$QMAKE_PATH/bin/qmake \
|
||||
;
|
||||
do
|
||||
if [ -f "$candidate" -a -x "$candidate" ]
|
||||
then
|
||||
foundExe=$candidate
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Check as file, include ThirdParty installation in the search
|
||||
if [ -z "$foundExe" ]
|
||||
then
|
||||
for candidate in \
|
||||
$QMAKE_PATH \
|
||||
$installBASE/$QMAKE_PATH/bin/qmake \
|
||||
$installBASE/qt-$QMAKE_PATH/bin/qmake \
|
||||
;
|
||||
do
|
||||
if [ -f "$candidate" -a -x "$candidate" ]
|
||||
then
|
||||
foundExe=$candidate
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -n "$foundExe" ]
|
||||
then
|
||||
# Use absolute path
|
||||
if [ "${foundExe#/}" = "$foundExe" ]
|
||||
then
|
||||
foundExe="$(cd ${foundExe%/qmake} 2>/dev/null && pwd)/qmake"
|
||||
fi
|
||||
echo "Using qmake=$foundExe" 1>&2
|
||||
echo $foundExe
|
||||
return 0
|
||||
else
|
||||
cat << NOT_FOUND 1>&2
|
||||
'qmake' not found under specified QMAKE_PATH
|
||||
QMAKE_PATH=$QMAKE_PATH
|
||||
reverting to using command from path
|
||||
NOT_FOUND
|
||||
fi
|
||||
fi
|
||||
|
||||
# Default to use the path, try resolving (so we know what we are using).
|
||||
# Some systems have qmake-qt5 as well as qmake
|
||||
for candidate in qmake-qt5 qmake
|
||||
do
|
||||
foundExe=$(command -v $candidate 2>/dev/null) && break
|
||||
done
|
||||
: ${foundExe:=false}
|
||||
|
||||
echo "Using qmake=$foundExe" 1>&2
|
||||
echo $foundExe
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Set a new prefix=... in pkgconfig files
|
||||
#
|
||||
pkgconfigNewPrefix()
|
||||
{
|
||||
local dir="${1%%/}"
|
||||
|
||||
if [ -n "$dir" -a -d "$dir" ]
|
||||
then
|
||||
# Require absolute path, but use logical (not physical) location
|
||||
[ "${dir}" != "${dir#/}" ] || dir=$(cd $dir 2>/dev/null && /bin/pwd -L)
|
||||
# Strip sub-level
|
||||
case "$dir" in (*/pkgconfig) dir="${dir%/*}";; esac
|
||||
# Strip a level
|
||||
case "$dir" in (*/lib | */lib64 | */bin) dir="${dir%/*}";; esac
|
||||
fi
|
||||
|
||||
# Verify that the prefix path is valid
|
||||
# Warning (not an error) - thus no special return code
|
||||
[ -n "$dir" -a -d "$dir" ] || {
|
||||
echo "Warning: invalid prefix directory: $dir" 1>&2
|
||||
return 0
|
||||
}
|
||||
|
||||
echo "Set pkgconfig prefix : $dir"
|
||||
|
||||
local nfiles
|
||||
for libdir in lib/pkgconfig lib64/pkgconfig
|
||||
do
|
||||
unset nfiles
|
||||
[ -d "$dir/$libdir" ] || continue
|
||||
for i in $dir/$libdir/*.pc
|
||||
do
|
||||
if [ -f "$i" -a ! -L "$i" ]
|
||||
then
|
||||
nfiles="x$nfiles"
|
||||
sed -i~ -e 's@^\(prefix=\).*$@\1'"$dir@" $i
|
||||
fi
|
||||
done
|
||||
echo " $libdir/*.pc (edited ${#nfiles})"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Adjust pkgconfig information to use '${prefix} where possible instead
|
||||
# of directory paths.
|
||||
#
|
||||
# Adjusts includedir=, libdir=, -I/... and -L/... and
|
||||
# any *_location= entries (QT)
|
||||
#
|
||||
pkgconfigAdjust()
|
||||
{
|
||||
local dir="${1%%/}"
|
||||
|
||||
if [ -n "$dir" -a -d "$dir" ]
|
||||
then
|
||||
# Require absolute path, but use logical (not physical) location
|
||||
[ "${dir}" != "${dir#/}" ] || dir=$(cd $dir 2>/dev/null && /bin/pwd -L)
|
||||
# Strip sub-level
|
||||
case "$dir" in (*/pkgconfig) dir="${dir%/*}";; esac
|
||||
# Strip a level
|
||||
case "$dir" in (*/lib | */lib64 | */bin) dir="${dir%/*}";; esac
|
||||
fi
|
||||
|
||||
# Verify that the prefix path is valid
|
||||
# Warning (not an error) - thus no special return code
|
||||
[ -n "$dir" -a -d "$dir" ] || {
|
||||
echo "Warning: invalid prefix directory: $dir" 1>&2
|
||||
return 0
|
||||
}
|
||||
|
||||
echo "Adjust pkgconfig locations : $dir"
|
||||
|
||||
local nfiles
|
||||
for libdir in lib/pkgconfig lib64/pkgconfig
|
||||
do
|
||||
unset nfiles
|
||||
[ -d "$dir/$libdir" ] || continue
|
||||
for i in $dir/$libdir/*.pc
|
||||
do
|
||||
if [ -f "$i" -a ! -L "$i" ]
|
||||
then
|
||||
nfiles="x$nfiles"
|
||||
sed -i~ \
|
||||
-e 's@^\(includedir=\)'"$dir/"'@\1${prefix}/@' \
|
||||
-e 's@^\(libdir=\)'"$dir/"'@\1${prefix}/@' \
|
||||
-e 's@\(_location=\)'"$dir/"'@\1${prefix}/@' \
|
||||
-e 's@\(-[IL]\)'"$dir/"'@\1${prefix}/@g' \
|
||||
$i
|
||||
fi
|
||||
done
|
||||
echo " $libdir/*.pc (edited ${#nfiles})"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Download file $1 from url $2 into download/ directory
|
||||
#
|
||||
@ -108,14 +483,12 @@ downloadFile()
|
||||
|
||||
|
||||
#
|
||||
# Copy Make/{files,options} from etc/wmakeFiles/PACKAGE
|
||||
# Copy Make/{files,options} from etc/makeFiles/PACKAGE
|
||||
#
|
||||
# $1 = PACKAGE
|
||||
# $2 = TARGET DIRECTORY (optional)
|
||||
cpMakeFiles()
|
||||
{
|
||||
set +x
|
||||
|
||||
[ "$#" -eq 1 -o "$#" -eq 2 ] || {
|
||||
echo "cpMakeFiles called with incorrect number of arguments $@"
|
||||
return 1
|
||||
@ -125,7 +498,7 @@ cpMakeFiles()
|
||||
local dst="${2:-.}"
|
||||
echo "cpMakeFiles" $pkg $dst
|
||||
|
||||
wmakeFiles=$WM_THIRD_PARTY_DIR/etc/wmakeFiles/$pkg
|
||||
wmakeFiles=$WM_THIRD_PARTY_DIR/etc/makeFiles/$pkg
|
||||
|
||||
for i in $(cd $wmakeFiles && find . -type f)
|
||||
do
|
||||
@ -147,8 +520,6 @@ cpMakeFiles()
|
||||
cp $wmakeFiles/$i $dst/$d/Make/$b
|
||||
fi
|
||||
done
|
||||
|
||||
set -x
|
||||
}
|
||||
|
||||
|
||||
@ -181,7 +552,7 @@ applyPatch()
|
||||
else
|
||||
echo "apply patch for $pkg"
|
||||
touch "$sentinel"
|
||||
patch -p1 < $patch 2>&1 | tee $sentinel
|
||||
patch -b -l -p1 < $patch 2>&1 | tee $sentinel
|
||||
fi
|
||||
)
|
||||
else
|
||||
@ -189,4 +560,5 @@ applyPatch()
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
195
etc/tools/vtkFunctions
Normal file
195
etc/tools/vtkFunctions
Normal file
@ -0,0 +1,195 @@
|
||||
#---------------------------------*- sh -*-------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# etc/tools/vtkFunctions
|
||||
#
|
||||
# Description
|
||||
# VTK (library) make/install helper functions.
|
||||
# To be loaded *after* etc/tools/ParaViewFunctions
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Variables referenced by the functions. Initialization at the end of the file.
|
||||
unset CMAKE_VARIABLES
|
||||
|
||||
# sourceBASE, buildBASE, installBASE and BUILD_SUFFIX
|
||||
# are defined in tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Where things are or should be put
|
||||
# VTK_VERSION and VTK_MAJOR should already have been set
|
||||
#
|
||||
# VTK_SOURCE_DIR : location of the original sources
|
||||
# VTK_BUILD_DIR : location of the build
|
||||
# VTK_DIR : location of the installed program
|
||||
#
|
||||
setVtkDirs()
|
||||
{
|
||||
set -- "VTK-$VTK_VERSION" "VTK-v$VTK_VERSION"
|
||||
unset VTK_SOURCE_DIR
|
||||
|
||||
for i
|
||||
do
|
||||
VTK_SOURCE_DIR="$sourceBASE/$i"
|
||||
[ -d "$VTK_SOURCE_DIR" ] && break
|
||||
done
|
||||
|
||||
[ -d "$VTK_SOURCE_DIR" ] || {
|
||||
echo "Did not locate VTK version:"
|
||||
while [ "$#" -ge 1 ]; do echo " $1"; shift; done
|
||||
echo
|
||||
echo "In the directory:"
|
||||
echo " $sourceBASE"
|
||||
echo
|
||||
echo "abort build"
|
||||
exit 1
|
||||
}
|
||||
|
||||
VTK_BUILD_DIR=$buildBASE/VTK-$VTK_VERSION$BUILD_SUFFIX
|
||||
VTK_DIR=$installBASE/VTK-$VTK_VERSION$BUILD_SUFFIX
|
||||
|
||||
export VTK_SOURCE_DIR VTK_BUILD_DIR VTK_DIR
|
||||
|
||||
echo
|
||||
echo "VTK_SOURCE_DIR=$VTK_SOURCE_DIR"
|
||||
echo "VTK_BUILD_DIR=$VTK_BUILD_DIR"
|
||||
echo "VTK_DIR=$VTK_DIR"
|
||||
|
||||
export GIT_DIR=$VTK_SOURCE_DIR/.git # Mask seeing our own git-repo
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Set VTK_VERSION and adjust VTK_MAJOR accordingly
|
||||
#
|
||||
# $1 can contain something something like 4.4.0, vtk-4.4.0, VTK-4.0.0
|
||||
#
|
||||
setVtkVersion()
|
||||
{
|
||||
[ $# -gt 0 ] || {
|
||||
echo "Error: function setVtkVersion() called without an argument"
|
||||
exit 1
|
||||
}
|
||||
|
||||
VTK_VERSION="${1##*-}"
|
||||
|
||||
# The major version is "<digits>.<digits>"
|
||||
VTK_MAJOR=$(echo $VTK_VERSION | \
|
||||
sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/')
|
||||
|
||||
export VTK_VERSION VTK_MAJOR
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Apply source-code patch if possible
|
||||
#
|
||||
patchVTK()
|
||||
{
|
||||
applyPatch "vtk-$VTK_VERSION" "$VTK_SOURCE_DIR"
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Configure via cmake, but don't actually build anything
|
||||
#
|
||||
configVTK()
|
||||
{
|
||||
local cmake=$(findCMake)
|
||||
|
||||
# Remove any existing build folder and recreate
|
||||
if [ -d $VTK_BUILD_DIR ]
|
||||
then
|
||||
echo "removing old build directory"
|
||||
echo " $VTK_BUILD_DIR"
|
||||
rm -rf $VTK_BUILD_DIR
|
||||
fi
|
||||
mkdir -p $VTK_BUILD_DIR
|
||||
|
||||
addCMakeVariable "CMAKE_BUILD_TYPE=$BUILD_TYPE"
|
||||
|
||||
cd $VTK_BUILD_DIR || exit 1 # change to build folder
|
||||
|
||||
echo "----"
|
||||
echo "Configuring VTK-$VTK_VERSION"
|
||||
echo " MESA support : ${withMESA:-false}"
|
||||
echo " Source : $VTK_SOURCE_DIR"
|
||||
echo " Build : $VTK_BUILD_DIR"
|
||||
echo " Target : $VTK_DIR"
|
||||
echo " cmake : $cmake"
|
||||
echo " Build suffix : ${BUILD_SUFFIX:-none}"
|
||||
echo "----"
|
||||
echo
|
||||
echo "$cmake" \
|
||||
-DCMAKE_INSTALL_PREFIX=$VTK_DIR \
|
||||
$CMAKE_VARIABLES \
|
||||
$VTK_SOURCE_DIR
|
||||
echo
|
||||
echo "----"
|
||||
echo
|
||||
|
||||
# Run cmake to create Makefiles
|
||||
$cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=$VTK_DIR \
|
||||
$CMAKE_VARIABLES \
|
||||
$VTK_SOURCE_DIR
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Invoke make
|
||||
# also link bin/ to lib/paraview-* for development without installation
|
||||
#
|
||||
makeVTK()
|
||||
{
|
||||
cd $VTK_BUILD_DIR || exit 1 # Change to build folder
|
||||
echo " Starting make"
|
||||
time make -j $WM_NCOMPPROCS
|
||||
|
||||
# Remove lib if it is a link
|
||||
# (how this was previously handled before 'make install' worked)
|
||||
[ -L lib ] && rm -f lib 2>/dev/null
|
||||
|
||||
echo " Done make" # Last statement for clean return code
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Install the program
|
||||
#
|
||||
installVTK()
|
||||
{
|
||||
cd $VTK_BUILD_DIR || exit 1 # Change to build folder
|
||||
echo " Installing VTK to $VTK_DIR"
|
||||
|
||||
make install
|
||||
|
||||
/bin/cat<<INFO
|
||||
|
||||
====
|
||||
Installation complete for vtk-$VTK_VERSION as
|
||||
VTK_DIR=$VTK_DIR
|
||||
====
|
||||
INFO
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Start with these general settings
|
||||
addCMakeVariable "BUILD_SHARED_LIBS=ON" "BUILD_TESTING=OFF"
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -1,27 +0,0 @@
|
||||
/* NOTE: make any changes to this file in etc/wmakeFiles/ */
|
||||
|
||||
adf = libadf
|
||||
$(adf)/ADF_fortran_2_c.c
|
||||
$(adf)/ADF_interface.c
|
||||
$(adf)/ADF_internals.c
|
||||
|
||||
ccmio = libccmio
|
||||
$(ccmio)/ccmio.c
|
||||
$(ccmio)/ccmiocore.c
|
||||
$(ccmio)/ccmioprivate.c
|
||||
$(ccmio)/ccmioutility.c
|
||||
$(ccmio)/ccmioversion.c
|
||||
|
||||
/*
|
||||
* the cgns library is not used by ccmio
|
||||
* retain for documentation purposes only
|
||||
*
|
||||
cgns = libcgns
|
||||
$(cgns)/adf_cond.c
|
||||
$(cgns)/adf_ftoc.c
|
||||
$(cgns)/cgns_error.c
|
||||
$(cgns)/cgns_internals.c
|
||||
$(cgns)/cgnslib.c
|
||||
*/
|
||||
|
||||
LIB = $(FOAM_EXT_LIBBIN)/libccmio
|
||||
@ -1,3 +0,0 @@
|
||||
/* NOTE: make any changes to this file in etc/wmakeFiles/ */
|
||||
|
||||
/* EXE_INC = */
|
||||
@ -1,21 +0,0 @@
|
||||
EXE =
|
||||
LIB = .so
|
||||
OBJ = .o
|
||||
|
||||
MAKE = make
|
||||
AR = gcc
|
||||
ARFLAGS = -m32 -shared -o
|
||||
CAT = cat
|
||||
CCS = gcc
|
||||
CCP = mpicc
|
||||
CCD = mpicc
|
||||
CFLAGS = -m32 -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict
|
||||
CLIBFLAGS = -shared -fPIC
|
||||
LDFLAGS = -Xlinker --no-as-needed -L$MPI_ARCH_PATH/lib -m32 -lz -lm -lrt
|
||||
CP = cp
|
||||
LEX = flex -Pscotchyy -olex.yy.c
|
||||
LN = ln
|
||||
MKDIR = mkdir
|
||||
MV = mv
|
||||
RANLIB = echo
|
||||
YACC = bison -pscotchyy -y -b y
|
||||
@ -1,21 +0,0 @@
|
||||
EXE =
|
||||
LIB = .so
|
||||
OBJ = .o
|
||||
|
||||
MAKE = make
|
||||
AR = gcc
|
||||
ARFLAGS = -shared -o
|
||||
CAT = cat
|
||||
CCS = gcc
|
||||
CCP = mpicc
|
||||
CCD = mpicc
|
||||
CFLAGS = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict
|
||||
CLIBFLAGS = -shared -fPIC
|
||||
LDFLAGS = -Xlinker --no-as-needed -lz -lm -lrt
|
||||
CP = cp
|
||||
LEX = flex -Pscotchyy -olex.yy.c
|
||||
LN = ln
|
||||
MKDIR = mkdir
|
||||
MV = mv
|
||||
RANLIB = echo
|
||||
YACC = bison -pscotchyy -y -b y
|
||||
@ -1,21 +0,0 @@
|
||||
EXE =
|
||||
LIB = .so
|
||||
OBJ = .o
|
||||
|
||||
MAKE = make
|
||||
AR = gcc
|
||||
ARFLAGS = -shared -o
|
||||
CAT = cat
|
||||
CCS = gcc
|
||||
CCP = mpicc
|
||||
CCD = mpicc
|
||||
CFLAGS = -O3 -DINTSIZE64 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict
|
||||
CLIBFLAGS = -shared -fPIC
|
||||
LDFLAGS = -Xlinker --no-as-needed -lz -lm -lrt
|
||||
CP = cp
|
||||
LEX = flex -Pscotchyy -olex.yy.c
|
||||
LN = ln
|
||||
MKDIR = mkdir
|
||||
MV = mv
|
||||
RANLIB = echo
|
||||
YACC = bison -pscotchyy -y -b y
|
||||
358
makeADIOS
Executable file
358
makeADIOS
Executable file
@ -0,0 +1,358 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeADIOS
|
||||
#
|
||||
# Description
|
||||
# Build script for ADIOS
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# ADIOS version from OpenFOAM etc/config.sh file:
|
||||
_foamConfig ADIOS
|
||||
|
||||
adiosPACKAGE=${adios_version:-adios-none}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [adios-VERSION] [-- configure-options]
|
||||
options:
|
||||
-cmake PATH With cmake from the path given
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* Build ADIOS
|
||||
$adiosPACKAGE
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler true # Compiler info + flags for CMake/configure
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
--) break;; # Extra configure options (leave on $@ for later detection)
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
-cmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
CMAKE_PATH="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
ADIOS-[1-9]* | adios-[1-9]* | ADIOS-git* | adios-git*)
|
||||
adiosPACKAGE="${1%%/}"
|
||||
;;
|
||||
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$adiosPACKAGE" ] || die "The adios-VERSION was not specified"
|
||||
|
||||
# Nothing to build
|
||||
if _foamIsNone "$adiosPACKAGE"
|
||||
then
|
||||
echo "Using adios-none (skip ThirdParty build of ADIOS)"
|
||||
exit 0
|
||||
elif _foamIsSystem "$adiosPACKAGE"
|
||||
then
|
||||
echo "Using adios-system"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build ADIOS
|
||||
# ADIOS_SOURCE_DIR : location of the original sources
|
||||
# ADIOS_ARCH_PATH : installation directory
|
||||
|
||||
ADIOS_SOURCE_DIR=$sourceBASE/$adiosPACKAGE
|
||||
ADIOS_ARCH_PATH=$installBASE/$adiosPACKAGE
|
||||
|
||||
: ${FOAM_MPI:=dummy}
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
echo "Build adios library $adiosPACKAGE for $FOAM_MPI"
|
||||
echo
|
||||
|
||||
|
||||
#
|
||||
# Manual adjustments to adios config
|
||||
#
|
||||
adjustADIOS()
|
||||
{
|
||||
# Rename libraries according to FOAM_MPI
|
||||
(
|
||||
cd $ADIOS_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH || exit 1
|
||||
|
||||
if [ "$FOAM_MPI" != dummy ]
|
||||
then
|
||||
\mv -f libadios.a libadios_$FOAM_MPI.a
|
||||
\mv -f libadiosread.a libadiosread_$FOAM_MPI.a
|
||||
fi
|
||||
\mv -f libadios_nompi.a libadios_dummy.a
|
||||
\mv -f libadiosread_nompi.a libadiosread_dummy.a
|
||||
|
||||
echo
|
||||
echo "ADIOS library renamed to libadios_$FOAM_MPI"
|
||||
echo
|
||||
)
|
||||
|
||||
# We don't need/use XML things
|
||||
\rm -f $ADIOS_ARCH_PATH/bin/adios_lint
|
||||
|
||||
# Replace resolved paths with variables
|
||||
echo "Adjust prefix for ADIOS"
|
||||
for i in \
|
||||
$ADIOS_ARCH_PATH/bin/adios_config \
|
||||
$ADIOS_ARCH_PATH/etc/adios_config.flags \
|
||||
;
|
||||
do
|
||||
[ -f "$i" ] || {
|
||||
echo " no such file - '$i'"
|
||||
continue
|
||||
}
|
||||
if sed -i -e 's|'"$WM_THIRD_PARTY_DIR"'|$WM_THIRD_PARTY_DIR|g' $i
|
||||
then
|
||||
echo " '$i'"
|
||||
else
|
||||
echo " problems with '$i'"
|
||||
fi
|
||||
done
|
||||
|
||||
# Adjust the config flags file:
|
||||
# * Remove references to Fortran libraries (disabled in configure)
|
||||
# * Remove references to deprecated version 1 API
|
||||
# * Cleanup excessive whitespace
|
||||
# * Handle renamed libraries:
|
||||
# - libadios -> libadios_$FOAM_MPI
|
||||
# - libadios_nompi -> libadios_dummy
|
||||
#
|
||||
echo "Adjust library names for ADIOS"
|
||||
for i in \
|
||||
$ADIOS_ARCH_PATH/etc/adios_config.flags \
|
||||
;
|
||||
do
|
||||
[ -f "$i" ] || {
|
||||
echo " no such file - '$i'"
|
||||
continue
|
||||
}
|
||||
|
||||
if sed -i \
|
||||
-e '/_FLIB=/d' \
|
||||
-e '/_V1_INC=/d' \
|
||||
-e 's| *| |g' \
|
||||
-e 's|\(-ladios[a-z]*_\)nompi |\1dummy |g' \
|
||||
$i
|
||||
then
|
||||
echo " '$i'"
|
||||
else
|
||||
echo " problems with '$i'"
|
||||
fi
|
||||
|
||||
if [ "$FOAM_MPI" != dummy ]
|
||||
then
|
||||
sed -i -e 's|\(-ladios[a-z]*\) |\1_'"$FOAM_MPI |g" $i || \
|
||||
echo " problems with '$i'"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
#
|
||||
# List ADIOS methods/configuration
|
||||
#
|
||||
listMethods()
|
||||
{
|
||||
[ -f $ADIOS_ARCH_PATH/bin/adios_config ] || {
|
||||
echo "Warning: no adios_config"
|
||||
return 1
|
||||
}
|
||||
|
||||
echo "==============="
|
||||
|
||||
# May have problems listing parallel methods (eg, transport key missing)
|
||||
if $ADIOS_ARCH_PATH/bin/adios_config -m >/dev/null 2>&1
|
||||
then
|
||||
$ADIOS_ARCH_PATH/bin/adios_config -m 2>/dev/null
|
||||
else
|
||||
echo "Warning: could not list parallel methods"
|
||||
# Fallback to serial methods
|
||||
$ADIOS_ARCH_PATH/bin/adios_config -s -m 2>/dev/null
|
||||
fi || echo "Warning: could not list configured methods"
|
||||
echo "==============="
|
||||
|
||||
}
|
||||
|
||||
|
||||
# Needs future adjustment
|
||||
# - for shared library
|
||||
# - for mpi-specific library locations
|
||||
if [ -f $ADIOS_ARCH_PATH/include/adios.h \
|
||||
-a -r $ADIOS_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libadios_${FOAM_MPI}.a ]
|
||||
then
|
||||
echo " ADIOS header in $ADIOS_ARCH_PATH/include"
|
||||
### echo " ADIOS libs in $FOAM_EXT_LIBBIN" # dynamic
|
||||
echo " ADIOS libs in $ADIOS_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" # static
|
||||
listMethods
|
||||
elif [ -z "$CMAKE_PATH" ]
|
||||
then
|
||||
echo "Starting build: $adiosPACKAGE (using configure)"
|
||||
echo
|
||||
(
|
||||
# Configuration options:
|
||||
unset configOpt
|
||||
|
||||
# Add InfiniBand support
|
||||
ibDir=/usr/local/ofed
|
||||
if [ -d "$ibDir" -a "$FOAM_MPI" != dummy ]
|
||||
then
|
||||
configOpt="$configOpt --with-infiniband=$ibDir"
|
||||
fi
|
||||
|
||||
# Transport layers
|
||||
if [ -f /usr/include/bzlib.h ]
|
||||
then
|
||||
configOpt="$configOpt --with-bzip2"
|
||||
fi
|
||||
|
||||
if [ -f /usr/include/zlib.h ]
|
||||
then
|
||||
configOpt="$configOpt --with-zlib"
|
||||
fi
|
||||
|
||||
# Other types of support
|
||||
## configOpt="$configOpt --with-hdf5=..."
|
||||
## configOpt="$configOpt --with-lustre=..."
|
||||
## configOpt="$configOpt --enable-research-transports"
|
||||
|
||||
# Additional configure options
|
||||
if [ "$1" = "--" ]
|
||||
then
|
||||
shift
|
||||
configOpt="$configOpt $@"
|
||||
fi
|
||||
|
||||
# End of configuration options
|
||||
# ----------------------------
|
||||
buildDIR=$buildBASE/$adiosPACKAGE
|
||||
|
||||
cd $ADIOS_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
|
||||
applyPatch $adiosPACKAGE $ADIOS_SOURCE_DIR
|
||||
|
||||
# Remove any existing build folder and recreate
|
||||
rm -rf $ADIOS_ARCH_DIR
|
||||
rm -rf $buildDIR 2>/dev/null
|
||||
mkdir -p $buildDIR
|
||||
|
||||
[ -f configure ] || {
|
||||
echo "no configure for $adiosPACKAGE ... trying autogen"
|
||||
./autogen.sh
|
||||
}
|
||||
|
||||
# May not work properly with FOAM_MPI = dummy
|
||||
if [ "$FOAM_MPI" = dummy ]
|
||||
then
|
||||
configOpt="$configOpt --without-mpi"
|
||||
else
|
||||
CC=mpicc
|
||||
CXX=mpicxx
|
||||
fi
|
||||
|
||||
# Install into lib64/
|
||||
cd $buildDIR && $ADIOS_SOURCE_DIR/configure \
|
||||
--prefix=$ADIOS_ARCH_PATH \
|
||||
--libdir=$ADIOS_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--disable-fortran \
|
||||
--with-pic \
|
||||
--without-fastbit \
|
||||
$configOpt \
|
||||
&& make -j $WM_NCOMPPROCS all \
|
||||
&& make install \
|
||||
&& echo "Built: $adiosPACKAGE" \
|
||||
&& adjustADIOS \
|
||||
&& listMethods
|
||||
) || {
|
||||
echo "Error building: $adiosPACKAGE"
|
||||
}
|
||||
else
|
||||
# CMake options often lag the configure ones
|
||||
echo "Starting build: $adiosPACKAGE (using cmake)"
|
||||
echo
|
||||
(
|
||||
buildDIR=$buildBASE/$adiosPACKAGE
|
||||
cd $ADIOS_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
applyPatch $adiosPACKAGE $ADIOS_SOURCE_DIR
|
||||
|
||||
# Remove any existing build folder and recreate
|
||||
rm -rf $ADIOS_ARCH_DIR
|
||||
rm -rf $buildDIR 2>/dev/null
|
||||
mkdir -p $buildDIR
|
||||
|
||||
# May not work properly with FOAM_MPI = dummy
|
||||
if [ "$FOAM_MPI" = dummy ]
|
||||
then
|
||||
configOpt="$configOpt --without-mpi"
|
||||
else
|
||||
CC=mpicc
|
||||
CXX=mpicxx
|
||||
fi
|
||||
|
||||
cmake=$(findCMake)
|
||||
|
||||
# Install into lib64/
|
||||
cd $buildDIR && $cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=$ADIOS_ARCH_PATH \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_FORTRAN=FALSE \
|
||||
${WM_QUIET:+-DCMAKE_RULE_MESSAGES=OFF} \
|
||||
$ADIOS_SOURCE_DIR \
|
||||
&& make -j $WM_NCOMPPROCS all \
|
||||
&& make install \
|
||||
&& echo "Built: $adiosPACKAGE" \
|
||||
&& adjustADIOS \
|
||||
&& listMethods
|
||||
) || {
|
||||
echo "Error building: $adiosPACKAGE"
|
||||
}
|
||||
fi
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
163
makeADIOS2
Executable file
163
makeADIOS2
Executable file
@ -0,0 +1,163 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# This file is part of OpenFOAM, licensed under the GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeADIOS2
|
||||
#
|
||||
# Description
|
||||
# Build script for ADIOS2
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
# ADIOS2 version from OpenFOAM etc/config.sh file:
|
||||
_foamConfig ADIOS2
|
||||
|
||||
adios2PACKAGE=${adios2_version:-adios-none}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [adios-VERSION]
|
||||
options:
|
||||
-cmake PATH With cmake from the path given
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* Build ADIOS2
|
||||
$adios2PACKAGE
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler true # Compiler info + flags for CMake/configure
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
-cmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
CMAKE_PATH="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
ADIOS2-[1-9]* | adios2-[1-9]* | ADIOS2-git* | adios2-git*)
|
||||
adios2PACKAGE="${1%%/}"
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$adios2PACKAGE" ] || die "The adios2-VERSION was not specified"
|
||||
|
||||
# nothing to build
|
||||
if _foamIsNone "$adios2PACKAGE"
|
||||
then
|
||||
echo "Using adios-none (skip ThirdParty build of ADIOS)"
|
||||
exit 0
|
||||
elif _foamIsSystem "$adios2PACKAGE"
|
||||
then
|
||||
echo "Using adios-system"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build ADIOS
|
||||
# ADIOS2_SOURCE_DIR : location of the original sources
|
||||
# ADIOS2_ARCH_PATH : installation directory
|
||||
|
||||
ADIOS2_SOURCE_DIR=$sourceBASE/$adios2PACKAGE
|
||||
ADIOS2_ARCH_PATH=$installBASE/$adios2PACKAGE
|
||||
|
||||
: ${FOAM_MPI:=dummy}
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
echo "Build adios library $adiosPACKAGE for $FOAM_MPI"
|
||||
echo
|
||||
|
||||
|
||||
# Needs future adjustment
|
||||
# - for shared library
|
||||
# - for mpi-specific library locations
|
||||
if [ -f $ADIOS2_ARCH_PATH/include/adios.h \
|
||||
-a -r $ADIOS2_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libadios_${FOAM_MPI}.a ]
|
||||
then
|
||||
echo " ADIOS2 header in $ADIOS2_ARCH_PATH/include"
|
||||
### echo " ADIOS2 libs in $FOAM_EXT_LIBBIN" # dynamic
|
||||
echo " ADIOS2 libs in $ADIOS2_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" # static
|
||||
else
|
||||
# CMake options often lag the configure ones
|
||||
echo "Starting build: $adios2PACKAGE (using cmake)"
|
||||
echo
|
||||
(
|
||||
buildDIR=$buildBASE/$adios2PACKAGE
|
||||
cd $ADIOS2_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
applyPatch $adios2PACKAGE $ADIOS2_SOURCE_DIR
|
||||
|
||||
# Remove any existing build folder and recreate
|
||||
rm -rf $ADIOS2_ARCH_DIR
|
||||
rm -rf $buildDIR 2>/dev/null
|
||||
mkdir -p $buildDIR
|
||||
|
||||
# May not work properly with FOAM_MPI = dummy
|
||||
if [ "$FOAM_MPI" = dummy ]
|
||||
then
|
||||
configOpt="$configOpt --without-mpi"
|
||||
else
|
||||
CC=mpicc
|
||||
CXX=mpicxx
|
||||
fi
|
||||
|
||||
# HACK
|
||||
export ADIOS1_ROOT=/local/home/mark/openfoam/ThirdParty-plus/platforms/linux64Gcc/ADIOS-1.12.0
|
||||
|
||||
cmake=$(findCMake)
|
||||
|
||||
# Install into lib64/
|
||||
cd $buildDIR && $cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=$ADIOS2_ARCH_PATH \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_FORTRAN=FALSE \
|
||||
-DADIOS1_USE_STATIC_LIBS=TRUE \
|
||||
${WM_QUIET:+-DCMAKE_RULE_MESSAGES=OFF} \
|
||||
$ADIOS2_SOURCE_DIR \
|
||||
&& make -j $WM_NCOMPPROCS all \
|
||||
&& make install \
|
||||
&& echo "Built: $adios2PACKAGE"
|
||||
) || {
|
||||
echo "Error building: $adios2PACKAGE"
|
||||
}
|
||||
fi
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
134
makeCCMIO
134
makeCCMIO
@ -4,56 +4,45 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
# \\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeCCMIO
|
||||
#
|
||||
# Description
|
||||
# Build CD-adapco's ccmio library
|
||||
# Build the libccmio library
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Dynamic library endings (default is .so)
|
||||
[ "$(uname -s)" = Darwin ] && SO=dylib || SO=so
|
||||
|
||||
# Get version info
|
||||
. $WM_PROJECT_DIR/etc/config.sh/functions
|
||||
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/ccmio)
|
||||
|
||||
ccmioPACKAGE=${ccmio_version:-libccmio-2.6.1}
|
||||
targetType=libso
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# run from third-party directory only
|
||||
cd ${0%/*} || exit 1
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
[ -n "$FOAM_EXT_LIBBIN" ] || {
|
||||
echo "Error: FOAM_EXT_LIBBIN not set"
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# libccmio version from OpenFOAM etc/config.sh file:
|
||||
_foamConfig ccmio
|
||||
|
||||
ccmioPACKAGE=${ccmio_version:-libccmio-2.6.1}
|
||||
targetType=lib # Default is static linkage
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage()
|
||||
{
|
||||
exec 1>&2
|
||||
@ -62,13 +51,14 @@ usage()
|
||||
|
||||
Usage: ${0##*/} [OPTION] [lib|libso] [libccmio-VERSION]
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* Compile the proprietary libccmio library
|
||||
$ccmioPACKAGE
|
||||
|
||||
Users wishing to make use of the library should contact cd-adapco
|
||||
(Siemens PLM) for possible download and terms of use.
|
||||
Users wishing to obtain the library should contact Siemens PLM (cd-adapco)
|
||||
for terms of use.
|
||||
|
||||
After obtaining the $ccmioPACKAGE library, place in folder
|
||||
|
||||
@ -79,15 +69,16 @@ options:
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
lib|libso)
|
||||
targetType="$1"
|
||||
;;
|
||||
@ -101,39 +92,60 @@ do
|
||||
shift
|
||||
done
|
||||
|
||||
# assert: directory must be available
|
||||
[ -d "${ccmioPACKAGE}" ] || die "missing source directory '$ccmioPACKAGE'"
|
||||
|
||||
requireWMakeToolchain
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
CCMIO_ARCH_PATH=$installBASE/$ccmioPACKAGE
|
||||
|
||||
#
|
||||
# Build LIBCCMIO
|
||||
#
|
||||
echo "---------------"
|
||||
(
|
||||
cd $ccmioPACKAGE || exit 1
|
||||
incDIR=$CCMIO_ARCH_PATH/include/libccmio
|
||||
libDIR=$CCMIO_ARCH_PATH/lib
|
||||
CCMIO_SOURCE_DIR=$sourceBASE/$ccmioPACKAGE
|
||||
CCMIO_ARCH_PATH=$installBASE/$ccmioPACKAGE
|
||||
|
||||
mkdir -p $incDIR 2>/dev/null
|
||||
mkdir -p $libDIR 2>/dev/null
|
||||
# Sources must be available
|
||||
[ -d "$CCMIO_SOURCE_DIR" ] || die "Missing sources: '$ccmioPACKAGE'"
|
||||
|
||||
#
|
||||
# Manual installation
|
||||
#
|
||||
install()
|
||||
{
|
||||
# Ensure a clean build next time
|
||||
wclean
|
||||
|
||||
local incdir=$CCMIO_ARCH_PATH/include/libccmio
|
||||
|
||||
# Make headers available:
|
||||
mkdir -m 0755 -p $incdir
|
||||
|
||||
/bin/cp -pv libccmio/ccmio*.h $incdir
|
||||
}
|
||||
|
||||
echo "Starting build: $ccmioPACKAGE ($targetType)"
|
||||
echo
|
||||
(
|
||||
cd $CCMIO_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
rm -rf $CCMIO_ARCH_PATH
|
||||
rm -f $FOAM_EXT_LIBBIN/libccmio.$SO
|
||||
|
||||
libdir=$CCMIO_ARCH_PATH/lib
|
||||
|
||||
cpMakeFiles libccmio 2>/dev/null
|
||||
set +x
|
||||
if wmake $targetType
|
||||
|
||||
# Place static libraries in sub-directory:
|
||||
if [ "$targetType" = lib ]
|
||||
then
|
||||
# make headers available:
|
||||
/bin/cp -pv libccmio/ccmio*.h $incDIR
|
||||
|
||||
# relocate static libraries to sub-directory:
|
||||
if [ "$targetType" = lib ]
|
||||
then
|
||||
/bin/mv -v $FOAM_EXT_LIBBIN/libccmio.a $libDIR
|
||||
fi
|
||||
mkdir -m 0755 -p $libdir 2>/dev/null
|
||||
export FOAM_EXT_LIBBIN=$libdir
|
||||
fi
|
||||
)
|
||||
|
||||
wmake -j $WM_NCOMPPROCS -s $targetType \
|
||||
&& echo "Built: ccmio" \
|
||||
&& install
|
||||
) || {
|
||||
echo "Error building: ccmio"
|
||||
exit 1
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
424
makeCGAL
424
makeCGAL
@ -4,23 +4,11 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeCGAL
|
||||
@ -34,14 +22,53 @@
|
||||
# simply specify a 'system' version. For example,
|
||||
# makeCGAL boost-system gmp-system
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Dynamic library endings (default is .so)
|
||||
[ "$(uname -s)" = Darwin ] && SO=dylib || SO=so
|
||||
|
||||
# Get CGAL, boost and gmp/mpfr versions
|
||||
. $WM_PROJECT_DIR/etc/config.sh/functions
|
||||
unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only
|
||||
# Short-circuit test for an installation
|
||||
if [ "$1" = "-test" ]
|
||||
then
|
||||
[ "$#" -eq 3 ] || { echo "${0##*/} -test : needs 2 argument"; exit 1; }
|
||||
dir="$2" # <- CGAL_ARCH_PATH
|
||||
if [ -d "$dir/include" -a -r "$dir/lib$WM_COMPILER_LIB_ARCH/libCGAL.$SO" ]
|
||||
then
|
||||
echo " CGAL include: $dir/include"
|
||||
echo " CGAL library: $dir/lib$WM_COMPILER_LIB_ARCH"
|
||||
# Additional information about boost
|
||||
dir="$3" # <- BOOST_ARCH_PATH
|
||||
for root in "$dir" /usr
|
||||
do
|
||||
if [ -d "$root/include/boost" \
|
||||
-a -r "$root/lib$WM_COMPILER_LIB_ARCH/libboost_system.$SO" ]
|
||||
then
|
||||
echo " boost include: $root/include"
|
||||
echo " boost library: $root/lib$WM_COMPILER_LIB_ARCH"
|
||||
break
|
||||
fi
|
||||
done
|
||||
exit 0
|
||||
else
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
unset BOOST_ARCH_PATH CGAL_ARCH_PATH GMP_ARCH_PATH MPFR_ARCH_PATH # Purge old
|
||||
|
||||
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL)
|
||||
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler)
|
||||
# CGAL, boost and gmp/mpfr versions from OpenFOAM etc/config.sh files.
|
||||
# Get compiler first and let CGAL config override GMP and MPFR
|
||||
_foamConfig compiler
|
||||
_foamConfig CGAL
|
||||
|
||||
boostPACKAGE=${boost_version:-boost-system}
|
||||
gmpPACKAGE=${gmp_version:-gmp-system}
|
||||
@ -49,25 +76,16 @@ mpfrPACKAGE=${mpfr_version:-mpfr-system}
|
||||
cgalPACKAGE=$cgal_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
Script="${0##*/}"
|
||||
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: $Script [OPTION] [CGAL-VERSION] [boost-VERSION] [gmp-VERSION] [mpfr-VERSION]
|
||||
usage: ${0##*/} [OPTION] [CGAL-VERSION] [boost-VERSION] [gmp-VERSION] [mpfr-VERSION]
|
||||
options:
|
||||
-cmake PATH with cmake from the path given
|
||||
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-no-lib compile CGAL for use in headers only mode (since CGAL 4.9)
|
||||
-system use system versions for boost/gmp/mpfr
|
||||
-help
|
||||
|
||||
@ -80,47 +98,54 @@ options:
|
||||
Normally builds against ThirdParty boost and gmp/mpfr when possible.
|
||||
To override this behaviour (and use the system boost and/or gmp/mpfr),
|
||||
simply specify a 'system' version. For example,
|
||||
$Script boost-system gmp-system
|
||||
${0##*/} boost-system gmp-system
|
||||
|
||||
Use gmp-none to disable use of gmp/mpfr (eg, not available)
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler # Compiler info for CMake/configure
|
||||
|
||||
# Ensure CMake gets the correct C/C++ compiler
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CCX"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
unset optHeadersOnly
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'')
|
||||
# discard empty arguments
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
-cmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
CMAKE_PATH="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-sys*)
|
||||
gmpPACKAGE="gmp-system"
|
||||
mpfrPACKAGE="mpfr-system"
|
||||
boostPACKAGE="boost-system"
|
||||
unset BOOST_ARCH_PATH GMP_ARCH_PATH MPFR_ARCH_PATH
|
||||
;;
|
||||
gmp-[4-9]* | gmp-system)
|
||||
-no-lib)
|
||||
optHeadersOnly=true
|
||||
;;
|
||||
gmp-[4-9]* | gmp-system | gmp-none)
|
||||
gmpPACKAGE="${1%%/}"
|
||||
unset GMP_ARCH_PATH
|
||||
;;
|
||||
mpfr-[2-9]* | mpfr-system)
|
||||
mpfr-[2-9]* | mpfr-system | mpfr-none)
|
||||
mpfrPACKAGE="${1%%/}"
|
||||
;;
|
||||
CGAL-[0-9]*)
|
||||
cgalPACKAGE="${1%%/}"
|
||||
unset MPFR_ARCH_PATH
|
||||
;;
|
||||
boost-[0-9]* | boost_[0-9]* | boost-system )
|
||||
boostPACKAGE="${1%%/}"
|
||||
unset BOOST_ARCH_PATH
|
||||
;;
|
||||
CGAL-[0-9]*)
|
||||
cgalPACKAGE="${1%%/}"
|
||||
unset CGAL_ARCH_PATH
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
@ -131,13 +156,13 @@ done
|
||||
|
||||
[ -n "$cgalPACKAGE" ] || die "The cgal-VERSION was not specified"
|
||||
|
||||
# nothing to build
|
||||
if _foamIsNone "$boostPACKAGE"
|
||||
# Nothing to build
|
||||
if _foamIsNone $boostPACKAGE
|
||||
then
|
||||
echo "Using boost-none (skip ThirdParty build of BOOST/CGAL)"
|
||||
exit 0
|
||||
fi
|
||||
if _foamIsNone "$cgalPACKAGE"
|
||||
if _foamIsNone $cgalPACKAGE
|
||||
then
|
||||
echo "Using cgal-none (skip ThirdParty build of CGAL)"
|
||||
exit 0
|
||||
@ -146,39 +171,70 @@ fi
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build Boost
|
||||
# For 64-bit
|
||||
# - Third-Party builds into 'lib'
|
||||
# For 64-bit:
|
||||
# - system is normally built into 'lib64'
|
||||
# - use Third-Party 'lib64' for consistency.
|
||||
# Boost 1_62_0 and older normally build into 'lib'.
|
||||
#
|
||||
# BOOST_ARCH_PATH : installation directory
|
||||
# BOOST_SOURCE_DIR : location of the original sources
|
||||
|
||||
BOOST_ARCH_PATH=$installBASE/$boostPACKAGE
|
||||
BOOST_SOURCE_DIR=$WM_THIRD_PARTY_DIR/$boostPACKAGE
|
||||
BOOST_SOURCE_DIR=$sourceBASE/$boostPACKAGE
|
||||
: ${BOOST_ARCH_PATH:=$installBASE/$boostPACKAGE} # Fallback
|
||||
|
||||
if [ -d "$BOOST_ARCH_PATH" ]
|
||||
then
|
||||
boostInc="$BOOST_ARCH_PATH/include"
|
||||
boostLib="$BOOST_ARCH_PATH/lib"
|
||||
elif _foamIsSystem $BOOST_ARCH_PATH
|
||||
boostInc="$BOOST_ARCH_PATH/include"
|
||||
boostLib="$BOOST_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
|
||||
if _foamIsSystem $boostPACKAGE
|
||||
then
|
||||
echo "Using boost-system (skip ThirdParty build of BOOST)"
|
||||
|
||||
boostInc="/usr/include"
|
||||
boostLib="/usr/lib$WM_COMPILER_LIB_ARCH"
|
||||
else
|
||||
echo "Starting build: boost"
|
||||
echo
|
||||
# Tagged as 'system' but could actually point to a central location
|
||||
|
||||
boostInc="$BOOST_ARCH_PATH/include"
|
||||
boostLib="$BOOST_ARCH_PATH/lib"
|
||||
if [ -d "$boostInc" ]
|
||||
then
|
||||
if BOOST_ARCH_PATH=$(cd $BOOST_ARCH_PATH 2>/dev/null && pwd -P)
|
||||
then
|
||||
boostPACKAGE=${BOOST_ARCH_PATH##*/}
|
||||
else
|
||||
echo "ERROR: bad path for BOOST_ARCH_PATH"
|
||||
echo "stopping build"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
libdir="$BOOST_ARCH_PATH/lib"
|
||||
else
|
||||
boostInc="/usr/include"
|
||||
boostLib="/usr/lib$WM_COMPILER_LIB_ARCH"
|
||||
libdir="/usr/lib"
|
||||
fi
|
||||
|
||||
# Use lib/ when lib64/ does not exist
|
||||
[ ! -d "$boostLib" -a -d "$libdir" ] && boostLib="$libdir"
|
||||
|
||||
elif [ -f "$boostInc/boost/version.hpp" ]
|
||||
then
|
||||
echo "Using $boostPACKAGE"
|
||||
|
||||
libdir="$BOOST_ARCH_PATH/lib"
|
||||
|
||||
# Use lib when lib64 does not exist
|
||||
[ ! -d "$boostLib" -a -d "$libdir" ] && boostLib="$libdir"
|
||||
|
||||
else
|
||||
echo "Starting build: $boostPACKAGE"
|
||||
echo
|
||||
# Absolute path for --libdir
|
||||
|
||||
(
|
||||
cd $BOOST_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
rm -rf $BOOST_ARCH_PATH
|
||||
|
||||
./bootstrap.sh \
|
||||
--prefix=$BOOST_ARCH_PATH \
|
||||
--libdir=$boostLib \
|
||||
--with-libraries=thread \
|
||||
--with-libraries=system \
|
||||
&& ./bjam toolset=$WM_CC -j $WM_NCOMPPROCS install \
|
||||
@ -189,8 +245,8 @@ else
|
||||
}
|
||||
fi
|
||||
|
||||
# nothing left to build
|
||||
if _foamIsSystem "$cgalPACKAGE"
|
||||
# Nothing left to build
|
||||
if _foamIsSystem $cgalPACKAGE
|
||||
then
|
||||
echo "Using cgal-system (skip ThirdParty build of CGAL)"
|
||||
exit 0
|
||||
@ -210,6 +266,67 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build CGAL
|
||||
# For 64-bit:
|
||||
# - system is normally built into 'lib64'
|
||||
# - use Third-Party 'lib64' for consistency.
|
||||
# CGAL-4.9 normally builds into 'lib64', older versions into 'lib'.
|
||||
#
|
||||
# CGAL_SOURCE_DIR : location of the original sources
|
||||
# CGAL_BUILD_DIR : location of the build
|
||||
# CGAL_ARCH_PATH : installation directory
|
||||
|
||||
CGAL_SOURCE_DIR=$sourceBASE/$cgalPACKAGE
|
||||
CGAL_BUILD_DIR=$buildBASE/$cgalPACKAGE
|
||||
: ${CGAL_ARCH_PATH:=$installBASE/$cgalPACKAGE} # Fallback
|
||||
|
||||
# gmp/mpfr are installed without compiler name
|
||||
mpfrBASE=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH
|
||||
|
||||
# Enable/disable gmp/mpfr together
|
||||
if _foamIsNone $gmpPACKAGE || _foamIsNone $mpfrPACKAGE
|
||||
then
|
||||
GMP_ARCH_PATH=none
|
||||
MPFR_ARCH_PATH=none
|
||||
elif _foamIsSystem $gmpPACKAGE || _foamIsSystem $mpfrPACKAGE
|
||||
then
|
||||
# May really be system, but could also by a central installation
|
||||
# Ensure everything is accurately recorded. Resolve paths etc.
|
||||
|
||||
if [ -d "$GMP_ARCH_PATH" ]
|
||||
then
|
||||
if GMP_ARCH_PATH=$(cd $GMP_ARCH_PATH 2>/dev/null && pwd -P)
|
||||
then
|
||||
gmpPACKAGE=${GMP_ARCH_PATH##*/}
|
||||
else
|
||||
echo "ERROR: bad path for GMP_ARCH_PATH"
|
||||
echo "stopping build"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
GMP_ARCH_PATH=system
|
||||
fi
|
||||
|
||||
if [ -d "$MPFR_ARCH_PATH" ]
|
||||
then
|
||||
if MPFR_ARCH_PATH=$(cd $MPFR_ARCH_PATH 2>/dev/null && pwd -P)
|
||||
then
|
||||
mpfrPACKAGE=${MPFR_ARCH_PATH##*/}
|
||||
else
|
||||
echo "ERROR: bad path for MPFR_ARCH_PATH"
|
||||
echo "stopping build"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
MPFR_ARCH_PATH=system
|
||||
fi
|
||||
else
|
||||
GMP_ARCH_PATH=$mpfrBASE/$gmpPACKAGE
|
||||
MPFR_ARCH_PATH=$mpfrBASE/$mpfrPACKAGE
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
cat<<SUMMARY
|
||||
@ -222,29 +339,6 @@ CGAL configuration
|
||||
------------------
|
||||
SUMMARY
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build CGAL
|
||||
# For 64-bit
|
||||
# - Third-Party builds into 'lib'
|
||||
# - system is normally built into 'lib64'
|
||||
#
|
||||
# CGAL_SOURCE_DIR : location of the original sources
|
||||
# CGAL_BINARY_DIR : location of the build
|
||||
# CGAL_DIR : location of the installed program
|
||||
|
||||
CGAL_SOURCE_DIR=$WM_THIRD_PARTY_DIR/$cgalPACKAGE
|
||||
CGAL_BINARY_DIR=$buildBASE/$cgalPACKAGE
|
||||
CGAL_ARCH_PATH=$installBASE/$cgalPACKAGE
|
||||
CGAL_DIR=$CGAL_ARCH_PATH
|
||||
|
||||
#
|
||||
# gmp/mpfr installed without compiler name
|
||||
installBASE=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH
|
||||
|
||||
GMP_ARCH_PATH=$installBASE/$gmpPACKAGE
|
||||
MPFR_ARCH_PATH=$installBASE/$mpfrPACKAGE
|
||||
|
||||
#
|
||||
# build information recorded for later use
|
||||
#
|
||||
@ -255,17 +349,23 @@ recordCGALinfo()
|
||||
CGAL_VERSION=$(sed -ne 's/^ *# *define *CGAL_VERSION_NR *\([0-9][0-9]*\).*$/\1/p' $CGAL_ARCH_PATH/include/CGAL/version.h 2>/dev/null)
|
||||
|
||||
cat<<BUILD_INFO > $buildInfoFile
|
||||
# Information from OpenFOAM build on '$(date)'
|
||||
#
|
||||
CGAL=${CGAL_ARCH_PATH##*/}
|
||||
BOOST=${BOOST_ARCH_PATH##*/}
|
||||
GMP=${GMP_ARCH_PATH##*/}
|
||||
MPFR=${MPFR_ARCH_PATH##*/}
|
||||
CGAL_VERSION=$CGAL_VERSION
|
||||
BOOST_VERSION=$BOOST_VERSION
|
||||
|
||||
CGAL_lib=lib$WM_COMPILER_LIB_ARCH
|
||||
BOOST_lib=lib$WM_COMPILER_LIB_ARCH
|
||||
CGAL_HEADER_ONLY=${optHeadersOnly:-false}
|
||||
BUILD_INFO
|
||||
}
|
||||
|
||||
|
||||
# compare expected vs what is extracted as KEY=... in text
|
||||
# Compare expected vs what is extracted as KEY=... in text
|
||||
# $1 = key
|
||||
# $2 = expected
|
||||
# $3 = text to extract from
|
||||
@ -281,12 +381,15 @@ infoValueEq()
|
||||
fi
|
||||
}
|
||||
|
||||
# needs build
|
||||
# Needs build
|
||||
cgalIsCurrent()
|
||||
{
|
||||
local info=$(cat $buildInfoFile 2>/dev/null)
|
||||
# Only need VAR=... (also avoids embedded '#' that bothers some shells)
|
||||
local info=$(sed -n -e '/^[A-Z]/p' $buildInfoFile 2>/dev/null)
|
||||
[ -n "$info" ] || return 1
|
||||
|
||||
local libDirName="lib$WM_COMPILER_LIB_ARCH"
|
||||
|
||||
echo "checking information from existing build ..."
|
||||
echo " ${CGAL_ARCH_PATH}"
|
||||
|
||||
@ -295,10 +398,13 @@ cgalIsCurrent()
|
||||
infoValueEq GMP "${GMP_ARCH_PATH##*/}" "$info" || return 1
|
||||
infoValueEq MPFR "${MPFR_ARCH_PATH##*/}" "$info" || return 1
|
||||
infoValueEq BOOST_VERSION "${BOOST_VERSION}" "$info" || return 1
|
||||
infoValueEq CGAL_lib "$libDirName" "$info" || return 1
|
||||
infoValueEq BOOST_lib "$libDirName" "$info" || return 1
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
if cgalIsCurrent
|
||||
then
|
||||
echo " ${CGAL_ARCH_PATH##*/} build appears to be up-to-date - skipping"
|
||||
@ -308,81 +414,133 @@ fi
|
||||
|
||||
(
|
||||
# Remove any existing build folder and recreate
|
||||
if [ -d $CGAL_BINARY_DIR ]
|
||||
if [ -d $CGAL_BUILD_DIR ]
|
||||
then
|
||||
echo "removing old build directory"
|
||||
echo " $CGAL_BINARY_DIR"
|
||||
rm -rf $CGAL_BINARY_DIR
|
||||
echo " $CGAL_BUILD_DIR"
|
||||
rm -rf $CGAL_BUILD_DIR
|
||||
fi
|
||||
mkdir -p $CGAL_BINARY_DIR
|
||||
mkdir -p $CGAL_BUILD_DIR
|
||||
|
||||
cd $CGAL_BINARY_DIR || exit 1
|
||||
cd $CGAL_BUILD_DIR || exit 1
|
||||
export GIT_DIR=$CGAL_SOURCE_DIR/.git # Mask seeing our own git-repo
|
||||
|
||||
unset configBoost configGmp configMpfr
|
||||
echo "----"
|
||||
echo "Configuring $cgalPACKAGE with boost $BOOST_VERSION"
|
||||
echo " Source : $CGAL_SOURCE_DIR"
|
||||
echo " Build : $CGAL_BINARY_DIR"
|
||||
echo " Target : $CGAL_DIR"
|
||||
echo " Build : $CGAL_BUILD_DIR"
|
||||
echo " Target : $CGAL_ARCH_PATH"
|
||||
|
||||
|
||||
if [ -d "$BOOST_ARCH_PATH" ]
|
||||
# See http://doc.cgal.org/latest/Manual/installation.html
|
||||
if _foamIsSystem $boostPACKAGE
|
||||
then
|
||||
echo " ThirdParty : boost"
|
||||
# Tagged as 'system' but could actually point to a central location
|
||||
if [ -d "$BOOST_ARCH_PATH/include" ]
|
||||
then
|
||||
echo " boost : ${BOOST_ARCH_PATH##*/}"
|
||||
configBoost="-DBOOST_ROOT=$BOOST_ARCH_PATH"
|
||||
else
|
||||
echo " boost : system"
|
||||
fi
|
||||
|
||||
## For system - possible that /usr/lib64 not being found?
|
||||
## configBoost="-DBoost_LIBRARY_DIRS=$boostLib"
|
||||
elif [ -d "$BOOST_ARCH_PATH" ]
|
||||
then
|
||||
echo " boost : $boostPACKAGE"
|
||||
configBoost=$(cat <<CMAKE_OPTIONS
|
||||
-DBoost_INCLUDE_DIR=$boostInc
|
||||
-DBoost_LIBRARY_DIRS=$boostLib
|
||||
-DBoost_THREAD_LIBRARY=$boostLib/libboost_thread.so
|
||||
-DBoost_THREAD_LIBRARY_RELEASE=$boostLib/libboost_thread.so
|
||||
-DBoost_SYSTEM_LIBRARY=$boostLib/libboost_system.so
|
||||
-DBoost_SYSTEM_LIBRARY_RELEASE=$boostLib/libboost_system.so
|
||||
-DBoost_THREAD_LIBRARY=$boostLib/libboost_thread.$SO
|
||||
-DBoost_THREAD_LIBRARY_RELEASE=$boostLib/libboost_thread.$SO
|
||||
-DBoost_SYSTEM_LIBRARY=$boostLib/libboost_system.$SO
|
||||
-DBoost_SYSTEM_LIBRARY_RELEASE=$boostLib/libboost_system.$SO
|
||||
-DBoost_VERSION=$BOOST_VERSION
|
||||
CMAKE_OPTIONS
|
||||
)
|
||||
else
|
||||
echo " system : boost"
|
||||
configBoost=$(cat <<CMAKE_OPTIONS
|
||||
-DBOOST_LIBRARYDIR=$boostLib
|
||||
CMAKE_OPTIONS
|
||||
)
|
||||
fi
|
||||
|
||||
if [ -d "$GMP_ARCH_PATH" ]
|
||||
if _foamIsSystem $GMP_ARCH_PATH
|
||||
then
|
||||
echo " ThirdParty : gmp"
|
||||
configGmp=$(cat <<CMAKE_OPTIONS
|
||||
echo " gmp : system"
|
||||
elif _foamIsNone $GMP_ARCH_PATH
|
||||
then
|
||||
echo " gmp : disabled"
|
||||
configGmp="-DCGAL_DISABLE_GMP=TRUE" # Also used for mpfr
|
||||
elif [ -d "$GMP_ARCH_PATH" ]
|
||||
then
|
||||
echo " gmp : $gmpPACKAGE"
|
||||
|
||||
for libdir in \
|
||||
$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
$GMP_ARCH_PATH/lib \
|
||||
;
|
||||
do
|
||||
if [ -f "$libdir/libgmp.$SO" ]
|
||||
then
|
||||
configGmp=$(cat <<CMAKE_OPTIONS
|
||||
-DGMP_INCLUDE_DIR=$GMP_ARCH_PATH/include
|
||||
-DGMP_LIBRARIES_DIR=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
|
||||
-DGMP_LIBRARIES=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libgmp.so
|
||||
-DGMPXX_INCLUDE_DIR=$GMP_ARCH_PATH/include
|
||||
-DGMPXX_LIBRARIES=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libgmpxx.so
|
||||
-DGMP_LIBRARIES_DIR=$libdir
|
||||
-DGMP_LIBRARIES=$libdir/libgmp.$SO
|
||||
CMAKE_OPTIONS
|
||||
)
|
||||
break
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo " system : gmp"
|
||||
echo " system : gmp (did not find $GMP_ARCH_PATH)"
|
||||
fi
|
||||
|
||||
if [ -d "$MPFR_ARCH_PATH" ]
|
||||
if _foamIsSystem $MPFR_ARCH_PATH
|
||||
then
|
||||
echo " ThirdParty : mpfr"
|
||||
configMpfr=$(cat <<CMAKE_OPTIONS
|
||||
echo " mpfr : system"
|
||||
elif _foamIsNone $MPFR_ARCH_PATH
|
||||
then
|
||||
echo " mpfr : disabled"
|
||||
configGmp="-DCGAL_DISABLE_GMP=TRUE" # Also used for mpfr
|
||||
elif [ -d "$MPFR_ARCH_PATH" ]
|
||||
then
|
||||
echo " mpfr : $mpfrPACKAGE"
|
||||
|
||||
for libdir in \
|
||||
$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
$MPFR_ARCH_PATH/lib \
|
||||
;
|
||||
do
|
||||
if [ -f "$libdir/libmpfr.$SO" ]
|
||||
then
|
||||
configMpfr=$(cat <<CMAKE_OPTIONS
|
||||
-DMPFR_INCLUDE_DIR=$MPFR_ARCH_PATH/include
|
||||
-DMPFR_LIBRARIES_DIR=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
|
||||
-DMPFR_LIBRARIES=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpfr.so
|
||||
-DMPFR_LIBRARIES_DIR=$libdir
|
||||
-DMPFR_LIBRARIES=$libdir/libmpfr.$SO
|
||||
CMAKE_OPTIONS
|
||||
)
|
||||
break
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo " system : mpfr"
|
||||
echo " mpfr : system (did not find $MPFR_ARCH_PATH)"
|
||||
fi
|
||||
|
||||
cmake=$(findCMake)
|
||||
|
||||
# For CGAL < 4.9, for installation into lib64/, not lib/
|
||||
# Name only (not path) for CGAL_INSTALL_LIB_DIR
|
||||
echo "----"
|
||||
set -x
|
||||
cmake \
|
||||
$cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=$CGAL_ARCH_PATH \
|
||||
-DCGAL_INSTALL_LIB_DIR=lib$WM_COMPILER_LIB_ARCH \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DWITH_CGAL_ImageIO=OFF \
|
||||
-DWITH_CGAL_Qt5=OFF \
|
||||
${optHeadersOnly:+-DCGAL_HEADER_ONLY=TRUE} \
|
||||
$configBoost $configGmp $configMpfr \
|
||||
${WM_QUIET:+-DCMAKE_RULE_MESSAGES=OFF} \
|
||||
$CGAL_SOURCE_DIR \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install || exit 1
|
||||
|
||||
@ -401,7 +559,7 @@ CMAKE_OPTIONS
|
||||
fi
|
||||
done
|
||||
|
||||
# record our build-status
|
||||
# Record our build-status
|
||||
recordCGALinfo
|
||||
|
||||
echo "Done CGAL"
|
||||
|
||||
134
makeCmake
134
makeCmake
@ -4,77 +4,68 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeCmake
|
||||
#
|
||||
# Description
|
||||
# Build script for cmake
|
||||
# Build script for cmake.
|
||||
#
|
||||
# The '-link' option can be used to create a 'cmake-system' pointing
|
||||
# to this version.
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Special purpose script, no default cmake version.
|
||||
unset cmakePACKAGE
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# run from third-party directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Special purpose script - no default version.
|
||||
unset cmakePACKAGE
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [cmake-VERSION]
|
||||
usage: ${0##*/} [OPTION] cmake-VERSION
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-link Create additional symlink as 'cmake-system'
|
||||
-help
|
||||
|
||||
* build cmake
|
||||
${cmakePACKAGE:-'unspecified version'}
|
||||
${cmakePACKAGE:-'unspecified'}
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler # Compiler info for CMake/configure
|
||||
|
||||
# ensure CMake gets the correct C/CC++ compiler
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
# parse options
|
||||
unset optLink
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
-link)
|
||||
optLink=true
|
||||
;;
|
||||
cmake-[1-9]*)
|
||||
cmakePACKAGE="${1%%/}"
|
||||
@ -88,37 +79,60 @@ done
|
||||
|
||||
[ -n "$cmakePACKAGE" ] || die "The cmake-VERSION was not specified"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
CMAKE_ARCH_PATH=$installBASE/$cmakePACKAGE
|
||||
if _foamIsSystem "$cmakePACKAGE"
|
||||
then
|
||||
unset optLink # basic sanity - cannot
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build CMAKE
|
||||
#
|
||||
echo "---------------"
|
||||
# CMAKE_SOURCE_DIR : location of the original sources
|
||||
# CMAKE_ARCH_PATH : installation directory
|
||||
|
||||
CMAKE_SOURCE_DIR=$sourceBASE/$cmakePACKAGE
|
||||
CMAKE_ARCH_PATH=$installBASE/$cmakePACKAGE
|
||||
|
||||
if [ -d "$CMAKE_ARCH_PATH" -a -r "$CMAKE_ARCH_PATH/bin/cmake" ]
|
||||
then
|
||||
echo "Already built: $cmakePACKAGE"
|
||||
else
|
||||
echo "Starting build: $cmakePACKAGE"
|
||||
(
|
||||
buildDIR=$buildBASE/$cmakePACKAGE
|
||||
|
||||
cd $CMAKE_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
make distclean 2>/dev/null
|
||||
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
|
||||
$CMAKE_SOURCE_DIR/bootstrap \
|
||||
--prefix=$CMAKE_ARCH_PATH \
|
||||
&& time make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $cmakePACKAGE"
|
||||
) || {
|
||||
echo "Error building: $cmakePACKAGE"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
if [ "$optLink" = true -a -x "$CMAKE_ARCH_PATH/bin/cmake" ]
|
||||
then
|
||||
(
|
||||
sourceDIR=$WM_THIRD_PARTY_DIR/$cmakePACKAGE
|
||||
buildDIR=$buildBASE/$cmakePACKAGE
|
||||
|
||||
cd $sourceDIR || exit 1
|
||||
make distclean 2>/dev/null
|
||||
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
|
||||
$sourceDIR/bootstrap --prefix=$CMAKE_ARCH_PATH \
|
||||
&& time make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $cmakePACKAGE"
|
||||
) || {
|
||||
echo "Error building: $cmakePACKAGE"
|
||||
exit 1
|
||||
}
|
||||
cd ${CMAKE_ARCH_PATH%/*} || exit 1
|
||||
if [ -L cmake-system ]
|
||||
then
|
||||
rm cmake-system
|
||||
elif [ -d cmake-system ]
|
||||
then
|
||||
exit 2
|
||||
fi
|
||||
ln -svf $cmakePACKAGE cmake-system
|
||||
)
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
112
makeFFTW
112
makeFFTW
@ -3,24 +3,12 @@
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\ / A nd | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeFFTW
|
||||
@ -28,34 +16,48 @@
|
||||
# Description
|
||||
# Build script for FFTW
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Dynamic library endings (default is .so)
|
||||
[ "$(uname -s)" = Darwin ] && SO=dylib || SO=so
|
||||
|
||||
# Get FFTW versions
|
||||
. $WM_PROJECT_DIR/etc/config.sh/functions
|
||||
unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only
|
||||
|
||||
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/FFTW)
|
||||
|
||||
fftwPACKAGE=${fftw_version:-fftw-system}
|
||||
|
||||
# Short-circuit test for an installation
|
||||
if [ "$1" = "-test" ]
|
||||
then
|
||||
[ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; }
|
||||
dir="$2" # <- FFTW_ARCH_PATH
|
||||
if [ -d "$dir/include" -a -r "$dir/lib$WM_COMPILER_LIB_ARCH/libfftw3.$SO" ]
|
||||
then
|
||||
echo " fftw include: $dir/include"
|
||||
echo " fftw library: $dir/lib$WM_COMPILER_LIB_ARCH"
|
||||
exit 0
|
||||
else
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
Script="${0##*/}"
|
||||
|
||||
# FFTW version from OpenFOAM etc/config.sh file:
|
||||
_foamConfig FFTW
|
||||
|
||||
fftwPACKAGE=${fftw_version:-fftw-system}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: $Script [OPTION] [fftw-VERSION]
|
||||
usage: ${0##*/} [OPTION] [fftw-VERSION] [-- configure-options]
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
@ -67,25 +69,17 @@ USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# ensure configure gets the correct C/C++ compiler
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
exportCompiler # Compiler info for CMake/configure
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'')
|
||||
# discard empty arguments
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
--) break;; # Extra configure options (leave on $@ for later detection)
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
fftw-[0-9]* | fftw_[0-9]* | fftw-system )
|
||||
fftwPACKAGE="${1%%/}"
|
||||
;;
|
||||
@ -98,14 +92,12 @@ done
|
||||
|
||||
[ -n "$fftwPACKAGE" ] || die "The fftw-VERSION was not specified"
|
||||
|
||||
# nothing to build
|
||||
# Nothing to build
|
||||
if _foamIsNone "$fftwPACKAGE"
|
||||
then
|
||||
echo "Using fftw-none (skip ThirdParty build of FFTW)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if _foamIsSystem "$fftwPACKAGE"
|
||||
elif _foamIsSystem "$fftwPACKAGE"
|
||||
then
|
||||
echo "Using fftw-system (skip ThirdParty build of FFTW)"
|
||||
exit 0
|
||||
@ -121,11 +113,12 @@ fi
|
||||
# - system is normally built into 'lib64'
|
||||
#
|
||||
# FFTW_SOURCE_DIR : location of the original sources
|
||||
# FFTW_ARCH_PATH : installation directory
|
||||
|
||||
FFTW_SOURCE_DIR=$sourceBASE/$fftwPACKAGE
|
||||
FFTW_ARCH_PATH=$installBASE/$fftwPACKAGE
|
||||
FFTW_SOURCE_DIR=$WM_THIRD_PARTY_DIR/$fftwPACKAGE
|
||||
|
||||
if [ -r "$FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libfftw3.so" ]
|
||||
if [ -r "$FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libfftw3.$SO" ]
|
||||
then
|
||||
echo "Already has FFTW shared library"
|
||||
else
|
||||
@ -133,20 +126,22 @@ else
|
||||
echo
|
||||
|
||||
(
|
||||
# configuration options:
|
||||
# Configuration options:
|
||||
unset configOpt
|
||||
|
||||
# Single-precision needed?
|
||||
if [ "${WM_PRECISION_OPTION}" = SP ]
|
||||
# Additional configure options
|
||||
if [ "$1" = "--" ]
|
||||
then
|
||||
configOpt="$configOpt --enable-single"
|
||||
shift
|
||||
configOpt="$configOpt $@"
|
||||
fi
|
||||
|
||||
# end of configuration options
|
||||
# End of configuration options
|
||||
# ----------------------------
|
||||
buildDIR=$buildBASE/$fftwPACKAGE
|
||||
|
||||
cd $FFTW_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
rm -rf $FFTW_ARCH_PATH
|
||||
rm -rf $buildDIR
|
||||
@ -160,14 +155,15 @@ else
|
||||
--enable-shared --disable-static \
|
||||
--disable-fortran \
|
||||
$configOpt \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built $fftwPACKAGE"
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built $fftwPACKAGE" \
|
||||
&& pkgconfigAdjust $FFTW_ARCH_PATH
|
||||
) || {
|
||||
echo "Error building: FFTW"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
162
makeGcc
162
makeGcc
@ -4,23 +4,11 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
# \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeGcc
|
||||
@ -40,13 +28,24 @@
|
||||
#
|
||||
# WM_COMPILER=Gcc51 ./makeGcc -system
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# get default GCC, mpfr, gmp and mpc versions
|
||||
WM_COMPILER_TYPE=ThirdParty # ensure we get the correct compiler settings
|
||||
: ${WM_COMPILER:=Gcc} # this will still fail if 'Clang' was set
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
unset GMP_ARCH_PATH MPFR_ARCH_PATH # Purge old
|
||||
|
||||
. $WM_PROJECT_DIR/etc/config.sh/functions
|
||||
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler)
|
||||
[ "${WM_COMPILER#Gcc}" = "$WM_COMPILER" ] && WM_COMPILER=Gcc # Force gcc
|
||||
WM_COMPILER_TYPE=ThirdParty # Ensure we get the correct settings
|
||||
|
||||
# Default GCC, mpfr, gmp and mpc versions from OpenFOAM etc/config.sh file:
|
||||
_foamConfig compiler
|
||||
|
||||
gmpPACKAGE=${gmp_version:-gmp-system}
|
||||
mpfrPACKAGE=${mpfr_version:-mpfr-system}
|
||||
@ -54,26 +53,16 @@ mpcPACKAGE=${mpc_version:-mpc-system}
|
||||
gccPACKAGE=$gcc_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
Script=${0##*/}
|
||||
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: $Script [OPTION] [gcc-VERSION] [gmp-VERSION] [mpfr-VERSION] [mpc-VERSION]
|
||||
usage: ${0##*/} [OPTION] [gcc-VERSION] [gmp-VERSION] [mpfr-VERSION] [mpc-VERSION]
|
||||
options:
|
||||
-multilib for 64-bit systems with 32-bit support required
|
||||
-no-multilib for 64-bit systems without 32-bit support (DEFAULT)
|
||||
-no-threadsafe disable mpfr thread-safe (default is auto-detect)
|
||||
-system use system versions for gmp/mpfr/mpc
|
||||
-help
|
||||
|
||||
@ -87,38 +76,44 @@ USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# build 32-bit libraries on 64-bit systems (normally not needed)
|
||||
# Build 32-bit libraries on 64-bit systems (normally not needed)
|
||||
optMultilib=disable
|
||||
unset optThreadSafe # unset=auto
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
|
||||
-multi*)
|
||||
optMultilib=enable
|
||||
;;
|
||||
-no-multi*)
|
||||
optMultilib=disable
|
||||
;;
|
||||
-no-thread*)
|
||||
optThreadSafe=disable
|
||||
;;
|
||||
-sys*)
|
||||
gmpPACKAGE="gmp-system"
|
||||
mpfrPACKAGE="mpfr-system"
|
||||
mpcPACKAGE="mpc-system"
|
||||
unset GMP_ARCH_PATH MPFR_ARCH_PATH
|
||||
;;
|
||||
gmp-[4-9]* | gmp-system)
|
||||
gmpPACKAGE="${1%%/}"
|
||||
unset GMP_ARCH_PATH
|
||||
;;
|
||||
mpfr-[2-9]* | mpfr-system)
|
||||
mpfrPACKAGE="${1%%/}"
|
||||
unset MPFR_ARCH_PATH
|
||||
;;
|
||||
mpc-[0-9]* | mpc-system)
|
||||
mpcPACKAGE="${1%%/}"
|
||||
;;
|
||||
gcc-[4-9]*)
|
||||
gcc-[4-9]* | gcc-system)
|
||||
gccPACKAGE="${1%%/}"
|
||||
;;
|
||||
*)
|
||||
@ -161,12 +156,24 @@ GMP_ARCH_PATH=$installBASE/$gmpPACKAGE
|
||||
MPFR_ARCH_PATH=$installBASE/$mpfrPACKAGE
|
||||
MPC_ARCH_PATH=$installBASE/$mpcPACKAGE
|
||||
|
||||
# Prefix <dir> to LD_LIBRARY_PATH, if it exists. 0 on success, 1 on failure
|
||||
addLib()
|
||||
{
|
||||
if [ -d "$1" ]
|
||||
then
|
||||
export LD_LIBRARY_PATH=$1:$LD_LIBRARY_PATH
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# ================
|
||||
# Build GMP
|
||||
# ================
|
||||
echo "---------------"
|
||||
if [ -d $GMP_ARCH_PATH ]
|
||||
if [ -d "$GMP_ARCH_PATH" ]
|
||||
then
|
||||
echo "Already built: $gmpPACKAGE"
|
||||
elif _foamIsSystem $GMP_ARCH_PATH
|
||||
@ -176,10 +183,11 @@ else
|
||||
echo "Starting build: $gmpPACKAGE"
|
||||
echo
|
||||
(
|
||||
sourceDIR=$WM_THIRD_PARTY_DIR/$gmpPACKAGE
|
||||
sourceDIR=$sourceBASE/$gmpPACKAGE
|
||||
buildDIR=$buildBASE/$gmpPACKAGE
|
||||
|
||||
cd $sourceDIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
make distclean 2>/dev/null
|
||||
|
||||
rm -rf $buildDIR
|
||||
@ -191,6 +199,7 @@ else
|
||||
--prefix=$GMP_ARCH_PATH \
|
||||
--libdir=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--enable-cxx \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $gmpPACKAGE"
|
||||
@ -200,9 +209,15 @@ else
|
||||
}
|
||||
fi
|
||||
|
||||
if [ -d "$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" ]
|
||||
if addLib "$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
then
|
||||
_foamAddLib "$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
configGMP=$(cat <<CONFIG_OPTIONS
|
||||
--with-gmp-include=$GMP_ARCH_PATH/include
|
||||
--with-gmp-lib=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
|
||||
CONFIG_OPTIONS
|
||||
)
|
||||
else
|
||||
unset configGMP
|
||||
fi
|
||||
|
||||
|
||||
@ -220,22 +235,27 @@ else
|
||||
echo "Starting build: $mpfrPACKAGE"
|
||||
echo
|
||||
(
|
||||
sourceDIR=$WM_THIRD_PARTY_DIR/$mpfrPACKAGE
|
||||
sourceDIR=$sourceBASE/$mpfrPACKAGE
|
||||
buildDIR=$buildBASE/$mpfrPACKAGE
|
||||
|
||||
cd $sourceDIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
make distclean 2>/dev/null
|
||||
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
|
||||
unset configOpt
|
||||
# explicitly enable/disable thread-safe
|
||||
[ -n "$optThreadSafe" ] && configOpt="--${optThreadSafe}-thread-safe"
|
||||
|
||||
set -x
|
||||
$sourceDIR/configure ABI=$ABI \
|
||||
--prefix=$MPFR_ARCH_PATH \
|
||||
--libdir=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--with-gmp-include=$GMP_ARCH_PATH/include \
|
||||
--with-gmp-lib=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--prefix=$MPFR_ARCH_PATH \
|
||||
--libdir=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
$configGMP $configOpt \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $mpfrPACKAGE"
|
||||
@ -245,9 +265,15 @@ else
|
||||
}
|
||||
fi
|
||||
|
||||
if [ -d "$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" ]
|
||||
if addLib "$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
then
|
||||
_foamAddLib "$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
configMPFR=$(cat <<CONFIG_OPTIONS
|
||||
--with-mpfr-include=$MPFR_ARCH_PATH/include \
|
||||
--with-mpfr-lib=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
|
||||
CONFIG_OPTIONS
|
||||
)
|
||||
else
|
||||
unset configMPFR
|
||||
fi
|
||||
|
||||
|
||||
@ -265,10 +291,11 @@ else
|
||||
echo "Starting build: $mpcPACKAGE"
|
||||
echo
|
||||
(
|
||||
sourceDIR=$WM_THIRD_PARTY_DIR/$mpcPACKAGE
|
||||
sourceDIR=$sourceBASE/$mpcPACKAGE
|
||||
buildDIR=$buildBASE/$mpcPACKAGE
|
||||
|
||||
cd $sourceDIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
make distclean 2>/dev/null
|
||||
|
||||
rm -rf $buildDIR
|
||||
@ -279,10 +306,8 @@ else
|
||||
$sourceDIR/configure ABI=$ABI \
|
||||
--prefix=$MPC_ARCH_PATH \
|
||||
--libdir=$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--with-gmp-include=$GMP_ARCH_PATH/include \
|
||||
--with-gmp-lib=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--with-mpfr-include=$MPFR_ARCH_PATH/include \
|
||||
--with-mpfr-lib=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
$configGMP $configMPFR \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $mpcPACKAGE"
|
||||
@ -292,9 +317,15 @@ else
|
||||
}
|
||||
fi
|
||||
|
||||
if [ -d "$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" ]
|
||||
if addLib "$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
then
|
||||
_foamAddLib "$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH"
|
||||
configMPC=$(cat <<CONFIG_OPTIONS
|
||||
--with-mpc-include=$MPC_ARCH_PATH/include \
|
||||
--with-mpc-lib=$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
|
||||
CONFIG_OPTIONS
|
||||
)
|
||||
else
|
||||
unset configMPC
|
||||
fi
|
||||
|
||||
|
||||
@ -309,24 +340,24 @@ echo "---------------"
|
||||
if [ -d $GCC_ARCH_PATH ]
|
||||
then
|
||||
echo "Already built: $gccPACKAGE"
|
||||
elif _foamIsSystem $GCC_ARCH_PATH
|
||||
then
|
||||
echo "Using gcc-system"
|
||||
else
|
||||
echo "Starting build: $gccPACKAGE"
|
||||
echo
|
||||
(
|
||||
sourceDIR=$WM_THIRD_PARTY_DIR/$gccPACKAGE
|
||||
sourceDIR=$sourceBASE/$gccPACKAGE
|
||||
buildDIR=$buildBASE/$gccPACKAGE
|
||||
|
||||
cd $sourceDIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
make distclean 2>/dev/null
|
||||
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
|
||||
_foamIsSystem "$GMP_ARCH_PATH" && GMP_ARCH_PATH=/usr # revert to system
|
||||
_foamIsSystem "$MPFR_ARCH_PATH" && MPFR_ARCH_PATH=/usr # revert to system
|
||||
_foamIsSystem "$MPC_ARCH_PATH" && MPC_ARCH_PATH=/usr # revert to system
|
||||
|
||||
unset configOpt
|
||||
# with/without multi-lib (32-bit support on 64-bit systems)
|
||||
[ -n "$optMultilib" ] && configOpt="--${optMultilib}-multilib"
|
||||
@ -334,19 +365,14 @@ else
|
||||
set -x
|
||||
$sourceDIR/configure \
|
||||
--prefix=$GCC_ARCH_PATH \
|
||||
--with-gmp-include=$GMP_ARCH_PATH/include \
|
||||
--with-gmp-lib=$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--with-mpfr-include=$MPFR_ARCH_PATH/include \
|
||||
--with-mpfr-lib=$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--with-mpc-include=$MPC_ARCH_PATH/include \
|
||||
--with-mpc-lib=$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--with-pkgversion=OpenFOAM \
|
||||
--enable-languages=c,c++ \
|
||||
--enable-__cxa_atexit \
|
||||
--enable-libstdcxx-allocator=new \
|
||||
--with-system-zlib \
|
||||
$configOpt \
|
||||
$configGMP $configMPFR $configMPC $configOpt \
|
||||
MAKEINFO=missing \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $gccPACKAGE"
|
||||
|
||||
119
makeGperftools
119
makeGperftools
@ -4,23 +4,11 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
# \\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeGperftools
|
||||
@ -28,29 +16,33 @@
|
||||
# Description
|
||||
# Build script for gperftools
|
||||
#
|
||||
# Note
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
gperftoolsPACKAGE=gperftools-svn
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# run from third-party directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Gperftools version from OpenFOAM etc/config.sh file:
|
||||
_foamConfig gperftools
|
||||
|
||||
gperftoolsPACKAGE=${gperftools_version:-gperftools-system}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [gperftools-VERSION]
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* build gperftools
|
||||
$gperftoolsPACKAGE
|
||||
@ -58,16 +50,18 @@ usage: ${0##*/} [gperftools-VERSION]
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler # Compiler info for CMake/configure
|
||||
|
||||
|
||||
# parse options
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
gperftools-[0-9]* | gperftools-svn*)
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
gperftools-[0-9]* | gperftools-svn* | gperftools-git)
|
||||
gperftoolsPACKAGE="${1%%/}"
|
||||
;;
|
||||
*)
|
||||
@ -77,42 +71,55 @@ do
|
||||
shift
|
||||
done
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# build/install without compiler name
|
||||
prefixDIR=$installBASE/$gperftoolsPACKAGE
|
||||
[ -n "$gperftoolsPACKAGE" ] || die "The gperftools-VERSION was not specified"
|
||||
|
||||
# Nothing to build
|
||||
if _foamIsNone $gperftoolsPACKAGE
|
||||
then
|
||||
echo "Using gperftools-none (skip ThirdParty build of gperftools)"
|
||||
exit 0
|
||||
elif _foamIsSystem $gperftoolsPACKAGE
|
||||
then
|
||||
echo "Using gperftools-system (skip ThirdParty build of gperftools)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build gperftools
|
||||
#
|
||||
GPERFTOOLS_SOURCE_DIR=$sourceBASE/$gperftoolsPACKAGE
|
||||
GPERFTOOLS_ARCH_PATH=$installBASE/$gperftoolsPACKAGE
|
||||
|
||||
echo "---------------"
|
||||
if [ -d "$prefixDIR" ]
|
||||
if [ -d "$GPERFTOOLS_ARCH_PATH" ]
|
||||
then
|
||||
echo "Already built: $gperftoolsPACKAGE"
|
||||
else
|
||||
echo "Starting build: $gperftoolsPACKAGE"
|
||||
(
|
||||
sourceDIR=$WM_THIRD_PARTY_DIR/$gperftoolsPACKAGE
|
||||
buildDIR=$buildBASE/$gperftoolsPACKAGE
|
||||
(
|
||||
buildDIR=$buildBASE/$gperftoolsPACKAGE
|
||||
|
||||
cd $sourceDIR || exit 1
|
||||
make distclean 2>/dev/null
|
||||
cd $GPERFTOOLS_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
rm -rf $GPERFTOOLS_ARCH_PATH
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
|
||||
# remove old junk
|
||||
rm -rf $prefixDIR
|
||||
|
||||
$sourceDIR/configure \
|
||||
--prefix=$prefixDIR \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $gperftoolsPACKAGE" \
|
||||
) || {
|
||||
echo "Error building: $gperftoolsPACKAGE"
|
||||
exit 1
|
||||
}
|
||||
set -x
|
||||
$GPERFTOOLS_SOURCE_DIR/configure \
|
||||
--prefix=$GPERFTOOLS_ARCH_PATH \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $gperftoolsPACKAGE" \
|
||||
) || {
|
||||
echo "Error building: $gperftoolsPACKAGE"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
198
makeKAHIP
Executable file
198
makeKAHIP
Executable file
@ -0,0 +1,198 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2017-2018 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeKAHIP
|
||||
#
|
||||
# Description
|
||||
# Build the KaHIP library (int32 only).
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Dynamic library endings (default is .so)
|
||||
[ "$(uname -s)" = Darwin ] && SO=dylib || SO=so
|
||||
|
||||
# Short-circuit test for an installation
|
||||
if [ "$1" = "-test" ]
|
||||
then
|
||||
[ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; }
|
||||
dir="$2" # <- KAHIP_ARCH_PATH
|
||||
if [ -d "$dir/include" ]
|
||||
then
|
||||
for lib in \
|
||||
$FOAM_EXT_LIBBIN/libkahip.$SO \
|
||||
$dir/lib/libkahip.a \
|
||||
$dir/lib/libkahip.$SO \
|
||||
$dir/lib$WM_COMPILER_LIB_ARCH/libkahip.a \
|
||||
$dir/lib$WM_COMPILER_LIB_ARCH/libkahip.$SO \
|
||||
;
|
||||
do
|
||||
if [ -r "$lib" ]
|
||||
then
|
||||
echo " kahip include: $dir/include"
|
||||
echo " kahip library: ${lib%/*}"
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
fi
|
||||
exit 2
|
||||
fi
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
[ -n "$FOAM_EXT_LIBBIN" ] || {
|
||||
echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
_foamConfig kahip
|
||||
|
||||
kahipPACKAGE=${KAHIP_VERSION:-kahip-system}
|
||||
targetType=libso
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage()
|
||||
{
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
/bin/cat<<USAGE
|
||||
|
||||
Usage: ${0##*/} [OPTION] [lib|libso] [kahip-VERSION]
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* Compile KaHIP
|
||||
$kahipPACKAGE
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
lib|libso)
|
||||
targetType="$1"
|
||||
;;
|
||||
|
||||
kahip-[1-9]* | kahip-git)
|
||||
kahipPACKAGE="${1%%/}"
|
||||
unset KAHIP_ARCH_PATH # Avoid inconsistency
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$kahipPACKAGE" ] || die "The kahip-VERSION was not specified"
|
||||
|
||||
# Nothing to build
|
||||
if _foamIsNone $kahipPACKAGE
|
||||
then
|
||||
echo "Using kahip-none (skip ThirdParty build of KAHIP)"
|
||||
exit 0
|
||||
elif _foamIsSystem $kahipPACKAGE
|
||||
then
|
||||
echo "Using kahip-system"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
requireWMakeToolchain
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build KaHIP
|
||||
#
|
||||
# KAHIP_ARCH_PATH : installation directory
|
||||
# KAHIP_SOURCE_DIR : location of the original sources
|
||||
|
||||
KAHIP_SOURCE_DIR=$sourceBASE/$kahipPACKAGE
|
||||
KAHIP_ARCH_PATH=$installBASE/$kahipPACKAGE
|
||||
|
||||
[ -d "$KAHIP_SOURCE_DIR" ] || {
|
||||
echo "Missing sources: '$kahipPACKAGE'"
|
||||
exit 1
|
||||
}
|
||||
|
||||
#
|
||||
# Manual installation
|
||||
#
|
||||
install()
|
||||
{
|
||||
# Ensure a clean build next time
|
||||
wclean
|
||||
|
||||
local bindir=$KAHIP_ARCH_PATH/bin
|
||||
local incdir=$KAHIP_ARCH_PATH/include
|
||||
local libdir=$KAHIP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
|
||||
|
||||
mkdir -m 0755 -p $incdir
|
||||
|
||||
/bin/cp -pv \
|
||||
$KAHIP_SOURCE_DIR/interface/kaHIP_interface.h \
|
||||
$incdir
|
||||
}
|
||||
|
||||
echo "Starting build: $kahipPACKAGE ($targetType)"
|
||||
echo
|
||||
(
|
||||
cd $KAHIP_SOURCE_DIR/lib || exit 1
|
||||
export GIT_DIR=$KAHIP_SOURCE_DIR/.git # Mask seeing our own git-repo
|
||||
|
||||
rm -rf $KAHIP_ARCH_PATH
|
||||
rm -f $FOAM_EXT_LIBBIN/libkahip.$SO
|
||||
|
||||
libdir=$KAHIP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
|
||||
|
||||
cpMakeFiles kahip 2>/dev/null
|
||||
|
||||
if [ -e ../interface -a ! -e interface ]
|
||||
then
|
||||
ln -s ../interface interface
|
||||
fi
|
||||
|
||||
# Place static libraries in sub-directory:
|
||||
if [ "$targetType" = lib ]
|
||||
then
|
||||
mkdir -m 0755 -p $libdir 2>/dev/null
|
||||
export FOAM_EXT_LIBBIN=$libdir
|
||||
fi
|
||||
|
||||
# Location of lib sources for wmake
|
||||
export KAHIP_LIB_SRC=$PWD
|
||||
|
||||
wmake -j $WM_NCOMPPROCS -s $targetType \
|
||||
&& echo "Built: kahip" \
|
||||
&& install
|
||||
) || {
|
||||
echo "Error building: kahip"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
206
makeLLVM
206
makeLLVM
@ -4,23 +4,11 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
# \\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeLLVM
|
||||
@ -30,55 +18,52 @@
|
||||
#
|
||||
# Note
|
||||
# - Ensure that you always use matching versions between llvm and clang.
|
||||
# - The LLVM components reside in the LLVM tools/ subdirectory
|
||||
# - LLVM components such as clang reside in the LLVM tools/ subdirectory
|
||||
#
|
||||
# Example, building from svn repository:
|
||||
# 1) Checkout LLVM:
|
||||
# svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm-svn
|
||||
# For example, when building from tar files (version 4.0.0)
|
||||
#
|
||||
# 2) Checkout Clang, in the correct location
|
||||
# cd llvm-svn/tools
|
||||
# svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
|
||||
# cd -
|
||||
# 1) Unpack LLVM:
|
||||
# tar -xJf llvm-4.0.1.src.tar.xz
|
||||
# mv llvm-4.0.1.src llvm-4.0.1
|
||||
#
|
||||
# Example, building from tar files (version 3.8.0)
|
||||
# - Unpack LLVM:
|
||||
# tar -Jvf llvm-3.8.0.src.tar.xz
|
||||
# mv llvm-3.8.0.src llvm-3.8.0
|
||||
# 2) Unpack Clang (also know as cfe):
|
||||
# tar -xJf cfe-4.0.1.src.tar.xz
|
||||
# mv cfe-4.0.1.src llvm-4.0.1/tools/clang
|
||||
#
|
||||
# - Unpack Clang (also know as cfe):
|
||||
# tar -Jvf cfe-3.8.0.src.tar.xz
|
||||
# mv cfe-3.8.0.src llvm-3.8.0/tools/clang
|
||||
# 3) Unpack openmp (optional):
|
||||
# tar -xJf openmp-4.0.1.src.tar.xz
|
||||
# mv openmp-4.0.1.src llvm-4.0.1/tools/openmp
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# get default llvm/clang version
|
||||
WM_COMPILER_TYPE="ThirdParty" # ensure we get the correct compiler settings
|
||||
WM_COMPILER=Clang # force values for 'clang'
|
||||
|
||||
. $WM_PROJECT_DIR/etc/config.sh/functions
|
||||
_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler)
|
||||
|
||||
llvmPACKAGE=$clang_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# run from third-party directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
Script=${0##*/}
|
||||
|
||||
[ "${WM_COMPILER#Clang}" = "$WM_COMPILER" ] && WM_COMPILER=Clang # Force clang
|
||||
WM_COMPILER_TYPE=ThirdParty # Ensure we get the correct settings
|
||||
|
||||
# LLVM/Clang version from OpenFOAM etc/config.sh file:
|
||||
_foamConfig compiler
|
||||
|
||||
llvmPACKAGE=$clang_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: $Script [OPTION] [llvm-VERSION]
|
||||
usage: ${0##*/} [OPTION] [llvm-VERSION]
|
||||
options:
|
||||
-cmake PATH with cmake from the path given
|
||||
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* build llvm/clang
|
||||
@ -87,20 +72,28 @@ options:
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler # Compiler info for CMake/configure
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
# parse options
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
-cmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
CMAKE_PATH="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
llvm-[0-9]* | llvm-svn*)
|
||||
llvmPACKAGE="${1%%/}"
|
||||
;;
|
||||
[1-9]*)
|
||||
llvmPACKAGE="llvm-${1%%/}"
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
@ -111,20 +104,19 @@ done
|
||||
[ -n "$llvmPACKAGE" ] || die "The llvm-VERSION was not specified"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# build/install without compiler name
|
||||
# Build/install locations without a compiler name
|
||||
buildBASE=$WM_THIRD_PARTY_DIR/build/$WM_ARCH$WM_COMPILER_ARCH
|
||||
installBASE=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH
|
||||
|
||||
LLVM_ARCH_PATH=$installBASE/$llvmPACKAGE
|
||||
# Build LLVM (clang)
|
||||
# LLVM_SOURCE_DIR : location of the original sources
|
||||
# LLVM_BUILD_DIR : location of the build
|
||||
# LLVM_ARCH_PATH : location of the installed program
|
||||
# - Strip any trailing '.src' from the proper names
|
||||
|
||||
# name of source directory
|
||||
# - may have a llvm/ subdirectory, depending on how the sources were fetched
|
||||
#
|
||||
sourceDIR=$WM_THIRD_PARTY_DIR/$llvmPACKAGE
|
||||
if [ -f $sourceDIR/llvm/configure ]
|
||||
then
|
||||
sourceDIR=$sourceDIR/llvm
|
||||
fi
|
||||
LLVM_SOURCE_DIR=$sourceBASE/$llvmPACKAGE
|
||||
LLVM_BUILD_DIR=$buildBASE/${llvmPACKAGE%%.src}
|
||||
LLVM_ARCH_PATH=$installBASE/${llvmPACKAGE%%.src}
|
||||
|
||||
#
|
||||
# Build LLVM
|
||||
@ -133,30 +125,76 @@ echo "---------------"
|
||||
if [ -d $LLVM_ARCH_PATH ]
|
||||
then
|
||||
echo "Already built: $llvmPACKAGE"
|
||||
else
|
||||
echo "Starting build: $llvmPACKAGE"
|
||||
elif [ -z "$CMAKE_PATH" ] && $LLVM_SOURCE_DIR/configure -help >/dev/null 2>&1
|
||||
then
|
||||
# configure can be used prior to 3.9.0
|
||||
# but use cmake if someone explicitly mentioned -cmake on the command-line
|
||||
|
||||
echo "Starting build: $llvmPACKAGE (using configure)"
|
||||
echo
|
||||
(
|
||||
cd $sourceDIR || exit 1
|
||||
make distclean 2>/dev/null
|
||||
(
|
||||
cd $LLVM_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
make distclean 2>/dev/null
|
||||
|
||||
buildDIR=$buildBASE/$llvmPACKAGE
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
rm -rf $LLVM_BUILD_DIR
|
||||
mkdir -p $LLVM_BUILD_DIR
|
||||
cd $LLVM_BUILD_DIR
|
||||
|
||||
set -x
|
||||
$LLVM_SOURCE_DIR/configure \
|
||||
--prefix=$LLVM_ARCH_PATH \
|
||||
--with-gcc-toolchain=$(which gcc | sed s%/bin/gcc%%) \
|
||||
--enable-optimized \
|
||||
--enable-shared \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $llvmPACKAGE"
|
||||
) || {
|
||||
echo "Error building: $llvmPACKAGE"
|
||||
exit 1
|
||||
}
|
||||
|
||||
else
|
||||
# CMake used with 3.9.0 and later
|
||||
|
||||
echo "Starting build: $llvmPACKAGE (using cmake)"
|
||||
echo
|
||||
(
|
||||
# Configuration options:
|
||||
unset configOpt
|
||||
|
||||
cd $LLVM_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
if [ -f tools/openmp/CMakeLists.txt ]
|
||||
then
|
||||
configOpt="$configOpt -DLLVM_TOOL_OPENMP_BUILD=ON"
|
||||
fi
|
||||
|
||||
rm -rf $LLVM_BUILD_DIR
|
||||
mkdir -p $LLVM_BUILD_DIR
|
||||
cd $LLVM_BUILD_DIR
|
||||
|
||||
cmake=$(findCMake)
|
||||
|
||||
set -x
|
||||
$cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=$LLVM_ARCH_PATH \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
$configOpt \
|
||||
$LLVM_SOURCE_DIR \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $llvmPACKAGE"
|
||||
) || {
|
||||
echo "Error building: $llvmPACKAGE"
|
||||
exit 1
|
||||
}
|
||||
|
||||
set -x
|
||||
$sourceDIR/configure \
|
||||
--prefix=$LLVM_ARCH_PATH \
|
||||
--with-gcc-toolchain=$(which gcc | sed s%/bin/gcc%%) \
|
||||
--enable-optimized \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $llvmPACKAGE"
|
||||
) || {
|
||||
echo "Error building: $llvmPACKAGE"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
190
makeMETIS
Executable file
190
makeMETIS
Executable file
@ -0,0 +1,190 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2017-2018 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeMETIS
|
||||
#
|
||||
# Description
|
||||
# Build script for METIS
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Dynamic library endings (default is .so)
|
||||
[ "$(uname -s)" = Darwin ] && SO=dylib || SO=so
|
||||
|
||||
# Short-circuit test for an installation
|
||||
if [ "$1" = "-test" ]
|
||||
then
|
||||
[ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; }
|
||||
dir="$2" # <- METIS_ARCH_PATH
|
||||
if [ -d "$dir/include" ]
|
||||
then
|
||||
for lib in \
|
||||
$FOAM_EXT_LIBBIN/libmetis.$SO \
|
||||
$dir/lib/libmetis.a \
|
||||
$dir/lib/libmetis.$SO \
|
||||
$dir/lib$WM_COMPILER_LIB_ARCH/libmetis.a \
|
||||
$dir/lib$WM_COMPILER_LIB_ARCH/libmetis.$SO \
|
||||
;
|
||||
do
|
||||
if [ -r "$lib" ]
|
||||
then
|
||||
echo " metis include: $dir/include"
|
||||
echo " metis library: ${lib%/*}"
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
fi
|
||||
exit 2
|
||||
fi
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
[ -n "$FOAM_EXT_LIBBIN" ] || {
|
||||
echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
_foamConfig metis
|
||||
|
||||
metisPACKAGE=${METIS_VERSION:-metis-system}
|
||||
targetType=libso
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [lib|libso] [METIS-VERSION]
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* build METIS with
|
||||
${metisPACKAGE:-'unspecified metis version'}
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler # Compiler info for CMake/configure
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
lib|libso)
|
||||
targetType="$1"
|
||||
;;
|
||||
|
||||
metis-[0-9]*)
|
||||
metisPACKAGE="${1%%/}"
|
||||
unset METIS_ARCH_PATH # Avoid inconsistency
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$metisPACKAGE" ] || die "The metis-VERSION was not specified"
|
||||
|
||||
# Nothing to build
|
||||
if _foamIsNone $metisPACKAGE
|
||||
then
|
||||
echo "Using metis-none (skip ThirdParty build of METIS)"
|
||||
exit 0
|
||||
elif _foamIsSystem $metisPACKAGE
|
||||
then
|
||||
echo "Using metis-system"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build METIS
|
||||
#
|
||||
# METIS_ARCH_PATH : installation directory
|
||||
# METIS_SOURCE_DIR : location of the original sources
|
||||
|
||||
METIS_SOURCE_DIR=$sourceBASE/$metisPACKAGE
|
||||
: ${METIS_ARCH_PATH:=$installBASE$WM_PRECISION_OPTION$WM_LABEL_OPTION/$metisPACKAGE}
|
||||
|
||||
[ -d "$METIS_SOURCE_DIR" ] || {
|
||||
echo "Missing sources: '$metisPACKAGE'"
|
||||
exit 1
|
||||
}
|
||||
|
||||
#
|
||||
# Manual installation (of library)
|
||||
#
|
||||
install()
|
||||
{
|
||||
local libdir=$METIS_ARCH_PATH/lib
|
||||
|
||||
if [ "$targetType" = libso ]
|
||||
then
|
||||
\mv $libdir/libmetis.$SO $FOAM_EXT_LIBBIN
|
||||
rmdir $libdir 2>/dev/null # Failed rmdir is uncritical
|
||||
|
||||
echo "Installing: $FOAM_EXT_LIBBIN/libmetis.$SO"
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
echo "Starting build: $metisPACKAGE ($targetType)"
|
||||
echo
|
||||
(
|
||||
# Configuration options:
|
||||
unset configOpt
|
||||
if [ "$targetType" = libso ]
|
||||
then
|
||||
configOpt="shared=1"
|
||||
fi
|
||||
|
||||
cd $METIS_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
rm -rf $METIS_ARCH_PATH
|
||||
rm -f $FOAM_EXT_LIBBIN/libmetis.$SO
|
||||
|
||||
# Adjust metis integer size to match OpenFOAM label-size
|
||||
sed -i -e 's=\(#define IDXTYPEWIDTH\).*=\1 '$WM_LABEL_SIZE'=' \
|
||||
include/metis.h
|
||||
|
||||
# No config option for the library location.
|
||||
# - build normally and use mv to relocate it
|
||||
|
||||
make config $configOpt prefix=$METIS_ARCH_PATH \
|
||||
&& make -j $WM_NCOMPPROCS install \
|
||||
&& echo "Built: metis" \
|
||||
&& install
|
||||
) || {
|
||||
echo "Error building: metis"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
172
makeMGridGen
Executable file
172
makeMGridGen
Executable file
@ -0,0 +1,172 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2017-2018 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeMGridGen
|
||||
#
|
||||
# Description
|
||||
# Build script for MGridGen (serial)
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from ThirdParty directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# mgridgen version from OpenFOAM etc/config.sh file:
|
||||
_foamConfig mgridgen
|
||||
|
||||
mgridgenPACKAGE=${MGRIDGEN_VERSION:-mgridgen-none}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [mgridgen-VERSION]
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* Build MGridGen
|
||||
$mgridgenPACKAGE
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler # Compiler info for CMake/configure
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
-gcc)
|
||||
useGcc # Use gcc/g++
|
||||
;;
|
||||
mgridgen-[1-9]* | MGridGen-[1-9]* | parmgridgen-[1-9]* | ParMGridGen-[1-9]*)
|
||||
mgridgenPACKAGE="${1%%/}"
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$mgridgenPACKAGE" ] || die "The mgridgen-VERSION was not specified"
|
||||
|
||||
# Nothing to build
|
||||
if _foamIsNone "$mgridgenPACKAGE"
|
||||
then
|
||||
echo "Using mgridgen-none (skip ThirdParty build of MGridGen)"
|
||||
exit 0
|
||||
elif _foamIsSystem "$mgridgenPACKAGE"
|
||||
then
|
||||
echo "Using mgridgen-system"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build MGridGen
|
||||
|
||||
# MGRIDGEN_SOURCE_DIR : location of the original sources
|
||||
# MGRIDGEN_ARCH_PATH : installation directory
|
||||
|
||||
MGRIDGEN_SOURCE_DIR=$WM_THIRD_PARTY_DIR/$mgridgenPACKAGE
|
||||
MGRIDGEN_ARCH_PATH=$installBASE$WM_PRECISION_OPTION$WM_LABEL_OPTION/$mgridgenPACKAGE
|
||||
|
||||
: ${FOAM_MPI:=dummy}
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
echo "Build mgridgen library $mgridgenPACKAGE"
|
||||
echo
|
||||
|
||||
#
|
||||
# Manual installation
|
||||
#
|
||||
install()
|
||||
{
|
||||
echo "Install into $MGRIDGEN_ARCH_PATH"
|
||||
|
||||
local bindir=$MGRIDGEN_ARCH_PATH/bin
|
||||
local incdir=$MGRIDGEN_ARCH_PATH/include
|
||||
local libdir=$MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
|
||||
|
||||
for dir in $MGRIDGEN_ARCH_PATH $bindir $incdir $libdir
|
||||
do
|
||||
mkdir -m 0755 -p $dir
|
||||
done
|
||||
|
||||
cp -vf mgridgen.h $incdir
|
||||
cp -vf libmgrid.a $libdir
|
||||
cp -vf mgridgen $bindir
|
||||
|
||||
chmod -R 0644 $incdir/* $libdir/*
|
||||
chmod -R 0755 $bindir/*
|
||||
}
|
||||
|
||||
|
||||
# Needs future adjustment
|
||||
# - for shared library
|
||||
# - for mpi-specific library locations
|
||||
if [ -f $MGRIDGEN_ARCH_PATH/include/mgridgen.h \
|
||||
-a -r $MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmgrid.a ]
|
||||
then
|
||||
echo " MGridGen header in $MGRIDGEN_ARCH_PATH/include"
|
||||
echo " MGridGen libs in $MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" # static
|
||||
echo
|
||||
else
|
||||
(
|
||||
cd $MGRIDGEN_SOURCE_DIR || exit 1
|
||||
[ -e Makefile ] && make realclean 2>/dev/null
|
||||
|
||||
# Remove any existing build folder and recreate
|
||||
rm -rf $MGRIDGEN_ARCH_PATH
|
||||
|
||||
serial="${CC:-$WM_CC}" # CC (serial compiler) default=cc
|
||||
# parallel=$(whichMpicc) # PARCC (parallel compiler) default=mpicc
|
||||
# PARCC=$parallel
|
||||
# PARLD=$parallel
|
||||
# PARLIBS="-L../.. -lparmgrid -lmgrid -lm"
|
||||
|
||||
make \
|
||||
COPTIONS="-fPIC" \
|
||||
LDOPTIONS="-fPIC" \
|
||||
CC=$serial \
|
||||
LD=$serial \
|
||||
LIBDIR="-L../.." \
|
||||
LIBS="-L../.. -lmgrid -lm" \
|
||||
make=make \
|
||||
serial \
|
||||
&& install \
|
||||
&& echo "Built: $mgridgenPACKAGE"
|
||||
) || {
|
||||
echo "Error building: $mgridgenPACKAGE"
|
||||
}
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
179
makeMPICH
Executable file
179
makeMPICH
Executable file
@ -0,0 +1,179 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2017-2018 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeMPICH
|
||||
#
|
||||
# Description
|
||||
# Build script for mpich - legacy (unmaintained) build code!
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Dynamic library endings (default is .so)
|
||||
[ "$(uname -s)" = Darwin ] && SO=dylib || SO=so
|
||||
|
||||
# Short-circuit test for an installation
|
||||
if [ "$1" = "-test" ]
|
||||
then
|
||||
[ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; }
|
||||
dir="$2" # <- MPI_ARCH_PATH
|
||||
if [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpich.$SO" ]
|
||||
then
|
||||
echo "Have mpich shared library (${dir##*/})"
|
||||
exit 0
|
||||
elif [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpich.a" ]
|
||||
then
|
||||
echo "Have mpich static library (${dir##*/})"
|
||||
exit 0
|
||||
else
|
||||
echo "No mpich libraries found: ${dir:-not-specified}"
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
# Transition
|
||||
# ~~~~~~~~~~
|
||||
_foamAddLib() { true; }
|
||||
_foamAddMan() { true; }
|
||||
_foamAddPath() { true; }
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
WM_MPLIB=MPICH # Ensure we get the correct MPI
|
||||
|
||||
# mpich version from OpenFOAM etc/config.sh file:
|
||||
_foamConfig mpi
|
||||
|
||||
mpiPACKAGE=${FOAM_MPI:-mpich-system}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [mpich-VERSION] [-- configure-options]
|
||||
options:
|
||||
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* build mpich with
|
||||
${mpiPACKAGE:-'unspecified mpich version'}
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler # Compiler info for CMake/configure
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
--) break;; # Extra configure options (leave on $@ for later detection)
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
mpich*)
|
||||
mpiPACKAGE="${1%%/}"
|
||||
;;
|
||||
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$mpiPACKAGE" ] || die "The mpich-VERSION was not specified"
|
||||
|
||||
# Nothing to build
|
||||
if _foamIsNone "$mpiPACKAGE"
|
||||
then
|
||||
echo "Using mpich-none (skip ThirdParty build of mpich)"
|
||||
exit 0
|
||||
elif _foamIsSystem "$mpiPACKAGE"
|
||||
then
|
||||
echo "Using mpich-system (skip ThirdParty build of mpich)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build mpich
|
||||
#
|
||||
# MPI_SOURCE_DIR : location of the original sources
|
||||
# MPI_ARCH_PATH : installation directory
|
||||
|
||||
MPI_SOURCE_DIR=$sourceBASE/$mpiPACKAGE
|
||||
MPI_ARCH_PATH=$installBASE/$mpiPACKAGE
|
||||
|
||||
if [ -r "$MPI_ARCH_PATH/lib_ARCH/libmpi.$SO" ]
|
||||
then
|
||||
echo "Already has shared library"
|
||||
elif [ -r "$MPI_ARCH_PATH/lib/libmpi.a" ]
|
||||
then
|
||||
echo "Already has static library"
|
||||
else
|
||||
echo "Starting build: $WM_MPLIB ($mpiPACKAGE)"
|
||||
echo
|
||||
|
||||
(
|
||||
# Configuration options:
|
||||
unset configOpt
|
||||
|
||||
# Additional configure options
|
||||
if [ "$1" = "--" ]
|
||||
then
|
||||
shift
|
||||
configOpt="$configOpt $@"
|
||||
fi
|
||||
|
||||
# End of configuration options
|
||||
# ----------------------------
|
||||
|
||||
cd $MPI_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
|
||||
rm -rf $MPI_ARCH_PATH
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
|
||||
set -x
|
||||
$MPI_SOURCE_DIR/configure \
|
||||
--prefix=$MPI_ARCH_PATH \
|
||||
--disable-fortran --disable-g \
|
||||
--libdir=$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--enable-shared --disable-static \
|
||||
$configOpt \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $mpiPACKAGE" \
|
||||
&& pkgconfigAdjust $MPI_ARCH_PATH
|
||||
) || {
|
||||
echo "Error building: $mpiPACKAGE"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
216
makeMesa
Executable file
216
makeMesa
Executable file
@ -0,0 +1,216 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeMesa
|
||||
#
|
||||
# Description
|
||||
# Build script for Mesa
|
||||
#
|
||||
# Note
|
||||
# Building with mesa-12.x.x fails to create an include/GL directory and
|
||||
# an "osmesa.h" file. Both make it fairly useless for off-screen VTK.
|
||||
#
|
||||
# Building with mesa-11.x, mesa-13.x and mesa-17.x seems to be okay.
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
unset vtk_version mesa_version # Purge current values
|
||||
|
||||
# mesa version from OpenFOAM etc/config.sh file:
|
||||
_foamConfig vtk
|
||||
|
||||
mesaPACKAGE=$mesa_version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] mesa-VERSION [-- configure-options]
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* build Mesa with
|
||||
${mesaPACKAGE:-'unspecified MESA version'}
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler # Compiler info for CMake/configure
|
||||
|
||||
# Non-standard location for clang?
|
||||
case "$WM_COMPILER_TYPE-$WM_COMPILER" in
|
||||
ThirdParty-Clang*)
|
||||
thirdPartyClang=true
|
||||
;;
|
||||
*)
|
||||
unset thirdPartyClang
|
||||
;;
|
||||
esac
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
--) break;; # Extra configure options (leave on $@ for later detection)
|
||||
-h | -help) usage ;;
|
||||
-gcc)
|
||||
useGcc
|
||||
unset thirdPartyClang
|
||||
;;
|
||||
mesa-*)
|
||||
mesaPACKAGE="${1%%/}"
|
||||
;;
|
||||
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$mesaPACKAGE" ] || die "The mesa-VERSION was not specified"
|
||||
|
||||
# Nothing to build
|
||||
if _foamIsNone "$mesaPACKAGE"
|
||||
then
|
||||
echo "Using mesa-none (skip ThirdParty build of MESA)"
|
||||
exit 0
|
||||
elif _foamIsSystem "$mesaPACKAGE"
|
||||
then
|
||||
echo "Using mesa-system (skip ThirdParty build of MESA)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Locate third-party clang as required
|
||||
if [ "$thirdPartyClang" = true ]
|
||||
then
|
||||
thirdPartyClang=$(command -v clang) || {
|
||||
echo "Error: could not properly locate clang"
|
||||
exit 2
|
||||
}
|
||||
|
||||
# Root installation directory
|
||||
thirdPartyClang=${thirdPartyClang%/bin/clang}
|
||||
|
||||
[ -d "$thirdPartyClang" ] || {
|
||||
echo "Error: could not properly locate clang"
|
||||
exit 2
|
||||
}
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build MESA
|
||||
# For 64-bit
|
||||
# - MESA itself will normally build into 'lib64'.
|
||||
#
|
||||
# MESA_SOURCE_DIR : location of the original sources
|
||||
# MESA_ARCH_DIR : installation directory
|
||||
|
||||
MESA_SOURCE_DIR=$sourceBASE/$mesaPACKAGE
|
||||
MESA_ARCH_PATH=$installBASE/$mesaPACKAGE
|
||||
|
||||
#
|
||||
# Manual adjustments to mesa
|
||||
# - avoid GLES (GLES1) since <GLES/gl.h> may mask the <GL/gl.h> header
|
||||
adjustMESA()
|
||||
{
|
||||
pkgconfigAdjust $MESA_ARCH_PATH
|
||||
|
||||
\rm -rf $MESA_ARCH_PATH/include/GLES $MESA_ARCH_PATH/include/GLES1
|
||||
echo "removed all gles1 includes"
|
||||
}
|
||||
|
||||
(
|
||||
# Configuration options:
|
||||
unset configOpt
|
||||
|
||||
if [ -d "$thirdPartyClang" ]
|
||||
then
|
||||
configOpt="$configOpt --with-llvm-prefix=$thirdPartyClang"
|
||||
fi
|
||||
|
||||
# Additional configure options
|
||||
if [ "$1" = "--" ]
|
||||
then
|
||||
shift
|
||||
configOpt="$configOpt $@"
|
||||
fi
|
||||
|
||||
# End of configuration options
|
||||
# ----------------------------
|
||||
buildDIR=$buildBASE/$mesaPACKAGE
|
||||
|
||||
cd $MESA_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
|
||||
# Remove any existing build
|
||||
rm -rf $MESA_ARCH_PATH
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
|
||||
echo "----"
|
||||
echo "Building $mesaPACKAGE"
|
||||
echo " Source : $MESA_SOURCE_DIR"
|
||||
echo " Target : $MESA_ARCH_PATH"
|
||||
if [ -d "$thirdPartyClang" ]
|
||||
then
|
||||
echo " Clang : $thirdPartyClang"
|
||||
fi
|
||||
echo "----"
|
||||
|
||||
# Possibly for older mesa versions (see paraview wiki)
|
||||
# CXXFLAGS="-O2 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
|
||||
# CFLAGS="-O2 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
|
||||
|
||||
## autoreconf -fi
|
||||
set -x
|
||||
$MESA_SOURCE_DIR/configure \
|
||||
--prefix=$MESA_ARCH_PATH \
|
||||
--disable-xvmc \
|
||||
--disable-glx \
|
||||
--disable-dri \
|
||||
--disable-gbm \
|
||||
--disable-egl \
|
||||
--disable-gles1 \
|
||||
--enable-texture-float \
|
||||
--enable-gallium-osmesa --with-gallium-drivers=swrast \
|
||||
$configOpt \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built $mesaPACKAGE" \
|
||||
&& adjustMESA
|
||||
) || {
|
||||
echo "Error building: MESA"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
202
makeOPENMPI
Executable file
202
makeOPENMPI
Executable file
@ -0,0 +1,202 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2017-2018 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeOPENMPI
|
||||
#
|
||||
# Description
|
||||
# Build script for openmpi
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Dynamic library endings (default is .so)
|
||||
[ "$(uname -s)" = Darwin ] && SO=dylib || SO=so
|
||||
|
||||
# Short-circuit test for an installation
|
||||
if [ "$1" = "-test" ]
|
||||
then
|
||||
[ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; }
|
||||
dir="$2" # <- MPI_ARCH_PATH
|
||||
if [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpi.$SO" ]
|
||||
then
|
||||
echo " Have openmpi shared library (${dir##*/})"
|
||||
exit 0
|
||||
elif [ -r "$dir/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ]
|
||||
then
|
||||
echo " Have openmpi static library (${dir##*/})"
|
||||
exit 0
|
||||
else
|
||||
echo "No openmpi libraries found: ${dir:-not-specified}"
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
# Transition
|
||||
# ~~~~~~~~~~
|
||||
_foamAddLib() { true; }
|
||||
_foamAddMan() { true; }
|
||||
_foamAddPath() { true; }
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
WM_MPLIB=OPENMPI # Ensure we get the correct MPI
|
||||
|
||||
# openmpi version from OpenFOAM etc/config.sh file:
|
||||
_foamConfig mpi
|
||||
|
||||
mpiPACKAGE=${FOAM_MPI:-openmpi-system}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [openmpi-VERSION] [-- configure-options]
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-memcheck Configure with --enable-memcheck (requires valgrind.h)
|
||||
-threaded Configure with --enable-mpi-thread-multiple
|
||||
-no-threaded Configure with --disable-mpi-thread-multiple
|
||||
-help
|
||||
|
||||
* build openmpi with
|
||||
${mpiPACKAGE:-'unspecified openmpi version'}
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler # Compiler info for CMake/configure
|
||||
|
||||
unset optMemchecker optThreaded
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
--) break;; # Extra configure options (leave on $@ for later detection)
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
-memcheck*) optMemchecker=true ;;
|
||||
-thread*) optThreaded=enable ;;
|
||||
-no-thread*) optThreaded=disable ;;
|
||||
|
||||
openmpi-[0-9]* | openmpi_[0-9]* | openmpi-system )
|
||||
mpiPACKAGE="${1%%/}"
|
||||
;;
|
||||
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$mpiPACKAGE" ] || die "The openmpi-VERSION was not specified"
|
||||
|
||||
# Nothing to build
|
||||
if _foamIsNone "$mpiPACKAGE"
|
||||
then
|
||||
echo "Using openmpi-none (skip ThirdParty build of openmpi)"
|
||||
exit 0
|
||||
elif _foamIsSystem "$mpiPACKAGE"
|
||||
then
|
||||
echo "Using openmpi-system (skip ThirdParty build of openmpi)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Build openmpi
|
||||
#
|
||||
# MPI_SOURCE_DIR : location of the original sources
|
||||
# MPI_ARCH_PATH : installation directory
|
||||
|
||||
MPI_SOURCE_DIR=$sourceBASE/$mpiPACKAGE
|
||||
MPI_ARCH_PATH=$installBASE/$mpiPACKAGE
|
||||
|
||||
if [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.$SO" ]
|
||||
then
|
||||
echo "Already has shared library: $MPI_ARCH_PATH"
|
||||
elif [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ]
|
||||
then
|
||||
echo "Already has static library: $MPI_ARCH_PATH"
|
||||
else
|
||||
echo "Starting build: $WM_MPLIB ($mpiPACKAGE)"
|
||||
echo
|
||||
|
||||
(
|
||||
# Configuration options:
|
||||
# Start with GridEngine support - builds without external libraries
|
||||
configOpt="--with-sge"
|
||||
|
||||
if [ -n "$optMemchecker" ]
|
||||
then
|
||||
configOpt="$configOpt --enable-memchecker --with-valgrind"
|
||||
fi
|
||||
|
||||
# --enable-mpi-thread-multiple / --disable-mpi-thread-multiple
|
||||
if [ -n "$optThreaded" ]
|
||||
then
|
||||
configOpt="$configOpt --${optThreaded}-mpi-thread-multiple"
|
||||
fi
|
||||
|
||||
# Additional configure options
|
||||
if [ "$1" = "--" ]
|
||||
then
|
||||
shift
|
||||
configOpt="$configOpt $@"
|
||||
fi
|
||||
|
||||
# End of configuration options
|
||||
# ----------------------------
|
||||
|
||||
buildDIR=$buildBASE/$mpiPACKAGE
|
||||
|
||||
cd $MPI_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
|
||||
rm -rf $MPI_ARCH_PATH
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
|
||||
set -x
|
||||
$MPI_SOURCE_DIR/configure \
|
||||
--prefix=$MPI_ARCH_PATH \
|
||||
--libdir=$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \
|
||||
--disable-orterun-prefix-by-default \
|
||||
--enable-shared --disable-static \
|
||||
--enable-mpi-fortran=none \
|
||||
$configOpt \
|
||||
&& set +x \
|
||||
&& make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: $mpiPACKAGE" \
|
||||
&& pkgconfigAdjust $MPI_ARCH_PATH
|
||||
) || {
|
||||
echo "Error building: $mpiPACKAGE"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
14
makeOPENMPI.example
Executable file
14
makeOPENMPI.example
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
# An example for building OPENMPI with particular settings
|
||||
|
||||
openmpi=openmpi-1.10.6
|
||||
|
||||
# InfiniBand support
|
||||
verbs="--with-verbs=/usr/local/ofed --with-verbs-lib=/usr/local/ofed/lib64"
|
||||
# unset verbs
|
||||
|
||||
./makeOPENMPI $openmpi -- \
|
||||
$verbs \
|
||||
"$@"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
234
makeParaView
234
makeParaView
@ -4,117 +4,103 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
# \\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeParaView
|
||||
#
|
||||
# Description
|
||||
# Make and install paraview 4 or 5
|
||||
# - place the paraview source under $WM_THIRD_PARTY_DIR/ParaView-VERSION
|
||||
# (note capitalisation)
|
||||
# Make and install ParaView.
|
||||
# The ParaView sources should be located under one of these locations:
|
||||
# - $WM_THIRD_PARTY_DIR/ParaView-VERSION
|
||||
# - $WM_THIRD_PARTY_DIR/ParaView-vVERSION
|
||||
#
|
||||
# Note the capitalization of ParaView in the directory names.
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} || exit 1
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
. etc/tools/ParaViewFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# USER OPTIONS:
|
||||
# ~~~~~~~~~~~~~
|
||||
|
||||
# MPI support:
|
||||
withMPI=false
|
||||
MPI_MAX_PROCS=32
|
||||
unset ParaView_VERSION # Purge current values
|
||||
|
||||
# Python support:
|
||||
# note: script will try to determine the appropriate python library.
|
||||
# If it fails, specify the path using the PYTHON_LIBRARY variable
|
||||
withPYTHON=false
|
||||
PYTHON_LIBRARY=""
|
||||
# PYTHON_LIBRARY="/usr/lib64/libpython2.6.so.1.0"
|
||||
# ParaView_VERSION from etc/config.sh file:
|
||||
_foamConfig paraview
|
||||
|
||||
# MESA graphics support:
|
||||
withMESA=false
|
||||
MESA_INCLUDE="/usr/include/GL"
|
||||
MESA_LIBRARY="/usr/lib64/libOSMesa.so"
|
||||
# Avoid any potential conflicts (especially if building from git)
|
||||
if [ -d "$ParaView_DIR" ]
|
||||
then
|
||||
_foamClean PATH "$ParaView_DIR"
|
||||
_foamClean LD_LIBRARY_PATH "$ParaView_DIR"
|
||||
fi
|
||||
unset ParaView_DIR ParaView_INCLUDE_DIR PV_PLUGIN_PATH
|
||||
|
||||
# extra QT gui support (useful for some third party apps)
|
||||
withQT=true
|
||||
case "$ParaView_VERSION" in
|
||||
[Pp]*)
|
||||
ParaView_VERSION="${ParaView_VERSION##*-}" # Without "ParaView-" prefix
|
||||
;;
|
||||
esac
|
||||
ParaView_VERSION="${ParaView_VERSION%%-*}" # Without suffix (eg, -python)
|
||||
|
||||
# Set the path to the Qt-4.5 (or later) qmake if the system Qt is older
|
||||
QMAKE_PATH=""
|
||||
|
||||
# Set the path to cmake
|
||||
CMAKE_PATH=""
|
||||
# Set initial ParaView_MAJOR based on current value of ParaView_VERSION
|
||||
setParaViewVersion ${ParaView_VERSION:-none}
|
||||
|
||||
# New rendering backend (starting with paraview 5.0).
|
||||
# Default to auto-config based on paraview version
|
||||
withGL2=auto
|
||||
|
||||
#
|
||||
# NO FURTHER EDITING BELOW THIS LINE
|
||||
#
|
||||
#-----------------------------------------------------------------------------
|
||||
Script=${0##*/}
|
||||
withGL2=auto # auto-config based on version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
: ${ParaView_VERSION:=none} # some dummy value for usage information
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: $Script [OPTION] [paraview-VERSION] [CMAKE-OPTION]
|
||||
usage: ${0##*/} [OPTION] [paraview-VERSION] [CMAKE-OPTION]
|
||||
options:
|
||||
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-rebuild for repeated builds (-make -install) *use with caution*
|
||||
-gl2 with new rendering backend (if not already enabled)
|
||||
-mesa with mesa (if not already enabled)
|
||||
-mpi with mpi (if not already enabled)
|
||||
-python with python (if not already enabled)
|
||||
-cmake PATH with the cmake version corresponding to the cmake path given
|
||||
-gl2 with new rendering backend (default: auto)
|
||||
-mesa with mesa
|
||||
-mesa-prefix DIR location of mesa installation (sets -mesa-include, -mesa-lib)
|
||||
-mesa-include DIR location of mesa headers (current: ${MESA_INCLUDE:-none})
|
||||
-mesa-lib PATH path to mesa library (current: ${MESA_LIBRARY:-none})
|
||||
-mpi with mpi
|
||||
-mpi=N with max 'N' mpi processes. N=0 for no upper-limit.
|
||||
-python with python
|
||||
-python-include DIR
|
||||
location of python headers (current: ${PYTHON_INCLUDE:-none})
|
||||
-python-lib PATH path to python library (current: ${PYTHON_LIBRARY:-none})
|
||||
-cmake PATH with cmake from the path given
|
||||
-qmake PATH with the Qt version corresponding to the qmake path given
|
||||
-qt with extra Qt gui support (if not already enabled)
|
||||
-qt-VER with Qt version corresponding to
|
||||
\$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/qt-VER/bin/qmake
|
||||
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-verbose verbose output in Makefiles
|
||||
-version VER specify an alternative version (current value: $ParaView_VERSION)
|
||||
-version VER specify an alternative version (current: $ParaView_VERSION)
|
||||
-major VER specify an alternative major version for special builds
|
||||
-buildType NAME specify the build type (default: Release)
|
||||
-mesa-include DIR
|
||||
location of mesa headers (current value: ${MESA_INCLUDE:-none})
|
||||
-mesa-lib PATH path to mesa library (current value: ${MESA_LIBRARY:-none})
|
||||
-python-lib PATH path to python library (current value: ${PYTHON_LIBRARY:-none})
|
||||
-suffix NAME specify a suffix to distinguish the build
|
||||
-help
|
||||
|
||||
The -no-FEATURE option can be used to forcibly disable these features:
|
||||
mesa mpi python qt
|
||||
-no-gl2 | -no-mesa | -no-mpi | -no-python | -no-qt
|
||||
|
||||
CMake options start with a capital letter and contain an '='.
|
||||
For example,
|
||||
$Script BUILD_TESTING=ON
|
||||
${0##*/} BUILD_TESTING=ON
|
||||
to add tests
|
||||
|
||||
For finer control, the build stages can be selected or deselected individually:
|
||||
@ -126,58 +112,39 @@ For finer control, the build stages can be selected or deselected individually:
|
||||
|
||||
* Make and install paraview-$ParaView_VERSION located under
|
||||
\$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
|
||||
-> \$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/paraview-$ParaView_VERSION
|
||||
-> \$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/paraview-$ParaView_VERSION$BUILD_SUFFIX
|
||||
|
||||
To make a different paraview version, simply specify on the command-line.
|
||||
For example,
|
||||
|
||||
./makeParaview 4.4.0
|
||||
./makeParaview 5.4.1
|
||||
|
||||
Or change the \$WM_PROJECT_DIR/etc/config.sh/paraview settings.
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler # Compiler info for CMake/configure
|
||||
|
||||
# ensure CMake gets the correct C/C++ compiler
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
#
|
||||
# add options based on script name:
|
||||
#
|
||||
case "$Script" in *-mesa*) withMESA=true;; esac
|
||||
case "$Script" in *-mpi*) withMPI=true;; esac
|
||||
case "$Script" in *-python*) withPYTHON=true;; esac
|
||||
case "$Script" in *-qt*) withQT=true;; esac
|
||||
|
||||
# Set initial ParaView_MAJOR based on current value of ParaView_VERSION
|
||||
setVersion ${ParaView_VERSION:-none}
|
||||
|
||||
#
|
||||
# various building stages
|
||||
#
|
||||
# Various building stages
|
||||
unset runPATCH runCONFIG runMAKE runINSTALL
|
||||
runDEFAULT=true
|
||||
buildType=Release
|
||||
|
||||
# parse options
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
[0-9]* | paraview-[0-9]* | ParaView-[0-9]*) # paraview version
|
||||
setVersion "${1%%/}"
|
||||
setParaViewVersion "${1%%/}"
|
||||
;;
|
||||
[A-Z]*=*) # cmake variables
|
||||
addCMakeVariable "$1"
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
;;
|
||||
-patch) # stage 0: patch sources
|
||||
runPATCH=true
|
||||
unset runDEFAULT
|
||||
@ -220,22 +187,45 @@ do
|
||||
-mesa)
|
||||
withMESA=true
|
||||
;;
|
||||
-osmesa)
|
||||
echo
|
||||
echo "The -osmesa option is currently ignored"
|
||||
echo
|
||||
# withMESA=true
|
||||
# withOSMESA=true
|
||||
;;
|
||||
-no-mesa)
|
||||
withMESA=false
|
||||
withOSMESA=false
|
||||
;;
|
||||
-mesa-prefix)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
withMESA=true
|
||||
MESA_INCLUDE="${2%%/}/include"
|
||||
# Could be under (lib64 | lib)
|
||||
MESA_LIBRARY="${2%%/}/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
|
||||
[ -f "$MESA_LIBRARY" ] || MESA_LIBRARY="${2%%/}/lib/libOSMesa.so"
|
||||
shift
|
||||
;;
|
||||
-mesa-include)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
MESA_INCLUDE="$2"
|
||||
withMESA=true
|
||||
MESA_INCLUDE="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-mesa-lib)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
MESA_LIBRARY="$2"
|
||||
withMESA=true
|
||||
MESA_LIBRARY="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-mpi)
|
||||
withMPI=true
|
||||
;;
|
||||
-mpi=[0-9]*) # mpi and max mpi processes
|
||||
withMPI=true
|
||||
MPI_MAX_PROCS="${1##*=}"
|
||||
;;
|
||||
-no-mpi)
|
||||
withMPI=false
|
||||
;;
|
||||
@ -245,19 +235,26 @@ do
|
||||
-no-python)
|
||||
withPYTHON=false
|
||||
;;
|
||||
-python-include)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
withPYTHON=true
|
||||
PYTHON_INCLUDE="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-python-lib)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
PYTHON_LIBRARY="$2"
|
||||
withPYTHON=true
|
||||
PYTHON_LIBRARY="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-cmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
CMAKE_PATH=$2
|
||||
CMAKE_PATH="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-qmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
QMAKE_PATH=$2
|
||||
QMAKE_PATH="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-qt)
|
||||
@ -267,6 +264,7 @@ do
|
||||
withQT=false
|
||||
;;
|
||||
-qt-[1-9]*)
|
||||
withQT=true
|
||||
QMAKE_PATH="$installBASE/${1##-}"
|
||||
;;
|
||||
-verbose)
|
||||
@ -274,7 +272,7 @@ do
|
||||
;;
|
||||
-version)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
setVersion "${2%%/}"
|
||||
setParaViewVersion "${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-major)
|
||||
@ -284,7 +282,12 @@ do
|
||||
;;
|
||||
-buildType)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
buildType="$2"
|
||||
BUILD_TYPE="$2"
|
||||
shift
|
||||
;;
|
||||
-suffix)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
setBuildSuffix "$2"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
@ -296,7 +299,7 @@ done
|
||||
|
||||
[ -n "$ParaView_VERSION" ] || die "The paraview-VERSION was not specified"
|
||||
|
||||
# nothing to build
|
||||
# Nothing to build
|
||||
if _foamIsNone "$ParaView_VERSION"
|
||||
then
|
||||
echo "Using paraview-none (skip ThirdParty build of ParaView)"
|
||||
@ -322,6 +325,16 @@ then
|
||||
: ${runINSTALL:=true}
|
||||
fi
|
||||
|
||||
if [ "$withMESA" = true ]
|
||||
then
|
||||
: ${withQT:=false} # No QT unless explicitly requested
|
||||
addCMakeVariable "VTK_USE_X=OFF"
|
||||
# addCMakeVariable "OPENGL_INCLUDE_DIR=IGNORE"
|
||||
# addCMakeVariable "OPENGL_gl_LIBRARY=IGNORE"
|
||||
# addCMakeVariable "OPENGL_xmesa_INCLUDE_DIR=IGNORE"
|
||||
## seems to be unnecessary => addCMakeVariable "VTK_USE_OFFSCREEN=OFF"
|
||||
fi
|
||||
|
||||
|
||||
# Set configure options
|
||||
#~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -332,7 +345,7 @@ addMesaSupport # set MESA-specific options
|
||||
addGL2Support # new rendering backend
|
||||
addQtSupport # add extra Qt support
|
||||
|
||||
setDirs # where things are or should be put
|
||||
setParaViewDirs # where things are or should be put
|
||||
|
||||
|
||||
# Build and install
|
||||
@ -353,11 +366,10 @@ Features selected
|
||||
qt ${withQT:-false}
|
||||
---------------------
|
||||
Version information
|
||||
qt ${QtVersion:-none}
|
||||
version ${ParaView_VERSION:-unknown}
|
||||
paraview ${ParaView_VERSION:-unknown}
|
||||
major ${ParaView_MAJOR:-unknown}
|
||||
build ${buildType:-Release}
|
||||
$(checkVersion)
|
||||
build ${BUILD_TYPE:-unknown}
|
||||
qt ${QT_VERSION:-none}
|
||||
---------------------
|
||||
SUMMARY
|
||||
|
||||
|
||||
22
makeParaView.example
Executable file
22
makeParaView.example
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
# An example for building particular combinations of ParaView with
|
||||
# - mpi (0 = no upper-limit on processes)
|
||||
# - mesa
|
||||
# - python (required for Catalyst)
|
||||
#
|
||||
# NOTE: must modify etc/config.*/paraview to use this particular version
|
||||
# and combination, or use chaining as per etc/config.*/example/paraview
|
||||
|
||||
# mesa=mesa-11.2.2
|
||||
# mesa=mesa-13.0.3
|
||||
mesa=mesa-17.1.1
|
||||
|
||||
set -x
|
||||
./makeParaView \
|
||||
-mpi=0 \
|
||||
-mesa-prefix $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$mesa \
|
||||
-python \
|
||||
-suffix mesa-mpi-py \
|
||||
"$@"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
330
makeParaView3
330
makeParaView3
@ -1,330 +0,0 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeParaView3
|
||||
#
|
||||
# Description
|
||||
# Make and install paraview for version 3.14.1 and higher
|
||||
# - place the paraview source under $WM_THIRD_PARTY_DIR/ParaView-VERSION
|
||||
# (note capitalisation)
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} || exit 1
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
. etc/tools/ParaView3Functions
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# USER OPTIONS:
|
||||
# ~~~~~~~~~~~~~
|
||||
|
||||
# MPI support:
|
||||
withMPI=false
|
||||
MPI_MAX_PROCS=32
|
||||
|
||||
# Python support:
|
||||
# note: script will try to determine the appropriate python library.
|
||||
# If it fails, specify the path using the PYTHON_LIBRARY variable
|
||||
withPYTHON=false
|
||||
PYTHON_LIBRARY=""
|
||||
# PYTHON_LIBRARY="/usr/lib64/libpython2.6.so.1.0"
|
||||
|
||||
# MESA graphics support:
|
||||
withMESA=false
|
||||
MESA_INCLUDE="/usr/include/GL"
|
||||
MESA_LIBRARY="/usr/lib64/libOSMesa.so"
|
||||
|
||||
# extra QT gui support (useful for some third party apps)
|
||||
withQT=true
|
||||
|
||||
# Set the path to the Qt-4.5 (or later) qmake if the system Qt is older
|
||||
QMAKE_PATH=""
|
||||
|
||||
# Set the path to cmake
|
||||
CMAKE_PATH=""
|
||||
|
||||
#
|
||||
# NO FURTHER EDITING BELOW THIS LINE
|
||||
#
|
||||
#-----------------------------------------------------------------------------
|
||||
Script=${0##*/}
|
||||
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: $Script [OPTION] [paraview-VERSION] [CMAKE-OPTION]
|
||||
options:
|
||||
-rebuild for repeated builds (-make -install) *use with caution*
|
||||
-mesa with mesa (if not already enabled)
|
||||
-mpi with mpi (if not already enabled)
|
||||
-python with python (if not already enabled)
|
||||
-cmake PATH with the cmake version corresponding to the cmake path given
|
||||
-qmake PATH with the Qt version corresponding to the qmake path given
|
||||
-qt with extra Qt gui support (if not already enabled)
|
||||
-qt-VER with Qt version corresponding to
|
||||
\$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/qt-VER/bin/qmake
|
||||
-gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-verbose verbose output in Makefiles
|
||||
-version VER specify an alternative version (current value: $ParaView_VERSION)
|
||||
-major VER specify an alternative major version for special builds
|
||||
-mesa-include DIR
|
||||
location of mesa headers (current value: ${MESA_INCLUDE:-none})
|
||||
-mesa-lib PATH path to mesa library (current value: ${MESA_LIBRARY:-none})
|
||||
-python-lib PATH path to python library (current value: ${PYTHON_LIBRARY:-none})
|
||||
-help
|
||||
|
||||
The -no-FEATURE option can be used to forcibly disable these features:
|
||||
mesa mpi python qt
|
||||
|
||||
CMake options start with a capital letter and contain an '='.
|
||||
For example,
|
||||
$Script BUILD_TESTING=ON PARAVIEW_GENERATE_PROXY_DOCUMENTATION=OFF
|
||||
to add tests and avoid building documentation
|
||||
|
||||
For finer control, the build stages can be selected or deselected individually:
|
||||
-config -no-config
|
||||
-make -no-make
|
||||
-install -no-install
|
||||
|
||||
|
||||
* Make and install paraview-$ParaView_VERSION located under
|
||||
\$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
|
||||
-> \$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/paraview-$ParaView_VERSION
|
||||
|
||||
To make a different paraview version, simply specify on the command-line.
|
||||
For example,
|
||||
|
||||
./makeParaview 3.14.1
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# ensure CMake gets the correct C/C++ compiler
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
#
|
||||
# add options based on script name:
|
||||
#
|
||||
case "$Script" in *-mesa*) withMESA=true;; esac
|
||||
case "$Script" in *-mpi*) withMPI=true;; esac
|
||||
case "$Script" in *-python*) withPYTHON=true;; esac
|
||||
case "$Script" in *-qt*) withQT=true;; esac
|
||||
|
||||
# Set initial ParaView_MAJOR based on current value of ParaView_VERSION
|
||||
setVersion ${ParaView_VERSION:-none}
|
||||
|
||||
#
|
||||
# various building stages
|
||||
#
|
||||
unset runCONFIG runMAKE runINSTALL
|
||||
runDEFAULT=true
|
||||
|
||||
# parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
[0-9]* | paraview-[0-9]* | ParaView-[0-9]*) # paraview version
|
||||
setVersion "${1%%/}"
|
||||
;;
|
||||
[A-Z]*=*) # cmake variables
|
||||
addCMakeVariable "$1"
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
;;
|
||||
-config) # stage 1: config only
|
||||
runCONFIG=true
|
||||
unset runDEFAULT
|
||||
;;
|
||||
-no-config)
|
||||
runCONFIG=false
|
||||
;;
|
||||
-make) # stage 2: make only
|
||||
runMAKE=true
|
||||
unset runDEFAULT
|
||||
;;
|
||||
-no-make)
|
||||
runMAKE=false
|
||||
;;
|
||||
-install) # stage 3: install only
|
||||
runINSTALL=true
|
||||
unset runDEFAULT
|
||||
;;
|
||||
-no-install)
|
||||
runINSTALL=false
|
||||
;;
|
||||
-rebuild) # shortcut for rebuilding
|
||||
runMAKE=true
|
||||
runINSTALL=true
|
||||
unset runDEFAULT
|
||||
;;
|
||||
-mesa)
|
||||
withMESA=true
|
||||
;;
|
||||
-no-mesa)
|
||||
withMESA=false
|
||||
;;
|
||||
-mesa-include)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
MESA_INCLUDE="$2"
|
||||
shift
|
||||
;;
|
||||
-mesa-lib)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
MESA_LIBRARY="$2"
|
||||
shift
|
||||
;;
|
||||
-mpi)
|
||||
withMPI=true
|
||||
;;
|
||||
-no-mpi)
|
||||
withMPI=false
|
||||
;;
|
||||
-python)
|
||||
withPYTHON=true
|
||||
;;
|
||||
-no-python)
|
||||
withPYTHON=false
|
||||
;;
|
||||
-python-lib)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
PYTHON_LIBRARY="$2"
|
||||
shift
|
||||
;;
|
||||
-cmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
CMAKE_PATH=$2
|
||||
shift
|
||||
;;
|
||||
-qmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
QMAKE_PATH=$2
|
||||
shift
|
||||
;;
|
||||
-qt)
|
||||
withQT=true
|
||||
;;
|
||||
-no-qt)
|
||||
withQT=false
|
||||
;;
|
||||
-qt-[1-9]*)
|
||||
QMAKE_PATH="$installBASE/${1##-}"
|
||||
;;
|
||||
-verbose)
|
||||
withVERBOSE=true
|
||||
;;
|
||||
-version)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
setVersion "${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-major)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
export ParaView_MAJOR="$2"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$ParaView_VERSION" ] || die "The paraview-VERSION was not specified"
|
||||
|
||||
# nothing to build
|
||||
if _foamIsNone "$ParaView_VERSION"
|
||||
then
|
||||
echo "Using paraview-none (skip ThirdParty build of ParaView)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$runDEFAULT" = true ]
|
||||
then
|
||||
: ${runCONFIG:=true}
|
||||
: ${runMAKE:=true}
|
||||
: ${runINSTALL:=true}
|
||||
fi
|
||||
|
||||
|
||||
# Set configure options
|
||||
#~~~~~~~~~~~~~~~~~~~~~~
|
||||
addVerbosity # verbose makefiles
|
||||
addMpiSupport # set MPI-specific options
|
||||
addPythonSupport # set Python-specific options
|
||||
addMesaSupport # set MESA-specific options
|
||||
addQtSupport # add extra Qt support
|
||||
|
||||
setDirs # where things are or should be put
|
||||
|
||||
|
||||
# Build and install
|
||||
# ~~~~~~~~~~~~~~~~~
|
||||
cat<<SUMMARY
|
||||
|
||||
Build stages selected
|
||||
---------------------
|
||||
-config ${runCONFIG:-false}
|
||||
-make ${runMAKE:-false}
|
||||
-install ${runINSTALL:-false}
|
||||
---------------------
|
||||
Features selected
|
||||
mesa ${withMESA:-false}
|
||||
mpi ${withMPI:-false}
|
||||
python ${withPYTHON:-false}
|
||||
qt ${withQT:-false}
|
||||
---------------------
|
||||
Version information
|
||||
qt ${QtVersion:-none}
|
||||
version ${ParaView_VERSION:-unknown}
|
||||
major ${ParaView_MAJOR:-unknown}
|
||||
$(checkVersion)
|
||||
---------------------
|
||||
SUMMARY
|
||||
|
||||
[ "$runCONFIG" = true ] && configParaView
|
||||
[ "$runMAKE" = true ] && makeParaView
|
||||
[ "$runINSTALL" = true ] && installParaView
|
||||
|
||||
echo
|
||||
echo Done
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
183
makeQt
183
makeQt
@ -4,137 +4,162 @@
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
# \\/ M anipulation |
|
||||
# \\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM.
|
||||
#
|
||||
# OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeQt
|
||||
#
|
||||
# Description
|
||||
# Build script for qt-everywhere-opensource-src
|
||||
# Build script for QT (the qt-everywhere-opensource-src package)
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
qtVERSION=4.7.3
|
||||
qtTYPE=qt-everywhere-opensource-src
|
||||
#------------------------------------------------------------------------------
|
||||
# run from third-party directory only
|
||||
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || {
|
||||
echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR"
|
||||
echo " The environment variables are inconsistent with the installation."
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
. etc/tools/QtFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [VERSION]
|
||||
usage: ${0##*/} [OPTION] [qt-VERSION] [-- configure-options]
|
||||
options:
|
||||
-gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX
|
||||
-help
|
||||
|
||||
* build $qtTYPE, version $qtVERSION
|
||||
* build $qtTYPE, version ${qtVERSION:-undefined}
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler true # Compiler info + flags for CMake/configure
|
||||
|
||||
# ensure configure gets the correct C/C++ compiler
|
||||
[ -n "$WM_CC" ] && export CC="$WM_CC"
|
||||
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
|
||||
|
||||
# parse options
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
-gcc)
|
||||
export CC=gcc # use gcc/g++
|
||||
export CXX=g++
|
||||
;;
|
||||
[1-9]* | qt-[1-9]*)
|
||||
'') ;; # Ignore empty
|
||||
--) break;; # Extra configure options (leave on $@ for later detection)
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
-qt-[1-9]* | [1-9]* | qt-*)
|
||||
# -qt-VERSION, VERSION, qt-VERSION, qt-everywhere-opensource-src-VERSION
|
||||
qtVERSION="${1%%/}";
|
||||
qtVERSION="${qtVERSION#qt-}"
|
||||
qtVERSION="${qtVERSION##*-}"
|
||||
;;
|
||||
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
qtPACKAGE=$qtTYPE-$qtVERSION
|
||||
|
||||
# Nothing to build
|
||||
if _foamIsNone "$qtPACKAGE"
|
||||
then
|
||||
echo "Using qt-none (skip ThirdParty build of QT)"
|
||||
exit 0
|
||||
elif _foamIsSystem "$qtPACKAGE"
|
||||
then
|
||||
echo "Using qt-system"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
qtPACKAGE=$qtTYPE-$qtVERSION
|
||||
prefixDIR=$installBASE/qt-$qtVERSION
|
||||
|
||||
|
||||
#
|
||||
# Build QT
|
||||
#
|
||||
echo "---------------"
|
||||
if [ -d "$prefixDIR" -a -r "$prefixDIR/bin/qmake" ]
|
||||
|
||||
QT_SOURCE_DIR=$sourceBASE/$qtPACKAGE
|
||||
QT_ARCH_PATH=$installBASE/qt-$qtVERSION
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
echo "Build Qt $qtPACKAGE"
|
||||
echo
|
||||
if [ -d "$QT_ARCH_PATH" -a -r "$QT_ARCH_PATH/bin/qmake" ]
|
||||
then
|
||||
echo "Already built: Qt-$qtVERSION"
|
||||
else
|
||||
echo "Starting build: Qt-$qtVERSION"
|
||||
(
|
||||
sourceDIR=$WM_THIRD_PARTY_DIR/$qtPACKAGE
|
||||
buildDIR=$buildBASE/$qtPACKAGE
|
||||
(
|
||||
# Configuration options:
|
||||
unset configOpt
|
||||
configOpt="$configOpt -nomake examples"
|
||||
|
||||
cd $sourceDIR || exit 1
|
||||
make distclean 2>/dev/null
|
||||
case "$qtVERSION" in
|
||||
4*) # QT-4
|
||||
# Without demos.
|
||||
configOpt="$configOpt -nomake demos"
|
||||
|
||||
rm -rf $buildDIR
|
||||
mkdir -p $buildDIR
|
||||
cd $buildDIR
|
||||
# Without old qt3 transition code
|
||||
configOpt="$configOpt -no-qt3support"
|
||||
|
||||
# remove old junk
|
||||
rm -rf $prefixDIR
|
||||
# Without WebKit - uses std:tr1 and does not compile with c++11
|
||||
# Fortunately WebKit is now optional for ParaView
|
||||
configOpt="$configOpt -no-webkit"
|
||||
;;
|
||||
|
||||
# remove any remnants from a previous shadow build
|
||||
rm -f "$sourceDIR/.qmake.cache" 2>/dev/null
|
||||
rm -f "$sourceDIR/src/corelib/global/qconfig.h" 2>/dev/null
|
||||
rm -f "$sourceDIR/src/corelib/global/qconfig.cpp" 2>/dev/null
|
||||
*) # QT-5
|
||||
# Avoid too many X11 system dependencies.
|
||||
configOpt="$configOpt -qt-xcb"
|
||||
;;
|
||||
esac
|
||||
|
||||
# compile as opensource, accepting LGPL conditions
|
||||
echo "yes" | \
|
||||
$sourceDIR/configure \
|
||||
--prefix=$prefixDIR \
|
||||
-opensource \
|
||||
-nomake demos \
|
||||
-nomake examples \
|
||||
&& time make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: Qt-$qtVERSION" \
|
||||
&& finalizeQt
|
||||
) || {
|
||||
echo "Error building: Qt-$qtVERSION"
|
||||
exit 1
|
||||
}
|
||||
# Additional configure options
|
||||
if [ "$1" = "--" ]
|
||||
then
|
||||
shift
|
||||
configOpt="$configOpt $@"
|
||||
fi
|
||||
|
||||
# End of configuration options
|
||||
# ----------------------------
|
||||
buildDIR=$buildBASE/$qtPACKAGE
|
||||
|
||||
cd $QT_SOURCE_DIR || exit 1
|
||||
export GIT_DIR=$PWD/.git # Mask seeing our own git-repo
|
||||
[ -e Makefile ] && make distclean 2>/dev/null
|
||||
|
||||
# Remove any existing build folder and recreate
|
||||
rm -rf $QT_ARCH_DIR
|
||||
rm -rf $buildDIR 2>/dev/null
|
||||
mkdir -p $buildDIR
|
||||
|
||||
# Remove any remnants from a previous shadow build
|
||||
rm -f "$QT_SOURCE_DIR/.qmake.cache" 2>/dev/null
|
||||
rm -f "$QT_SOURCE_DIR/src/corelib/global/qconfig.h" 2>/dev/null
|
||||
rm -f "$QT_SOURCE_DIR/src/corelib/global/qconfig.cpp" 2>/dev/null
|
||||
|
||||
cd $buildDIR || exit 1
|
||||
|
||||
# Compile as opensource, accepting LGPL conditions (yes)
|
||||
echo yes | $QT_SOURCE_DIR/configure \
|
||||
-prefix $QT_ARCH_PATH \
|
||||
-opensource \
|
||||
$configOpt \
|
||||
&& time make -j $WM_NCOMPPROCS \
|
||||
&& make install \
|
||||
&& echo "Built: Qt-$qtVERSION" \
|
||||
&& finalizeQt
|
||||
) || {
|
||||
echo "Error building: Qt-$qtVERSION"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
310
makeVTK
Executable file
310
makeVTK
Executable file
@ -0,0 +1,310 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016-2018 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# makeVTK
|
||||
#
|
||||
# Description
|
||||
# Make and install VTK.
|
||||
# The VTK sources should be located under one of these locations:
|
||||
# - $WM_THIRD_PARTY_DIR/VTK-VERSION
|
||||
#
|
||||
# To use the VTK source from the ParaView source tree, simply make an
|
||||
# appropriate link first. For example,
|
||||
#
|
||||
# ln -s ParaView-v5.3.0/VTK VTK-7.1.0
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
. etc/tools/ThirdPartyFunctions
|
||||
. etc/tools/ParaViewFunctions
|
||||
. etc/tools/vtkFunctions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
unset vtk_version mesa_version # Purge current values
|
||||
|
||||
# vtk version from OpenFOAM etc/config.sh file:
|
||||
_foamConfig vtk
|
||||
|
||||
VTK_VERSION="$vtk_version"
|
||||
|
||||
case "$VTK_VERSION" in
|
||||
[Vv]*)
|
||||
VTK_VERSION="${VTK_VERSION##*-}" # Without "VTK-" prefix
|
||||
;;
|
||||
esac
|
||||
VTK_VERSION="${VTK_VERSION%%-*}" # Without suffix (eg, -mesa)
|
||||
|
||||
|
||||
# New rendering backend (starting with vtk 7?).
|
||||
withGL2=auto # auto-config based on version
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [vtk-VERSION] [CMAKE-OPTION]
|
||||
options:
|
||||
-gcc force g++ instead of the value from \$WM_CXX
|
||||
-rebuild for repeated builds (-make -install) *use with caution*
|
||||
-gl2 with new rendering backend (default: auto)
|
||||
-mesa with mesa (if not already enabled)
|
||||
-mesa-prefix DIR location of mesa installation
|
||||
-mesa-include DIR location of mesa headers (current: ${MESA_INCLUDE:-none})
|
||||
-mesa-lib PATH path to mesa library (current: ${MESA_LIBRARY:-none})
|
||||
-osmesa with off-screen mesa only
|
||||
-mpi with mpi
|
||||
-mpi=N with max 'N' mpi processes. N=0 for no upper-limit.
|
||||
-cmake PATH with cmake from the path given
|
||||
-verbose verbose output in Makefiles
|
||||
-version VER specify an alternative version (current: $VTK_VERSION)
|
||||
-buildType NAME specify the build type (default: Release)
|
||||
-suffix NAME specify a suffix to distinguish the build
|
||||
-help
|
||||
|
||||
The -no-FEATURE option can be used to forcibly disable these features:
|
||||
-no-gl2 | -no-mesa | -no-mpi
|
||||
|
||||
CMake options start with a capital letter and contain an '='.
|
||||
For example,
|
||||
${0##*/} BUILD_TESTING=ON
|
||||
to add tests and avoid building documentation
|
||||
|
||||
For finer control, the build stages can be selected or deselected individually:
|
||||
-patch -no-patch
|
||||
-config -no-config
|
||||
-make -no-make
|
||||
-install -no-install
|
||||
|
||||
|
||||
* Make and install VTK-$VTK_VERSION located under
|
||||
\$WM_THIRD_PARTY_DIR/VTK-$VTK_VERSION
|
||||
-> \$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/VTK-$VTK_VERSION$BUILD_SUFFIX
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
exportCompiler # Compiler info for CMake/configure
|
||||
|
||||
# Various building stages
|
||||
unset runPATCH runCONFIG runMAKE runINSTALL
|
||||
runDEFAULT=true
|
||||
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
'') ;; # Ignore empty
|
||||
-h | -help) usage ;;
|
||||
-gcc) useGcc ;;
|
||||
|
||||
[0-9]* | vtk-[0-9]* | VTK-[0-9]*) # VTK version
|
||||
setVtkVersion "${1%%/}"
|
||||
;;
|
||||
[A-Z]*=*) # cmake variables
|
||||
addCMakeVariable "$1"
|
||||
;;
|
||||
-patch) # stage 0: patch sources
|
||||
runPATCH=true
|
||||
unset runDEFAULT
|
||||
;;
|
||||
-no-patch)
|
||||
runPATCH=false
|
||||
;;
|
||||
-config) # stage 1: config only
|
||||
runCONFIG=true
|
||||
unset runDEFAULT
|
||||
;;
|
||||
-no-config)
|
||||
runCONFIG=false
|
||||
;;
|
||||
-make) # stage 2: make only
|
||||
runMAKE=true
|
||||
unset runDEFAULT
|
||||
;;
|
||||
-no-make)
|
||||
runMAKE=false
|
||||
;;
|
||||
-install) # stage 3: install only
|
||||
runINSTALL=true
|
||||
unset runDEFAULT
|
||||
;;
|
||||
-no-install)
|
||||
runINSTALL=false
|
||||
;;
|
||||
-rebuild) # shortcut for rebuilding
|
||||
runMAKE=true
|
||||
runINSTALL=true
|
||||
unset runDEFAULT
|
||||
;;
|
||||
-gl2)
|
||||
withGL2=true
|
||||
;;
|
||||
-no-gl2)
|
||||
withGL2=false
|
||||
;;
|
||||
-mesa)
|
||||
withMESA=true
|
||||
;;
|
||||
-osmesa)
|
||||
withMESA=true
|
||||
withOSMESA=true
|
||||
;;
|
||||
-no-mesa)
|
||||
withMESA=false
|
||||
withOSMESA=false
|
||||
;;
|
||||
-mesa-prefix)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
withMESA=true
|
||||
MESA_INCLUDE="${2%%/}/include"
|
||||
# Could be under (lib64 | lib)
|
||||
MESA_LIBRARY="${2%%/}/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
|
||||
[ -f "$MESA_LIBRARY" ] || MESA_LIBRARY="${2%%/}/lib/libOSMesa.so"
|
||||
shift
|
||||
;;
|
||||
-mesa-include)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
withMESA=true
|
||||
MESA_INCLUDE="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-mesa-lib)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
withMESA=true
|
||||
MESA_LIBRARY="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-mpi)
|
||||
withMPI=true
|
||||
;;
|
||||
-mpi=[0-9]*) # mpi and max mpi processes
|
||||
withMPI=true
|
||||
MPI_MAX_PROCS="${1##*=}"
|
||||
;;
|
||||
-no-mpi)
|
||||
withMPI=false
|
||||
;;
|
||||
-cmake)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
CMAKE_PATH="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-verbose)
|
||||
withVERBOSE=true
|
||||
;;
|
||||
-version)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
setVtkVersion "${2%%/}"
|
||||
VTK_VERSION="${2%%/}"
|
||||
shift
|
||||
;;
|
||||
-buildType)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
BUILD_TYPE="$2"
|
||||
shift
|
||||
;;
|
||||
-suffix)
|
||||
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
|
||||
setBuildSuffix "$2"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
die "unknown option/argument: '$1'"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$VTK_VERSION" ] || die "The vtk-VERSION was not specified"
|
||||
|
||||
# Version-specific adjustments
|
||||
if [ "$withGL2" = auto ]
|
||||
then
|
||||
if [ "${VTK_VERSION%%.*}" -lt 7 ]
|
||||
then
|
||||
withGL2=false
|
||||
else
|
||||
withGL2=true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ "$runDEFAULT" = true ]
|
||||
then
|
||||
: ${runPATCH:=true}
|
||||
: ${runCONFIG:=true}
|
||||
: ${runMAKE:=true}
|
||||
: ${runINSTALL:=true}
|
||||
fi
|
||||
|
||||
|
||||
# Set configure options
|
||||
#~~~~~~~~~~~~~~~~~~~~~~
|
||||
addVerbosity # verbose makefiles
|
||||
addMpiSupport # set MPI-specific options
|
||||
addMesaSupport # set MESA-specific options
|
||||
addGL2Support # new rendering backend
|
||||
|
||||
# Set off-screen options
|
||||
if [ "$withOSMESA" = true ]
|
||||
then
|
||||
addCMakeVariable "VTK_USE_X=OFF"
|
||||
addCMakeVariable "OPENGL_INCLUDE_DIR=$MESA_INCLUDE"
|
||||
addCMakeVariable "OPENGL_gl_LIBRARY=$MESA_LIBRARY"
|
||||
addCMakeVariable "OPENGL_glu_LIBRARY=$MESA_LIBRARY"
|
||||
addCMakeVariable "OPENGL_xmesa_INCLUDE_DIR=$MESA_INCLUDE"
|
||||
fi
|
||||
|
||||
setVtkDirs # where things are or should be put
|
||||
|
||||
|
||||
# Build and install
|
||||
# ~~~~~~~~~~~~~~~~~
|
||||
cat<<SUMMARY
|
||||
|
||||
Build stages selected
|
||||
---------------------
|
||||
-patch ${runPATCH:-false}
|
||||
-config ${runCONFIG:-false}
|
||||
-make ${runMAKE:-false}
|
||||
-install ${runINSTALL:-false}
|
||||
---------------------
|
||||
Features selected
|
||||
mesa ${withMESA:-false}
|
||||
mpi ${withMPI:-false}
|
||||
---------------------
|
||||
Version information
|
||||
vtk ${VTK_VERSION:-unknown}
|
||||
build ${BUILD_TYPE:-unknown}
|
||||
---------------------
|
||||
SUMMARY
|
||||
|
||||
[ "$runPATCH" = true ] && patchVTK
|
||||
[ "$runCONFIG" = true ] && configVTK
|
||||
[ "$runMAKE" = true ] && makeVTK
|
||||
[ "$runINSTALL" = true ] && installVTK
|
||||
|
||||
echo
|
||||
echo Done
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
30
makeVTK.example
Executable file
30
makeVTK.example
Executable file
@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
# An example for building particular combinations of VTK with
|
||||
# - mesa (off-screen only)
|
||||
|
||||
vtk=VTK-9.0.0
|
||||
# mesa=mesa-11.2.2
|
||||
# mesa=mesa-13.0.3
|
||||
mesa=mesa-17.1.1
|
||||
|
||||
# Request building MPI modules
|
||||
# VTK_Group_MPI=ON
|
||||
#
|
||||
# Request building vtkAcceleratorsVTKm
|
||||
# Module_vtkAcceleratorsVTKm=OFF
|
||||
#
|
||||
# Request building vtkParallelMPI
|
||||
# Module_vtkParallelMPI=ON
|
||||
|
||||
set -x
|
||||
./makeVTK \
|
||||
-mpi=0 \
|
||||
-osmesa \
|
||||
-mesa-prefix $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$mesa \
|
||||
$vtk "$@" \
|
||||
VTK_Group_MPI=ON \
|
||||
Module_vtkAcceleratorsVTKm=ON \
|
||||
Module_vtkParallelMPI=ON
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
86
minCmake
Executable file
86
minCmake
Executable file
@ -0,0 +1,86 @@
|
||||
#!/bin/sh
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd.
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# minCmake
|
||||
#
|
||||
# Description
|
||||
# Scour CMakeLists.txt files to report the cmake_minimum required.
|
||||
#
|
||||
# ----------------------------------------------
|
||||
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
|
||||
#------------------------------------------------------------------------------
|
||||
# Run from third-party directory only
|
||||
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
|
||||
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
|
||||
echo " Check your OpenFOAM environment and installation"
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
usage() {
|
||||
exec 1>&2
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [OPTION] [dir1 ... dirN]
|
||||
options:
|
||||
-help
|
||||
|
||||
* Scour specified directories for CMakeLists.txt and their cmake_minimum.
|
||||
* Without any arguments, select all first level directories.
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
# Parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
;;
|
||||
-*)
|
||||
usage "unknown option: '$1'"
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# Nothing specified - use first level of unpacked directories
|
||||
[ "$#" -gt 0 ] || set -- $(find -mindepth 1 -maxdepth 1 -type d)
|
||||
|
||||
for dir
|
||||
do
|
||||
dir="${dir#./}" # Remove leading "./"
|
||||
dir="${dir%/}" # Remove trailing "/"
|
||||
|
||||
min=$(sed -n \
|
||||
-e 's/^.*cmake_minimum.*VERSION *\([0-9.][0-9.]*\).*/\1/p' \
|
||||
"$dir/CMakeLists.txt" \
|
||||
2>/dev/null | head -1)
|
||||
|
||||
if [ -n "$min" ]
|
||||
then
|
||||
# Remove trailing ".0" from version
|
||||
echo "${min%.0}" "${dir#sources/}"
|
||||
fi
|
||||
|
||||
done \
|
||||
| sort -n -k 1 \
|
||||
| xargs printf " %-10s %s\n"
|
||||
# Use 4 leading spaces for easier pasting as Markdown
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user