Salome HOME
Merge from BR_PARAVIS_DEV 29Dec09
[modules/paravis.git] / adm_local / unix / config_files / check_ParaView.m4
1 dnl  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 dnl  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3 dnl 
4 dnl  This library is free software; you can redistribute it and/or 
5 dnl  modify it under the terms of the GNU Lesser General Public 
6 dnl  License as published by the Free Software Foundation; either 
7 dnl  version 2.1 of the License. 
8 dnl 
9 dnl  This library is distributed in the hope that it will be useful, 
10 dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 dnl  Lesser General Public License for more details. 
13 dnl 
14 dnl  You should have received a copy of the GNU Lesser General Public 
15 dnl  License along with this library; if not, write to the Free Software 
16 dnl  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17 dnl 
18 dnl  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
19 dnl
20 dnl
21 dnl
22
23 dnl
24 dnl  OPTIONS_PARAVIEW
25 dnl  ------------------------------------------------------------------------
26 dnl  Adds the --with-paraview=path 
27 dnl
28 AC_DEFUN([OPTIONS_PARAVIEW], [
29   AC_ARG_WITH([paraview],
30               [AC_HELP_STRING([--with-paraview], [The prefix where ParaView is located (default "" means taking from PVHOME environment variable)])],
31               [with_paraview=$withval], [with_paraview=""])
32 ])
33
34 dnl
35 dnl  CHECK_PARAVIEW
36 dnl  ------------------------------------------------------------------------
37 dnl  a simplified check that assumes VTK is a part of ParaView, separate location 
38 dnl  for VTK is not supported
39 dnl
40 AC_DEFUN([CHECK_PARAVIEW], [
41 AC_REQUIRE([AC_PROG_CC])dnl
42 AC_REQUIRE([AC_PROG_CXX])dnl
43 AC_REQUIRE([AC_PROG_CPP])dnl
44 AC_REQUIRE([AC_PROG_CXXCPP])dnl
45 AC_REQUIRE([AC_LINKER_OPTIONS])dnl
46
47 AC_REQUIRE([OPTIONS_PARAVIEW])dnl
48
49 AC_CHECKING(for ParaView)
50
51 AC_LANG_SAVE
52 AC_LANG_CPLUSPLUS
53
54 AC_SUBST(PARAVIEW_INCLUDES)
55 AC_SUBST(PARAVIEW_LIBS)
56 dnl AC_SUBST(VTKPY_MODULES)
57
58 PARAVIEW_INCLUDES=""
59 PARAVIEW_LIBS=""
60 dnl VTKPY_MODULES=""
61
62 paraview_ok=no
63
64 if test "x$OpenGL_ok" != "xyes" ; then
65    AC_MSG_WARN(ParaView needs OpenGL correct configuration, check configure output)
66 fi
67
68
69 if test "x$qt_ok" != "xyes" ; then
70    AC_MSG_WARN(ParaView needs Qt correct configuration, check configure output)
71 fi
72
73 if test "x$hdf5_ok" != "xyes" ; then
74    AC_MSG_WARN(ParaView needs correct HDF5 configuration, check configure output)
75 fi
76
77 AC_PATH_X
78 if test "x$x_libraries" != "x"
79 then
80    LXLIB="-L$x_libraries"
81 else
82    LXLIB=""
83 fi
84
85 if test "x$x_libraries" = "x/usr/lib"
86 then
87    LXLIB=""
88 fi
89
90 if test "x$x_libraries" = "x/usr/lib${LIB_LOCATION_SUFFIX}"
91 then
92    LXLIB=""
93 fi
94
95 LOCAL_INCLUDES="$OGL_INCLUDES"
96 LOCAL_LIBS="-lvtksys -lvtkzlib -lvtkpng -lvtkjpeg -lvtktiff -lvtkexpat -lvtksqlite -lvtkmetaio -lvtkverdict -lvtkNetCDF -lvtkDICOMParser -lvtkfreetype -lvtkftgl -lvtkexoIIc -lvtklibxml2 -lvtkCommon -lvtkGraphics -lvtkImaging -lvtkFiltering -lvtkIO -lvtkRendering -lvtkHybrid -lvtkParallel -lvtkWidgets -lvtkClientServer -lvtkCommonCS -lvtkFilteringCS -lvtkIOCS -lvtkImagingCS -lvtkGraphicsCS -lvtkGenericFiltering -lvtkGenericFilteringCS -lvtkRenderingCS -lvtkHybridCS -lvtkParallelCS -lvtkPVCommandOptions -lKWCommon -lvtkInfovis -lvtkInfovisCS -lvtkPVServerCommon -lvtkPVServerCommonCS -lvtkCommonPythonD -lvtkFilteringPythonD -lvtkIOPythonD -lXdmf -lvtkXdmf -lvtkXdmfCS -lvtkWidgetsCS -lvtkVolumeRendering -lvtkVolumeRenderingCS -lvtkPVFilters -lvtkPVFiltersCS -lvtkViews -lvtkPVServerManagerPythonD -lvtkPVServerCommonPythonD -lvtkPVPythonInterpretor -lvtkPVServerManager -lQVTK -lpqWidgets -lQtTesting -lvtkQtChart -lpqCore -lQtPython -lpqComponents -lvtkPVPython -lvtkalglib $LXLIB -lX11 -lXt"
97
98 dnl VTK install dir
99 if test -z $with_paraview ; then
100   with_paraview=""
101 fi
102 if test "x$with_paraview" = "xyes" ; then
103   dnl in case user wrote --with-paraview=yes
104   with_paraview=""
105 fi
106 if test "x$with_paraview" = "xno" ; then
107   dnl in case user wrote --with-paraview=no
108   with_paraview=""
109   AC_MSG_WARN(Value "no", specified for option --with-paraview, is not supported)
110 fi
111
112 if test "x$with_paraview" != "x" ; then
113   PVHOME="$with_paraview"
114 fi
115
116   if test -z $PVHOME ; then
117     AC_MSG_WARN(undefined PVHOME and PVSRCHOME variables which specify where ParaView is located)
118   fi  
119   
120 LOCAL_INCLUDES="-I$PVHOME/include/paraview-$PVVERSION $LOCAL_INCLUDES"
121
122 LOCAL_LIBS="-L$PVHOME/lib/paraview-$PVVERSION $LOCAL_LIBS"
123
124 dnl vtk headers
125 CPPFLAGS_old="$CPPFLAGS"
126 CPPFLAGS="$CPPFLAGS $LOCAL_INCLUDES $QT_INCLUDES"
127
128 AC_CHECK_HEADER(pqApplicationCore.h,paraview_ok="yes",paraview_ok="no")
129
130 CPPFLAGS="$CPPFLAGS_old"
131
132 if test "x$paraview_ok" = "xyes"
133 then
134    PARAVIEW_INCLUDES="$LOCAL_INCLUDES"
135
136    dnl vtk libraries
137
138    AC_MSG_CHECKING(linking ParaView component library)
139
140    LIBS_old="$LIBS"
141    LIBS="$LIBS $QT_LIBS $LOCAL_LIBS"
142    CPPFLAGS_old="$CPPFLAGS"
143    CPPFLAGS="$CPPFLAGS $QT_INCLUDES $PARAVIEW_INCLUDES"
144
145    dnl VTKPY_MODULES="$VTKHOME/python"
146
147    AC_CACHE_VAL(salome_cv_lib_paraview,[
148      AC_TRY_LINK([#include "pqApplicationCore.h"
149                  ],
150                  [pqApplicationCore::instance()],
151                  [salome_cv_lib_paraview=yes],
152                  [salome_cv_lib_paraview=no])
153    ])
154    paraview_ok="$salome_cv_lib_paraview"
155    LIBS="$LIBS_old"
156    CPPFLAGS="$CPPFLAGS_old"
157 fi
158
159 if  test "x$paraview_ok" = "xno"
160 then
161   AC_MSG_RESULT(no)
162   AC_MSG_WARN(unable to link with ParaView component library)
163 else
164   AC_MSG_RESULT(yes)
165   PARAVIEW_LIBS="$LOCAL_LIBS"
166 fi
167
168 AC_MSG_RESULT(for ParaView: $paraview_ok)
169
170 AC_LANG_RESTORE
171
172 # Save cache
173 AC_CACHE_SAVE
174
175 ])dnl