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