Salome HOME
spns #32926: OSCAR prerequisites
[tools/sat_salome.git] / products / compil_scripts / ParaView-5.1-820.sh
1 #!/bin/bash
2
3 echo "##########################################################################"
4 echo "ParaView" $VERSION
5 echo "##########################################################################"
6
7
8
9 PVLIBVERSION=`echo ${VERSION} | awk -F. '{printf("%d.%d",$1,$2)}'`
10 export python_name=python$PYTHON_VERSION
11
12 CMAKE_OPTIONS=""
13
14 ### verbose log
15 CMAKE_OPTIONS+=" -DCMAKE_VERBOSE_MAKEFILE=ON"
16
17 ### common settings
18 CMAKE_OPTIONS+=" -DCMAKE_INSTALL_PREFIX:STRING=${PRODUCT_INSTALL}"
19 CMAKE_OPTIONS+=" -DCMAKE_BUILD_TYPE:STRING=Release"
20 CMAKE_OPTIONS+=" -DBUILD_SHARED_LIBS:BOOL=ON"
21 CMAKE_OPTIONS+=" -DBUILD_TESTING:BOOL=OFF"
22
23
24 ### compiler settings
25 if [[ $BITS == "64" ]]
26 then
27     CMAKE_OPTIONS+=" -DCMAKE_CXX_FLAGS:STRING=-m64"
28     CMAKE_OPTIONS+=" -DCMAKE_C_FLAGS:STRING=-m64"
29 fi
30
31 ### Paraview general settings
32 CMAKE_OPTIONS+=" -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON"
33 CMAKE_OPTIONS+=" -DPARAVIEW_USE_VISITBRIDGE=ON"
34 CMAKE_OPTIONS+=" -DBUILD_TESTING:BOOL=OFF"
35
36 if [ -n "$SAT_HPC" ]
37 then
38     CMAKE_OPTIONS+=" -DPARAVIEW_USE_MPI:BOOL=ON"
39     CMAKE_OPTIONS+=" -DCMAKE_CXX_COMPILER:STRING=${MPI_CXX_COMPILER}"
40     CMAKE_OPTIONS+=" -DCMAKE_C_COMPILER:STRING=${MPI_C_COMPILER}"
41     CMAKE_OPTIONS+=" -DPARAVIEW_ENABLE_CATALYST:BOOL=ON"
42     CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_CoProcessingScriptGenerator:BOOL=ON"
43 else
44     CMAKE_OPTIONS+=" -DPARAVIEW_USE_MPI:BOOL=OFF"
45     CMAKE_OPTIONS+=" -DCMAKE_CXX_COMPILER:STRING=`which g++`"
46     CMAKE_OPTIONS+=" -DCMAKE_C_COMPILER:STRING=`which gcc`"
47     CMAKE_OPTIONS+=" -DPARAVIEW_ENABLE_CATALYST:BOOL=OFF"
48     CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_CoProcessingScriptGenerator:BOOL=OFF"
49 fi
50
51 ### VTK general settings
52 CMAKE_OPTIONS+=" -DVTK_USE_64BIT_IDS:BOOL=OFF"       # issue 1779
53 CMAKE_OPTIONS+=" -DVTK_NO_PYTHON_THREADS:BOOL=OFF"  # Make sure Python is thread-safe in ParaView
54 CMAKE_OPTIONS+=" -DVTK_REPORT_OPENGL_ERRORS:BOOL=OFF"
55 CMAKE_OPTIONS+=" -DVTK_PYTHON_FULL_THREADSAFE=ON"
56 ### OpenGL2 backend for performance improvment
57 # https://blog.kitware.com/new-opengl-rendering-in-vtk/ 
58 #CMAKE_OPTIONS+=" -DVTK_RENDERING_BACKEND=OpenGL2"     
59 ### OpenMP to speed computation of some filters
60 # https://blog.kitware.com/simple-parallel-computing-with-vtksmptools-2/
61 # https://blog.kitware.com/accelerated-filters-in-paraview-5/
62 #CMAKE_OPTIONS+=" -DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP" 
63
64 ### Qt settings
65 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_QT_GUI:BOOL=ON"
66 if [ -n "$QT5_ROOT_DIR" ]
67 then
68     CMAKE_OPTIONS+=" -DPARAVIEW_QT_VERSION=5"
69 fi
70
71 ### Python settings
72 CMAKE_OPTIONS+=" -DPARAVIEW_ENABLE_PYTHON:BOOL=ON"
73 if [ -n "$PYTHONHOME" ] 
74 then
75   # with a native python, do not use these options
76   CMAKE_OPTIONS+=" -DPYTHON_EXECUTABLE:STRING=${PYTHON_ROOT_DIR}/bin/${python_name}"
77   CMAKE_OPTIONS+=" -DPYTHON_INCLUDE_DIR:STRING=${PYTHON_ROOT_DIR}/include/${python_name}"
78   CMAKE_OPTIONS+=" -DPYTHON_LIBRARY:STRING=${PYTHON_ROOT_DIR}/lib/${python_name}/config/lib${python_name}.so"
79 fi
80
81 ### No tcl tk wrap
82 CMAKE_OPTIONS+=" -DVTK_WRAP_TCL:BOOL=OFF"
83 CMAKE_OPTIONS+=" -DVTK_WRAP_JAVA:BOOL=OFF"
84
85 ### HDF5 settings
86 CMAKE_OPTIONS+=" -DVTK_USE_SYSTEM_HDF5:BOOL=ON"
87 CMAKE_OPTIONS+=" -DHDF5_DIR:PATH=${HDF5_ROOT_DIR}/share/cmake/hdf5"
88
89
90 ### VisIt Database bridge settings
91 CMAKE_OPTIONS+=" -DPARAVIEW_USE_VISITBRIDGE=ON"
92
93 ### Boost settings (needed when activating VisIt bridge)
94 CMAKE_OPTIONS+=" -DBOOST_ROOT=${BOOST_ROOT_DIR}"
95
96 ### gl2ps settings
97 CMAKE_OPTIONS+=" -DVTK_USE_SYSTEM_GL2PS:BOOL=ON"
98 if [ -n "$GL2PS_ROOT_DIR" ] 
99 then
100   # with a native gl2ps, do not use these options
101   CMAKE_OPTIONS+=" -DGL2PS_INCLUDE_DIR:STRING=${GL2PS_ROOT_DIR}/include"
102   CMAKE_OPTIONS+=" -DGL2PS_LIBRARY:STRING=${GL2PS_ROOT_DIR}/lib/libgl2ps.so"
103 fi
104
105 ### libxml2 settings
106 CMAKE_OPTIONS+=" -DVTK_USE_SYSTEM_LIBXML2:BOOL=ON"
107 if [ -n "$LIBXML2_ROOT_DIR" ] 
108 then
109   # with a native libxml2, do not use these options
110   CMAKE_OPTIONS+=" -DLIBXML2_INCLUDE_DIR:STRING=${LIBXML2_ROOT_DIR}/include/libxml2"
111   CMAKE_OPTIONS+=" -DLIBXML2_LIBRARIES:STRING=${LIBXML2_ROOT_DIR}/lib/libxml2.so"
112   CMAKE_OPTIONS+=" -DLIBXML2_XMLLINT_EXECUTABLE=${LIBXML2_ROOT_DIR}/bin/xmllint"
113 fi
114
115 ### freetype settings
116 CMAKE_OPTIONS+=" -DVTK_USE_SYSTEM_FREETYPE:BOOL=ON"
117 if [ -n "$FREETYPE_ROOT_DIR" ] 
118 then
119   # with a native freetype, do not use these options
120   CMAKE_OPTIONS+=" -DFREETYPE_INCLUDE_DIRS:STRING=${FREETYPE_ROOT_DIR}/include/freetype2"
121   CMAKE_OPTIONS+=" -DFREETYPE_LIBRARY:STRING=${FREETYPE_ROOT_DIR}/lib/libfreetype.so"
122 fi
123
124 ### Extra options since OCC presta to improve Paraview for Salome
125 CMAKE_OPTIONS+=" -DPARAVIEW_USE_3DGLYPH:BOOL=OFF"
126 CMAKE_OPTIONS+=" -DPARAVIEW_USE_EXTENDED_OPENFILEDIALOG:BOOL=ON"
127 CMAKE_OPTIONS+=" -DPARAVIEW_USE_TIMECONTROL_SLIDER:BOOL=ON"
128
129 ### Extra options (switch off non-used Paraview plug-ins)
130 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_Moments:BOOL=OFF"
131 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_PrismPlugin:BOOL=OFF"
132 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_SLACTools:BOOL=OFF"
133 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_SierraPlotTools:BOOL=OFF"
134 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_PacMan:BOOL=OFF"
135 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_MobileRemoteControl:BOOL=OFF"
136
137 ### Extra options (switch on required Paraview plug-ins)
138 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_EyeDomeLighting:BOOL=ON"
139 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_ForceTime:BOOL=ON"
140 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_H5PartReader:BOOL=ON"
141 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_PointSprite:BOOL=ON"
142 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_SurfaceLIC:BOOL=ON"
143 CMAKE_OPTIONS+=" -DPARAVIEW_ENABLE_MATPLOTLIB:BOOL=ON"
144
145 echo
146 echo "*** cmake" ${CMAKE_OPTIONS}
147 cmake ${CMAKE_OPTIONS} $SOURCE_DIR
148 if [ $? -ne 0 ]
149 then
150     echo "ERROR on cmake"
151     exit 1
152 fi
153
154 MAKE_OPTIONS="VERBOSE=1 "$MAKE_OPTIONS
155 echo
156 echo "*** make" $MAKE_OPTIONS
157 make $MAKE_OPTIONS
158 if [ $? -ne 0 ]
159 then
160     echo "ERROR on make"
161     exit 2
162 fi
163
164 echo
165 echo "*** make install"
166 make install
167 if [ $? -ne 0 ]
168 then
169     echo "ERROR on make install"
170     exit 3
171 fi
172
173 cp -f ./VTK/VTKTargets.cmake $PRODUCT_INSTALL/lib/cmake/paraview-5.1/ && \
174 sed -i "s%\(IMPORTED_LOCATION_RELEASE.*\"\).*/lib/\([^/]\+\"\)%\1${PRODUCT_INSTALL}/lib/paraview-${PVLIBVERSION}/\2%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
175 sed -i "s%\(IMPORTED_LOCATION_RELEASE.*\"\).*/bin/\([^/]\+\"\)%\1${PRODUCT_INSTALL}/bin/\2%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
176 sed -i "s%[^;\"]\+/qt-[0-9\.]\+/lib/\([^;]\+\)%${QTDIR}/lib/\1%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
177 sed -i "s%[^;\"]\+/Python-[0-9\.]\+/lib/\([^;]\+\)%${PYTHON_ROOT_DIR}/lib/\1%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
178 sed -i "s%[^;\"]\+/hdf5-[0-9\.]\+/lib/\([^;]\+\)%${HDF5_ROOT_DIR}/lib/\1%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
179 sed -i "s%[^;\"]\+/gl2ps-[0-9\.]\+/lib/\([^;]\+\)%${GL2PS_ROOT_DIR}/lib/\1%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
180
181 if [ $? -ne 0 ]
182 then
183     echo "ERROR on cp"
184     exit 4
185 fi
186
187 echo
188 echo "########## END"
189