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