Salome HOME
spns #32377: switch off CGNS support for GMSH until issue fixed
[tools/sat_salome.git] / products / compil_scripts / ParaView-5.1-820-offscreen_rendering.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 else
42     CMAKE_OPTIONS+=" -DPARAVIEW_USE_MPI:BOOL=OFF"
43     CMAKE_OPTIONS+=" -DCMAKE_CXX_COMPILER:STRING=`which g++`"
44     CMAKE_OPTIONS+=" -DCMAKE_C_COMPILER:STRING=`which gcc`"
45 fi
46
47 ### VTK general settings
48 CMAKE_OPTIONS+=" -DVTK_USE_64BIT_IDS:BOOL=OFF"       # issue 1779
49 CMAKE_OPTIONS+=" -DVTK_NO_PYTHON_THREADS:BOOL=OFF"  # Make sure Python is thread-safe in ParaView
50 CMAKE_OPTIONS+=" -DVTK_REPORT_OPENGL_ERRORS:BOOL=OFF"
51 CMAKE_OPTIONS+=" -DVTK_PYTHON_FULL_THREADSAFE=ON"
52 ### OpenGL2 backend for performance improvment
53 # https://blog.kitware.com/new-opengl-rendering-in-vtk/ 
54 #CMAKE_OPTIONS+=" -DVTK_RENDERING_BACKEND=OpenGL2"     
55 ### OpenMP to speed computation of some filters
56 # https://blog.kitware.com/simple-parallel-computing-with-vtksmptools-2/
57 # https://blog.kitware.com/accelerated-filters-in-paraview-5/
58 #CMAKE_OPTIONS+=" -DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP" 
59
60 ### Qt settings
61 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_QT_GUI:BOOL=ON"
62
63 ### Python settings
64 CMAKE_OPTIONS+=" -DPARAVIEW_ENABLE_PYTHON:BOOL=ON"
65 if [ -n "$PYTHONHOME" ] 
66 then
67   # with a native python, do not use these options
68   CMAKE_OPTIONS+=" -DPYTHON_EXECUTABLE:STRING=${PYTHON_ROOT_DIR}/bin/${python_name}"
69   CMAKE_OPTIONS+=" -DPYTHON_INCLUDE_DIR:STRING=${PYTHON_ROOT_DIR}/include/${python_name}"
70   CMAKE_OPTIONS+=" -DPYTHON_LIBRARY:STRING=${PYTHON_ROOT_DIR}/lib/${python_name}/config/lib${python_name}.so"
71 fi
72
73 ### No tcl tk wrap
74 CMAKE_OPTIONS+=" -DVTK_WRAP_TCL:BOOL=OFF"
75 CMAKE_OPTIONS+=" -DVTK_WRAP_JAVA:BOOL=OFF"
76
77 ### HDF5 settings
78 CMAKE_OPTIONS+=" -DVTK_USE_SYSTEM_HDF5:BOOL=ON"
79 CMAKE_OPTIONS+=" -DHDF5_DIR:PATH=${HDF5_ROOT_DIR}/share/cmake/hdf5"
80
81
82 ### VisIt Database bridge settings
83 CMAKE_OPTIONS+=" -DPARAVIEW_USE_VISITBRIDGE=ON"
84
85 ### Boost settings (needed when activating VisIt bridge)
86 CMAKE_OPTIONS+=" -DBOOST_ROOT=${BOOST_ROOT_DIR}"
87
88 ### gl2ps settings
89 CMAKE_OPTIONS+=" -DVTK_USE_SYSTEM_GL2PS:BOOL=ON"
90 if [ -n "$GL2PS_ROOT_DIR" ] 
91 then
92   # with a native gl2ps, do not use these options
93   CMAKE_OPTIONS+=" -DGL2PS_INCLUDE_DIR:STRING=${GL2PS_ROOT_DIR}/include"
94   CMAKE_OPTIONS+=" -DGL2PS_LIBRARY:STRING=${GL2PS_ROOT_DIR}/lib/libgl2ps.so"
95 fi
96
97 ### libxml2 settings
98 CMAKE_OPTIONS+=" -DVTK_USE_SYSTEM_LIBXML2:BOOL=ON"
99 if [ -n "$LIBXML2_ROOT_DIR" ] 
100 then
101   # with a native libxml2, do not use these options
102   CMAKE_OPTIONS+=" -DLIBXML2_INCLUDE_DIR:STRING=${LIBXML2_ROOT_DIR}/include/libxml2"
103   CMAKE_OPTIONS+=" -DLIBXML2_LIBRARIES:STRING=${LIBXML2_ROOT_DIR}/lib/libxml2.so"
104   CMAKE_OPTIONS+=" -DLIBXML2_XMLLINT_EXECUTABLE=${LIBXML2_ROOT_DIR}/bin/xmllint"
105 fi
106
107 ### freetype settings
108 CMAKE_OPTIONS+=" -DVTK_USE_SYSTEM_FREETYPE:BOOL=ON"
109 if [ -n "$FREETYPE_ROOT_DIR" ] 
110 then
111   # with a native freetype, do not use these options
112   CMAKE_OPTIONS+=" -DFREETYPE_INCLUDE_DIRS:STRING=${FREETYPE_ROOT_DIR}/include/freetype2"
113   CMAKE_OPTIONS+=" -DFREETYPE_LIBRARY:STRING=${FREETYPE_ROOT_DIR}/lib/libfreetype.so"
114 fi
115
116 ### Extra options since OCC presta to improve Paraview for Salome
117 CMAKE_OPTIONS+=" -DPARAVIEW_USE_3DGLYPH:BOOL=OFF"
118 CMAKE_OPTIONS+=" -DPARAVIEW_USE_EXTENDED_OPENFILEDIALOG:BOOL=ON"
119 CMAKE_OPTIONS+=" -DPARAVIEW_USE_TIMECONTROL_SLIDER:BOOL=ON"
120
121 ### Extra options (switch off non-used Paraview plug-ins)
122 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_Moments:BOOL=OFF"
123 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_PrismPlugin:BOOL=OFF"
124 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_SLACTools:BOOL=OFF"
125 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_SierraPlotTools:BOOL=OFF"
126 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_PacMan:BOOL=OFF"
127 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_MobileRemoteControl:BOOL=OFF"
128
129 ### Extra options (switch on required Paraview plug-ins)
130 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_EyeDomeLighting:BOOL=ON"
131 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_ForceTime:BOOL=ON"
132 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_H5PartReader:BOOL=ON"
133 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_PointSprite:BOOL=ON"
134 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_SurfaceLIC:BOOL=ON"
135 CMAKE_OPTIONS+=" -DPARAVIEW_ENABLE_CATALYST:BOOL=OFF"
136 CMAKE_OPTIONS+=" -DPARAVIEW_BUILD_PLUGIN_CoProcessingScriptGenerator:BOOL=OFF"
137 CMAKE_OPTIONS+=" -DPARAVIEW_ENABLE_MATPLOTLIB:BOOL=ON"
138
139 # Offscreen-rendering
140 CMAKE_OPTIONS+="   -DVTK_USE_X=OFF"
141 CMAKE_OPTIONS+="   -DOPENGL_INCLUDE_DIR=IGNORE" #wiki paraview #${MESA_ROOT_DIR}/include"
142 CMAKE_OPTIONS+="   -DOPENGL_xmesa_INCLUDE_DIR=IGNORE" #wiki paraview
143 CMAKE_OPTIONS+="   -DOPENGL_gl_LIBRARY=IGNORE" #wiki paraview #${MESA_ROOT_DIR}/lib/libOSMesa.so
144 #CMAKE_OPTIONS+="   -DOPENGL_glu_LIBRARY=${GLU_ROOT_DIR}/lib/libGLU.so" #devrait etre -DOPENGL_glu_LIBRARY=${MESA_ROOT_DIR}/lib/libGLU.so mais libGLU.so est manquant dans l'install de mesa
145 CMAKE_OPTIONS+="   -DVTK_OPENGL_HAS_OSMESA=ON"
146 CMAKE_OPTIONS+="   -DVTK_USE_OFFSCREEN=OFF" #wiki paraview
147 CMAKE_OPTIONS+="   -DOSMESA_INCLUDE_DIR=${MESA_ROOT_DIR}/include"
148 CMAKE_OPTIONS+="   -DOSMESA_LIBRARY=${MESA_ROOT_DIR}/lib/libOSMesa.so"
149
150 echo
151 echo "*** cmake" ${CMAKE_OPTIONS}
152 cmake ${CMAKE_OPTIONS} $SOURCE_DIR
153 if [ $? -ne 0 ]
154 then
155     echo "ERROR on cmake"
156     exit 1
157 fi
158
159 MAKE_OPTIONS="VERBOSE=1 "$MAKE_OPTIONS
160 echo
161 echo "*** make" $MAKE_OPTIONS
162 make $MAKE_OPTIONS
163 if [ $? -ne 0 ]
164 then
165     echo "ERROR on make"
166     exit 2
167 fi
168
169 echo
170 echo "*** make install"
171 make install
172 if [ $? -ne 0 ]
173 then
174     echo "ERROR on make install"
175     exit 3
176 fi
177
178 cp -f ./VTK/VTKTargets.cmake $PRODUCT_INSTALL/lib/cmake/paraview-5.1/ && \
179 sed -i "s%\(IMPORTED_LOCATION_RELEASE.*\"\).*/lib/\([^/]\+\"\)%\1${PRODUCT_INSTALL}/lib/paraview-${PVLIBVERSION}/\2%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
180 sed -i "s%\(IMPORTED_LOCATION_RELEASE.*\"\).*/bin/\([^/]\+\"\)%\1${PRODUCT_INSTALL}/bin/\2%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
181 sed -i "s%[^;\"]\+/qt-[0-9\.]\+/lib/\([^;]\+\)%${QTDIR}/lib/\1%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
182 sed -i "s%[^;\"]\+/Python-[0-9\.]\+/lib/\([^;]\+\)%${PYTHON_ROOT_DIR}/lib/\1%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
183 sed -i "s%[^;\"]\+/hdf5-[0-9\.]\+/lib/\([^;]\+\)%${HDF5_ROOT_DIR}/lib/\1%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
184 sed -i "s%[^;\"]\+/gl2ps-[0-9\.]\+/lib/\([^;]\+\)%${GL2PS_ROOT_DIR}/lib/\1%g" ${PRODUCT_INSTALL}/lib/cmake/paraview-${PVLIBVERSION}/VTKTargets.cmake && \
185
186 if [ $? -ne 0 ]
187 then
188     echo "ERROR on cp"
189     exit 4
190 fi
191
192 echo
193 echo "########## END"
194