Salome HOME
Version 29oct2015
[tools/pvdeliv.git] / oldies / scripts / build_paraview.sh
1 #!/bin/bash
2
3 software_and_version=$1
4 archive_file=$2
5 no_patches=$3 # set to "no_patches" to build without any patch
6
7 # get the absolute path of the directory containing this script
8 execPath=$(readlink -f $(dirname $0))
9
10 archive=${execPath}/../archives/${archive_file}
11 src_dir=${execPath}/../src/${software_and_version}${no_patches}
12 build_dir=${execPath}/../build/${software_and_version}${no_patches}
13 install_dir=${execPath}/../install/${software_and_version}${no_patches}
14
15 mkdir -p ${build_dir}
16 mkdir -p ${install_dir}
17
18 # source extraction
19 (
20     if [ ! -d "${src_dir}" ]
21     then
22         ${execPath}/extract.sh ${archive} ${src_dir}
23     fi
24     if [ "xx${no_patches}xx" != "xxno_patchesxx" ]
25     then
26         patches_archives=${execPath}/../archives/ParaView-v4.3.1-patches.tgz
27         cd ${execPath}/../archives
28         tar xfz ${patches_archives}
29     fi
30 ) | tee ${build_dir}/pre_configure.log 2>&1
31 status=$?; if [ ${status} -ne 0 ]; then exit ${status}; fi
32
33 # pre-configure: apply patches (see Readme file in patches directory)
34 (
35     if [ "xx${no_patches}xx" != "xxno_patchesxx" ]
36     then
37         patches_dir=${execPath}/../archives/ParaView-v4.3.1-patches
38         cd ${src_dir}
39         patch -p1 < ${patches_dir}/0001-22863-EDF-PARAVIS-Double-SIGSEGV-when-exiting-Salome.patch
40         patch -p1 < ${patches_dir}/0002-Enable-multi-threading-support-for-Python-in-ParaVie.patch
41         patch -p1 < ${patches_dir}/0003-22593-CEA-1175-PARAVIS-segmentation-fault.patch
42         patch -p1 < ${patches_dir}/0004-Fix-problem-with-installation-of-VTKTargets.cmake-fi.patch
43         patch -p1 < ${patches_dir}/0005-22607-EDF-8282-SMESH-Two-identical-tetras-give-diffe.patch
44         patch -p1 < ${patches_dir}/0006-Additional-patch-for-compilation-of-VisitBridge-with.patch
45         patch -p1 < ${patches_dir}/0029-Suppress-this-boring-warning-and-error.patch
46         patch -p1 < ${patches_dir}/0030-22871-EDF-10092-PARAVIS-The-macro-modes-is-not-displ.patch
47         patch -p1 < ${patches_dir}/EDFp02_Bug8663_Magnitude_Coloring.patch
48     fi
49 )
50 status=$?; if [ ${status} -ne 0 ]; then exit ${status}; fi
51
52 # configure
53 # set BUILD_DOCUMENTATION=OFF to avoid Doxygen dependency
54 (
55     cd ${build_dir}
56     . ${execPath}/environment.sh
57     export PYTHON_INSTALL_DIR=${PYTHONHOME}
58     export HDF5_INSTALL_DIR=${HDF5HOME}
59     unset PYTHONHOME
60     cmake -DCMAKE_INSTALL_PREFIX=${install_dir} -DPYTHON_ROOT_DIR="${PYTHON_INSTALL_DIR}" -DHDF5_ROOT_DIR="${HDF5_INSTALL_DIR}" -DPYTHON_EXECUTABLE=${PYTHON_INSTALL_DIR}/bin/python${PYTHON_VERSION} -DPYTHON_INCLUDE_DIR=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION} -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so -DHDF5_LIBRARIES=${HDF5_INSTALL_DIR}/lib -DHDF5_INCLUDE_DIRS=${HDF5_INSTALL_DIR}/include -DHDF5_CXX_COMPILER_EXECUTABLE=${HDF5_INSTALL_DIR}/bin/h5pcc -DHDF5_HL_INCLUDE_DIR=${HDF5_INSTALL_DIR}/include -DHDF5_hdf5_hl_LIBRARY=${HDF5_INSTALL_DIR}/lib/libhdf5_hl.so -DHDF5_hdf5_hl_LIBRARY_RELEASE=${HDF5_INSTALL_DIR}/lib/libhdf5_hl.so -DHDF5_hdf5_hl_LIBRARY_DEBUG=${HDF5_INSTALL_DIR}/lib/libhdf5_hl.so -DHDF5_HL_LIBRARY=${HDF5_INSTALL_DIR}/lib/libhdf5_hl.so -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DPARAVIEW_INSTALL_DEVELOPMENT:BOOL=ON -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON -DVTK_USE_64BIT_IDS:BOOL=OFF -DPARAVIEW_BUILD_QT_GUI:BOOL=ON -DVTK_QT_USE_WEBKIT:BOOL=ON -DQT_TESTING_INSTALL_DEVELOPMENT:BOOL=ON -DPARAVIEW_ENABLE_PYTHON:BOOL=ON -DVTK_USE_SYSTEM_HDF5:BOOL=ON -DVTK_USE_GL2PS:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_Moments:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SierraPlotTools:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SLACTools:BOOL=OFF -DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_NO_PYTHON_THREADS=OFF -DPARAVIEW_ENABLE_CATALYST:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_AnalyzeNIfTIIO:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_ArrowGlyph:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_GMVReader:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_MobileRemoteControl:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_NonOrthogonalSource:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_QuadView:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_PacMan:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_PrismPlugin:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_RGBZView:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SciberQuestToolKit:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_StreamingParticles:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_UncertaintyRendering:BOOL=ON -DPARAVIEW_ENABLE_MATPLOTLIB:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_EyeDomeLighting:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_ForceTime:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_H5PartReader:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_PointSprite:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_SurfaceLIC:BOOL=ON -DCMAKE_BUILD_QT_GUI:BOOL=ON -DVTK_USE_SYSTEM_LIBXML2:BOOL=ON -DVTK_USE_OGGTHEORA_ENCODER:BOOL=ON -DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES:BOOL=OFF -DBUILD_DOCUMENTATION:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DPARAVIEW_GENERATE_PROXY_DOCUMENTATION:BOOL=ON ${src_dir}
61 ) | tee ${build_dir}/configure.log 2>&1
62 status=$?; if [ ${status} -ne 0 ]; then exit ${status}; fi
63
64 # build
65 (
66     cd ${build_dir}
67     . ${execPath}/environment.sh
68     make -j${NB_PROC}
69 ) | tee ${build_dir}/build.log 2>&1
70 status=$?; if [ ${status} -ne 0 ]; then exit ${status}; fi
71
72 # install
73 (
74     cd ${build_dir}
75     . ${execPath}/environment.sh
76     make install
77 ) | tee ${build_dir}/install.log 2>&1
78 status=$?; if [ ${status} -ne 0 ]; then exit ${status}; fi
79
80 # post-install
81
82 # update environment
83 if [ "xx${no_patches}xx" == "xxno_patchesxx" ] # assume environment is only defined when compiling with patches
84 # Introduce PARAVIEW_WITH_PATCHES to switch on/off patches at runtime
85 then
86     echo "" >> ${execPath}/environment.sh
87     echo "#------ ParaView ------" >> ${execPath}/environment.sh
88     echo "export PVHOME=${install_dir}" >> ${execPath}/environment.sh
89     echo "export PATH=\${PVHOME}/bin:\$PATH" >> ${execPath}/environment.sh
90     echo "export PVVERSION=4.4" >> ${execPath}/environment.sh
91     echo "export PV_PLUGIN_PATH=\$(readlink -f \${PVHOME}/lib/paraview-\${PVVERSION}:\${PV_PLUGIN_PATH})" >> ${execPath}/environment.sh
92     echo "export LD_LIBRARY_PATH=\${PVHOME}/lib/paraview-\${PVVERSION}:\$LD_LIBRARY_PATH" >> ${execPath}/environment.sh
93     echo "PYTHONPATH=\${PVHOME}/lib/paraview-\${PVVERSION}:\${PYTHONPATH}" >> ${execPath}/environment.sh
94     echo "PYTHONPATH=\${PVHOME}/lib/paraview-\${PVVERSION}/site-packages:\${PYTHONPATH}" >> ${execPath}/environment.sh
95     echo "PYTHONPATH=\${PVHOME}/lib/paraview-\${PVVERSION}/site-packages/vtk:\${PYTHONPATH}" >> ${execPath}/environment.sh
96     echo "PYTHONPATH=\${PVHOME}/lib/paraview-\${PVVERSION}/site-packages/paraview/vtk:\${PYTHONPATH}" >> ${execPath}/environment.sh
97 fi
98 #