Salome HOME
TTK: on DB10, switch off CPU optimization as requested by A.Geay
[tools/sat_salome.git] / products / compil_scripts / ParaView-5.4-b5c4c89.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 #TA 09/01/18 Modification due to latest version of ParaView-b5c4c893
55 #CMAKE_OPTIONS+=" -DVTK_INSTALL_LIBRARY_DIR="lib/paraview-5.4""
56 #CMAKE_OPTIONS+=" -DVTK_PYTHON_SITE_PACKAGES_SUFFIX="site-packages""
57
58 CMAKE_OPTIONS+=" -DVTK_REPORT_OPENGL_ERRORS:BOOL=OFF"
59 CMAKE_OPTIONS+=" -DVTK_PYTHON_FULL_THREADSAFE=ON"
60
61 ### OpenGL2 backend for performance improvment
62 # https://blog.kitware.com/new-opengl-rendering-in-vtk/ 
63 # OpenGl2 mandatory in this version of paraview
64 CMAKE_OPTIONS+=" -DVTK_RENDERING_BACKEND:STRING=OpenGL2"
65 ### OpenMP to speed computation of some filters
66 # https://blog.kitware.com/simple-parallel-computing-with-vtksmptools-2/
67 # https://blog.kitware.com/accelerated-filters-in-paraview-5/
68 #CMAKE_OPTIONS+=" -DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP" 
69
70 ### Qt settings
71 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_QT_GUI:BOOL=ON"
72 if [ -n "$QT5_ROOT_DIR" ]
73 then
74     CMAKE_OPTIONS+=" -DPARAVIEW_QT_VERSION=5"
75 fi
76
77 ### Python settings
78 CMAKE_OPTIONS+=" -DPARAVIEW_ENABLE_PYTHON:BOOL=ON"
79 if [ -n "$PYTHONHOME" ] 
80 then
81   # with a native python, do not use these options
82   CMAKE_OPTIONS+=" -DPYTHON_EXECUTABLE:STRING=${PYTHON_ROOT_DIR}/bin/${python_name}"
83   CMAKE_OPTIONS+=" -DPYTHON_INCLUDE_DIR:STRING=${PYTHON_ROOT_DIR}/include/${python_name}"
84   if [ ${PYTHON_VERSION%%.*} == 3 ]
85   then
86     CMAKE_OPTIONS+=" -DPYTHON_LIBRARY:STRING=${PYTHON_ROOT_DIR}/lib/${python_name}/config-${PYTHON_VERSION}/lib${python_name}.so"
87   else
88     CMAKE_OPTIONS+=" -DPYTHON_LIBRARY:STRING=${PYTHON_ROOT_DIR}/lib/${python_name}/config/lib${python_name}.so"
89   fi
90 fi
91
92 ### No tcl tk wrap
93 CMAKE_OPTIONS+=" -DVTK_WRAP_TCL:BOOL=OFF"
94 CMAKE_OPTIONS+=" -DVTK_WRAP_JAVA:BOOL=OFF"
95
96 ### HDF5 settings
97 CMAKE_OPTIONS+=" -DVTK_USE_SYSTEM_HDF5:BOOL=ON"
98 CMAKE_OPTIONS+=" -DHDF5_DIR:PATH=${HDF5_ROOT_DIR}/share/cmake/hdf5"
99
100 ### VisIt Database bridge settings
101 if [ $DIST == "FD26" ]
102 then
103     echo  we are on fedora 26, we don t compile VISITBRIDGE
104     CMAKE_OPTIONS+=" -DPARAVIEW_USE_VISITBRIDGE=OFF"
105 else
106     CMAKE_OPTIONS+=" -DPARAVIEW_USE_VISITBRIDGE=ON"
107     ### Boost settings (needed when activating VisIt bridge)
108     CMAKE_OPTIONS+=" -DBOOST_ROOT=${BOOST_ROOT_DIR}"
109 fi
110
111 ### gl2ps settings
112 # VTK and system gl2ps conflict resolution
113 CMAKE_OPTIONS+=" -DVTK_USE_SYSTEM_GL2PS:BOOL=OFF"
114 CMAKE_OPTIONS+=" -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON"
115 if [ -n "$GL2PS_ROOT_DIR" ] 
116 then
117   # with a native gl2ps, do not use these options
118   CMAKE_OPTIONS+=" -DGL2PS_INCLUDE_DIR:STRING=${GL2PS_ROOT_DIR}/include"
119   CMAKE_OPTIONS+=" -DGL2PS_LIBRARY:STRING=${GL2PS_ROOT_DIR}/lib/libgl2ps.so"
120 fi
121
122 ### libxml2 settings
123 CMAKE_OPTIONS+=" -DVTK_USE_SYSTEM_LIBXML2:BOOL=ON"
124 if [ -n "$LIBXML2_ROOT_DIR" ] 
125 then
126   # with a native libxml2, do not use these options
127   CMAKE_OPTIONS+=" -DLIBXML2_INCLUDE_DIR:STRING=${LIBXML2_ROOT_DIR}/include/libxml2"
128   CMAKE_OPTIONS+=" -DLIBXML2_LIBRARIES:STRING=${LIBXML2_ROOT_DIR}/lib/libxml2.so"
129   CMAKE_OPTIONS+=" -DLIBXML2_XMLLINT_EXECUTABLE=${LIBXML2_ROOT_DIR}/bin/xmllint"
130 fi
131
132 ### freetype settings
133 CMAKE_OPTIONS+=" -DVTK_USE_SYSTEM_FREETYPE:BOOL=ON"
134 if [ -n "$FREETYPE_ROOT_DIR" ] 
135 then
136   # with a native freetype, do not use these options
137   CMAKE_OPTIONS+=" -DFREETYPE_INCLUDE_DIRS:STRING=${FREETYPE_ROOT_DIR}/include/freetype2"
138   CMAKE_OPTIONS+=" -DFREETYPE_LIBRARY:STRING=${FREETYPE_ROOT_DIR}/lib/libfreetype.so"
139 fi
140
141 ### Extra options since OCC presta to improve Paraview for Salome
142 CMAKE_OPTIONS+=" -DPARAVIEW_USE_3DGLYPH:BOOL=OFF"
143 CMAKE_OPTIONS+=" -DPARAVIEW_USE_EXTENDED_OPENFILEDIALOG:BOOL=ON"
144 CMAKE_OPTIONS+=" -DPARAVIEW_USE_TIMECONTROL_SLIDER:BOOL=ON"
145
146 ### Extra options (switch off non-used Paraview plug-ins)
147 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_Moments:BOOL=OFF"
148 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_PrismPlugin:BOOL=OFF"
149 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_SLACTools:BOOL=OFF"
150 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_SierraPlotTools:BOOL=OFF"
151 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_PacMan:BOOL=OFF"
152 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_MobileRemoteControl:BOOL=OFF"
153
154 #CMAKE_OPTIONS+=" -DPARAVIEW_ENABLE_WEB=OFF"
155
156 ### Extra options (switch on required Paraview plug-ins)
157 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_EyeDomeLighting:BOOL=ON"
158 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_ForceTime:BOOL=ON"
159 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_H5PartReader:BOOL=ON"
160 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_PointSprite:BOOL=ON"
161 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_SurfaceLIC:BOOL=ON"
162 CMAKE_OPTIONS+=" -DPARAVIEW_ENABLE_MATPLOTLIB:BOOL=ON"
163
164 echo
165 echo "*** cmake" ${CMAKE_OPTIONS}
166 cmake ${CMAKE_OPTIONS} $SOURCE_DIR
167 if [ $? -ne 0 ]
168 then
169     echo "ERROR on cmake"
170     exit 1
171 fi
172
173 MAKE_OPTIONS="VERBOSE=1 "$MAKE_OPTIONS
174 echo
175 echo "*** make" $MAKE_OPTIONS
176 make $MAKE_OPTIONS
177 if [ $? -ne 0 ]
178 then
179     echo "ERROR on make"
180     exit 2
181 fi
182 if [ ${PYTHON_VERSION%%.*} == 3 ]
183 then
184     BUILD_DIR=`pwd`
185     cp ${BUILD_DIR}/lib/site-packages/__pycache__/six.cpython-35.opt-1.pyc ${BUILD_DIR}/lib/site-packages/six.pyo
186     cp ${BUILD_DIR}/lib/site-packages/__pycache__/six.cpython-35.pyc ${BUILD_DIR}/lib/site-packages/six.pyc
187 fi
188 echo
189 echo "*** make install"
190 make install
191 if [ $? -ne 0 ]
192 then
193     echo "ERROR on make install"
194     exit 3
195 fi
196
197 cp -f ./VTK/VTKTargets.cmake $PRODUCT_INSTALL/lib/cmake/paraview-${PVLIBVERSION}/ && \
198 sed -i "s%\(IMPORTED_LOCATION_RELEASE.*\"\).*/lib/\([^/]\+\"\)%\1${PRODUCT_INSTALL}/lib/paraview-${PVLIBVERSION}/\2%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
199 sed -i "s%\(IMPORTED_LOCATION_RELEASE.*\"\).*/bin/\([^/]\+\"\)%\1${PRODUCT_INSTALL}/bin/\2%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
200 sed -i "s%[^;\"]\+/qt-[0-9\.]\+/lib/\([^;]\+\)%${QTDIR}/lib/\1%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
201 sed -i "s%[^;\"]\+/Python-[0-9\.]\+/lib/\([^;]\+\)%${PYTHON_ROOT_DIR}/lib/\1%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
202 sed -i "s%[^;\"]\+/hdf5-[0-9\.]\+/lib/\([^;]\+\)%${HDF5_ROOT_DIR}/lib/\1%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
203 sed -i "s%[^;\"]\+/gl2ps-[0-9\.]\+/lib/\([^;]\+\)%${GL2PS_ROOT_DIR}/lib/\1%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
204 mv ${PRODUCT_INSTALL}/lib/libvtkm_cont-pv5.4.so* ${PRODUCT_INSTALL}/lib/paraview-${PVLIBVERSION}/
205
206
207 if [ $? -ne 0 ]
208 then
209     echo "ERROR on cp"
210     exit 4
211 fi
212
213 echo
214 echo "########## END"
215