Salome HOME
Join modifications from BR_Dev_For_4_0 tag V4_1_1.
[modules/gui.git] / adm_local / unix / config_files / check_qt.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 AC_DEFUN([CHECK_QT],[
24 AC_REQUIRE([AC_PROG_CC])dnl
25 AC_REQUIRE([AC_PROG_CXX])dnl
26 AC_REQUIRE([AC_PROG_CPP])dnl
27 AC_REQUIRE([AC_PROG_CXXCPP])dnl
28 AC_REQUIRE([CHECK_OPENGL])dnl
29 AC_REQUIRE([AC_LINKER_OPTIONS])dnl
30
31 AC_CHECKING(for Qt)
32
33 if test "x$OpenGL_ok" != "xyes" ; then
34    AC_MSG_WARN(Qt needs OpenGL correct configuration, check configure output)
35 fi
36
37 qt_ok=yes
38
39 AC_LANG_SAVE
40 AC_LANG_CPLUSPLUS
41
42 if test "x$QTDIR" = "x"
43 then
44    AC_MSG_RESULT(please define QTDIR variable)
45    qt_ok=no
46 else
47    AC_MSG_RESULT(QTDIR is $QTDIR)
48    qt_inc_ok=no
49    QTINC=""
50    AC_CHECK_FILE(${QTDIR}/include/qt3/qglobal.h,QTINC="/qt3",QTINC="")
51    QT_VERSION=`grep "QT_VERSION_STR" ${QTDIR}/include${QTINC}/qglobal.h | sed -e 's%^#define QT_VERSION_STR\([[:space:]]*\)%%g' -e 's%\"%%g'`
52    AC_MSG_RESULT(Qt version is $QT_VERSION)
53 fi
54
55 if  test "x$qt_ok" = "xyes"
56 then
57   if test -f ${QTDIR}/bin/moc
58   then
59     MOC=${QTDIR}/bin/moc
60   else
61     AC_PATH_PROG(MOC, moc)
62   fi
63   if test "x$MOC" = "x"
64   then
65     qt_ok=no
66     AC_MSG_RESULT(moc qt-compiler not in PATH variable)
67   else
68     qt_ok=yes
69     AC_MSG_RESULT(moc found)
70   fi
71 fi
72
73 if  test "x$qt_ok" = "xyes"
74 then
75   if test -f ${QTDIR}/bin/uic
76   then
77     UIC=${QTDIR}/bin/uic
78   else
79     AC_PATH_PROG(UIC, uic)
80   fi
81   if test "x$UIC" = "x"
82   then
83     qt_ok=no
84     AC_MSG_RESULT(uic qt-interface compiler not in PATH variable)
85   else
86     qt_ok=yes
87     AC_MSG_RESULT(uic found)
88   fi
89 fi
90
91 AC_SUBST(QTDIR)
92 QT_ROOT=$QTDIR
93
94 if  test "x$qt_ok" = "xyes"
95 then
96   CPPFLAGS_old=$CPPFLAGS
97   CPPFLAGS="$CPPFLAGS -I$QTDIR/include${QTINC}"
98
99   AC_LANG_CPLUSPLUS
100   AC_CHECK_HEADER(qaction.h,qt_ok=yes ,qt_ok=no)
101
102   CPPFLAGS=$CPPFLAGS_old
103
104   AC_MSG_CHECKING(include of qt headers)
105
106   if  test "x$qt_ok" = "xno"
107   then
108     AC_MSG_RESULT(qt headers not found, or too old qt version, in $QTDIR/include)
109     AC_MSG_RESULT(QTDIR environment variable may be wrong)
110   else
111     AC_MSG_RESULT(yes)
112     QT_INCLUDES="-I${QT_ROOT}/include${QTINC} -DQT_THREAD_SUPPORT -DQT_CLEAN_NAMESPACE"
113     QT_MT_INCLUDES="-I${QT_ROOT}/include${QTINC} -DQT_THREAD_SUPPORT -DQT_CLEAN_NAMESPACE"
114   fi
115 fi
116
117 if  test "x$qt_ok" = "xyes"
118 then
119   AC_MSG_CHECKING(linking qt library)
120   LIBS_old=$LIBS
121   if test "x$QTDIR" = "x/usr"
122   then
123     LIBS="$LIBS -lqt-mt $OGL_LIBS"
124   else
125     LIBS="$LIBS -L$QTDIR/lib${LIB_LOCATION_SUFFIX} -lqt-mt $OGL_LIBS"
126   fi
127
128   CXXFLAGS_old=$CXXFLAGS
129   CXXFLAGS="$CXXFLAGS $QT_INCLUDES"
130
131   AC_CACHE_VAL(salome_cv_lib_qt,[
132     AC_TRY_LINK(
133 #include <qapplication.h>
134 ,   int n;
135     char **s;
136     QApplication a(n, s);
137     a.exec();,
138     eval "salome_cv_lib_qt=yes",eval "salome_cv_lib_qt=no")
139   ])
140   qt_ok="$salome_cv_lib_qt"
141
142   if  test "x$qt_ok" = "xno"
143   then
144     AC_MSG_RESULT(unable to link with qt library)
145     AC_MSG_RESULT(QTDIR environment variable may be wrong)
146   else
147     AC_MSG_RESULT(yes)
148     if test "x$QTDIR" = "x/usr"
149     then
150          QT_LIBS=" -lqt-mt"
151       QT_MT_LIBS=" -lqt-mt"
152     else
153          QT_LIBS="-L$QTDIR/lib${LIB_LOCATION_SUFFIX} -lqt-mt"
154       QT_MT_LIBS="-L$QTDIR/lib${LIB_LOCATION_SUFFIX} -lqt-mt"
155     fi
156   fi
157
158   LIBS=$LIBS_old
159   CXXFLAGS=$CXXFLAGS_old
160
161 fi
162
163 AC_SUBST(MOC)
164 AC_SUBST(UIC)
165
166 AC_SUBST(QT_ROOT)
167 AC_SUBST(QT_INCLUDES)
168 AC_SUBST(QT_MT_INCLUDES)
169 AC_SUBST(QT_LIBS)
170 AC_SUBST(QT_MT_LIBS)
171 AC_SUBST(QT_VERSION)
172
173 AC_LANG_RESTORE
174
175 AC_MSG_RESULT(for Qt: $qt_ok)
176
177 # Save cache
178 AC_CACHE_SAVE
179
180 ])dnl
181 dnl