================================================
= Compilation de PARAVIEW 5.1                  =
= - avec osmesa (sans interface) avec catalyst =
= - avec interface avec catalyst               =
================================================


Necessite cmake > V3.5
Necessite l'installation du package libOSMesa
  => /usr/lib/x86_64-linux-gnu/libOSMesa.so
  => /usr/lib/x86_64-linux-gnu/libOSMesa.so.6
  => /usr/lib/x86_64-linux-gnu/libOSMesa.so.6.5.3
La copie de ces 3 fichiers dans /PRODCOM/NEPTCFD_V2/opt/CS_4.3.0_R8760_NEPTCFD_3.2.0_R3187/Ubuntu14.04_gccgfortran/lib  et dans /PRODCOM/NEPTCFD_V2/opt/CS_4.3.0_R8760_NEPTCFD_3.2.0_R3187/Ubuntu14.04_gccgfortran.dbg/lib  permet l'utilisation de Catalyst dans NEPTUNE_CFD pour tout le monde.

qt4-dev-tools est necessaire pour la compilation de Paraview avec GUI.

NB : Les binaires ParaView disponibles directement sur le site web ParaView
ne permettent pas de generer des scripts python propres. Il faut commenter des lignes (L79-82)
En recompilant ParaView en osmesa et avec gui avec python, mpi et les developpements, tout marche bien


========================================
AVEC OSMesa >=7.9 Ubuntu 16 - Debian 8
========================================
cf doc Code_Saturne; install.pdf : p10 - Paraview or Catalyst
cf doc catalyst.pdf dans doc code_saturne

necessite d'installer sur la machine de compilation la librairie OSMesa.dev 6

PARAVIEW 5.1 VERSION OSMESA (sans interface) ParaView-v5.1.0.tar
============================================
tar -xvf ParaView-v5.1.0.tar
mv ParaView-v5.1.0 ParaView-v5.1.0_src
cd /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_build

module load openmpi/1.10.3/gcc-5.4

cmake -DCMAKE_INSTALL_PREFIX=/PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_osmesa_compile_u16 \
-DPARAVIEW_BUILD_QT_GUI=OFF \
-DPARAVIEW_USE_MPI=ON \
-DPARAVIEW_ENABLE_PYTHON=ON \
-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON \
-DVTK_USE_X=OFF \
-DOPENGL_INCLUDE_DIR=/usr/include \
-DOPENGL_gl_LIBRARY=/usr/lib/x86_64-linux-gnu/libGL.so \
-DOPENGL_glu_LIBRARY=/usr/lib/x86_64-linux-gnu/libGLU.so \
/PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_src/

Attention avec osmesa >=8 (IMFT Ubuntu16 et N7 Debian8) les options sont differentes de celles avec osmesa < 8 comme a l'IMFT sous Ubuntu 14.
Attention warning au configure sur libglu renseigne manuellement mais non utilise : a tester !!!
CMake Warning:
  Manually-specified variables were not used by the project:   OPENGL_glu_LIBRARY
  
make -j 12
make install 

mv * ./Osmesa_u16
mv Osmesa_u16/Osmesa_u14/ .
mv Osmesa_u16/Gui_u14/ .

=> Executable et librairies dans /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_osmesa_compile_u16


PARAVIEW 5.1 VERSION GUI (avec interface) ParaView-v5.1.0.tar
============================================
Il ne faut pas garder les fichers build de la version osmesa sinon pas d'executable paraview...
Dans build, mv * ./osmesa

On utilise cmake pour parametrer la compilation et on ajoute python, mpi et les developpements via ccmake

cd /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_build

module load openmpi/1.10.3/gcc-5.4

cmake -DCMAKE_INSTALL_PREFIX=/PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_standard_compile_u16 /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_src/

- Pour ajuster les options par defaut :
ccmake .
 BUILD_DOCUMENTATION              OFF                                          
 BUILD_EXAMPLES                   OFF                                          
 BUILD_SHARED_LIBS                ON                                           
 BUILD_TESTING                    OFF                                          
 CMAKE_BACKWARDS_COMPATIBILITY    2.4                                          
 CMAKE_BUILD_TYPE                 Debug                                        
 CMAKE_INSTALL_PREFIX             /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_standard_compile_u16
 PARAVIEW_BUILD_QT_GUI            ON                                           
 PARAVIEW_ENABLE_CATALYST         ON                                           
 PARAVIEW_ENABLE_CGNS             OFF                                          
 PARAVIEW_ENABLE_FFMPEG           OFF                                          
 PARAVIEW_ENABLE_PYTHON           ON                                           
 PARAVIEW_ENABLE_XDMF3            OFF                                          
 PARAVIEW_INSTALL_DEVELOPMENT_F   ON                                           
 PARAVIEW_QT_VERSION              4                                            
 PARAVIEW_USE_DAX                 OFF                                          
 PARAVIEW_USE_MPI                 ON
 PARAVIEW_USE_OSPRAY              OFF                                          
 PARAVIEW_USE_PISTON              OFF                                          
 PARAVIEW_USE_VISITBRIDGE         OFF                                          
 VTK_RENDERING_BACKEND            OpenGL                                       
 VTK_SMP_IMPLEMENTATION_TYPE      Sequential   
 => c pour configure
 => c pour configure encore
 => g pour generate and exit
 
make -j 12
make install

=> Executable et librairies dans /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_standard_compile_u16

=> Lancer Paraview : /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_standard_compile_u16/bin/paraview
=> cliquer sur Tools, Manage Plugins...
=> Cliquer sur CatalystScriptGeneratorPlugin et cocher AutoLoad
=> Fermer Paraview
=> Relancer Paraview, le menu coprocessing doit apparaitre



========================================
AVEC OSMesa <7.9 Ubuntu14
========================================

PARAVIEW 5.1 VERSION OSMESA (sans interface) ParaView-v5.1.0.tar
============================================
cf doc Code_Saturne; install.pdf : p10 - Paraview or Catalyst
cf doc catalyst.pdf dans doc code_saturne

tar -xvf ParaView-v5.1.0.tar
mv ParaView-v5.1.0 ParaView-v5.1.0_src
cd /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_build
export PATH=/PRODCOM/Ubuntu14.04/openmpi/1.8.4/gccgfortran/bin/:$PATH
export LD_LIBRARY_PATH=/PRODCOM/Ubuntu14.04/openmpi/1.8.4/gccgfortran/lib/:$LD_LIBRARY_PATH

/PRODCOM/Ubuntu14.04/cmake/3.6.0/bindist_gccgfortran/bin/cmake \
-DCMAKE_INSTALL_PREFIX=/PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_osmesa_compile \
-DPARAVIEW_BUILD_QT_GUI=OFF \
-DPARAVIEW_USE_MPI=ON \
-DPARAVIEW_ENABLE_PYTHON=ON \
-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON \
-DVTK_USE_X=OFF \
-DOPENGL_INCLUDE_DIR=/usr/include \
-DOPENGL_gl_LIBRARY=\"\" \
-DOPENGL_glu_LIBRARY=/usr/lib/x86_64-linux-gnu/libGLU.so \
-DVTK_OPENGL_HAS_OSMESA=ON \
-DOSMESA_INCLUDE_DIR=/usr/include \
-DOSMESA_LIBRARY=/usr/lib/x86_64-linux-gnu/libOSMesa.so \
/PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_src/
ccmake .   => avoir toutes les options

make -j 12
make install 

=> Executable et librairies dans /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_osmesa_compile 


PARAVIEW 5.1 VERSION GUI (avec interface) ParaView-v5.1.0.tar
============================================
Il ne faut pas garder les fichers build de la version osmesa sinon pas d'executable paraview...
Dans build, mv * ./osmesa

On utilise cmake pour parametrer la compilation et on ajoute python, mpi et les developpements via ccmake

cd /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_build
export PATH=/PRODCOM/Ubuntu14.04/openmpi/1.8.4/gccgfortran/bin/:$PATH
export LD_LIBRARY_PATH=/PRODCOM/Ubuntu14.04/openmpi/1.8.4/gccgfortran/lib/:$LD_LIBRARY_PATH

/PRODCOM/Ubuntu14.04/cmake/3.6.0/bindist_gccgfortran/bin/cmake -DCMAKE_INSTALL_PREFIX=/PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_standard_compile /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_src/

- Pour ajuster les options par defaut :
/PRODCOM/Ubuntu14.04/cmake/3.6.0/bindist_gccgfortran/bin/ccmake .
 BUILD_DOCUMENTATION              OFF                                          
 BUILD_EXAMPLES                   OFF                                          
 BUILD_SHARED_LIBS                ON                                           
 BUILD_TESTING                    OFF                                          
 CMAKE_BACKWARDS_COMPATIBILITY    2.4                                          
 CMAKE_BUILD_TYPE                 Debug                                        
 CMAKE_INSTALL_PREFIX             /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_st
 PARAVIEW_BUILD_QT_GUI            ON                                           
 PARAVIEW_ENABLE_CATALYST         ON                                           
 PARAVIEW_ENABLE_CGNS             OFF                                          
 PARAVIEW_ENABLE_FFMPEG           OFF                                          
 PARAVIEW_ENABLE_PYTHON           ON                                           
 PARAVIEW_ENABLE_XDMF3            OFF                                          
 PARAVIEW_INSTALL_DEVELOPMENT_F   ON                                           
 PARAVIEW_QT_VERSION              4                                            
 PARAVIEW_USE_DAX                 OFF                                          
 PARAVIEW_USE_MPI                 ON
 PARAVIEW_USE_OSPRAY              OFF                                          
 PARAVIEW_USE_PISTON              OFF                                          
 PARAVIEW_USE_VISITBRIDGE         OFF                                          
 VTK_RENDERING_BACKEND            OpenGL                                       
 VTK_SMP_IMPLEMENTATION_TYPE      Sequential   
 => c pour configure
 => c pour configure encore
 => g pour generate and exit
 
make -j 12
make install

=> Executable et librairies dans /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_standard_compile

=> Lancer Paraview, cliquer sur Tools, Manage Plugins...
=> Cliquer sur CatalystScriptGeneratorPlugin et cocher AutoLoad
=> Fermer Paraview
=> Relancer Paraview, le menu coprocessing doit apparaitre


Options de compilation non testees mais preconisees pour les machines tres recentes 
========================================
Sur les machine les plus recentes, il est possible de compiler avec :
./configure --prefix=$OPT/Mesa-12.0/$ARCH --disable-xvmc --disable-glx --disable-dri --with-dri-drivers= --with-gallium-drivers=swrast --enable-texture-float --disable-egl --with-egl-platforms= --enable-gallium-osmesa --enable-gallium-llvm=yes --enable-shared --disable-static

cd glu-9.0.0/
export PKG_CONFIG_PATH=$OPT/Mesa-12.0/arch/calibre9/lib/pkgconfig
./configure --prefix=$OPT/Mesa-12.0/arch/calibre9 --enable-osmesa --enable-shared --disable-static
make && make install && make distclean
