1 dnl Copyright (C) 2003 CEA/DEN, EDF R&D
3 AC_DEFUN([CHECK_PYQT],[
4 AC_REQUIRE([CHECK_PYTHON])dnl
5 AC_REQUIRE([CHECK_QT])dnl
6 AC_REQUIRE([CHECK_SIP])dnl
12 [ --with-pyqt=DIR root directory path to PyQt installation ],
14 AC_MSG_RESULT("select $withval as path to PyQt")
17 AC_ARG_WITH(pyqt_sips,
18 [ --with-pyqt_sips=DIR a directory path to PyQt sips installation ],
20 AC_MSG_RESULT("select $withval as path to PyQt sips")
25 [ --with-pyuic=EXEC pyuic executable ],
27 AC_MSG_RESULT("select $withval as pyqt executable")
36 if test "x$PYUIC" != x; then
38 AC_CHECK_FILE($PYUIC,pyqt_uic_ok=yes,pyqt_uic_ok=no)
40 if test "x$pyqt_uic_ok" == "xno"; then
42 if test "x${PYQTDIR}" != "x"; then
43 if test -d ${PYQTDIR} ; then
44 AC_CHECK_FILE(${PYQTDIR}/pyuic,pyqt_uic_ok=yes,pyqt_uic_ok=no)
45 if test "x$pyqt_uic_ok" == "xyes"; then
46 PYUIC="${PYQTDIR}/pyuic"
51 if test "x$pyqt_uic_ok" == "xno"; then
53 if test "x${SIPDIR}" != "x"; then
54 if test -d ${SIPDIR} ; then
55 AC_CHECK_FILE(${SIPDIR}/pyuic,pyqt_uic_ok=yes,pyqt_uic_ok=no)
56 if test "x$pyqt_uic_ok" == "xyes"; then
57 PYUIC="${SIPDIR}/pyuic"
62 if test "x$pyqt_uic_ok" == "xno"; then
63 dnl try ${PYTHONHOME}/bin
64 if test "x${PYTHONHOME}" != "x"; then
65 if test -d ${PYTHONHOME}/bin ; then
66 AC_CHECK_FILE(${PYTHONHOME}/bin/pyuic,pyqt_uic_ok=yes,pyqt_uic_ok=no)
67 if test "x$pyqt_uic_ok" == "xyes"; then
68 PYUIC="${PYTHONHOME}/bin/pyuic"
73 if test "x$pyqt_uic_ok" == "xno"; then
75 AC_CHECK_FILE(/usr/bin/pyuic,pyqt_uic_ok=yes,pyqt_uic_ok=no)
76 if test "x$pyqt_uic_ok" == "xyes"; then
77 PYUIC="/usr/bin/pyuic"
80 if test "x$pyqt_uic_ok" == "xno"; then
84 dnl look for PyQt libs
86 if test "x${PYQTDIR}" != "x"; then
88 AC_CHECK_FILE(${PYQTDIR}/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
89 if test "x$pyqt_lib_ok" == "xyes"; then
90 if test "x${PYQTDIR}" = "x/usr/lib"
92 PYQT_LIBS="-lqtcmodule"
94 PYQT_LIBS="-L${PYQTDIR} -lqtcmodule"
97 AC_CHECK_FILE(${PYQTDIR}/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
98 if test "x$pyqt_lib_ok" == "xyes"; then
99 if test "x${PYQTDIR}" = "x/usr/lib"
103 PYQT_LIBS="-L${PYQTDIR}"
107 if test "x$pyqt_lib_ok" == "xno"; then
108 dnl try {PYQTDIR}/lib
109 if test -d {PYQTDIR}/lib; then
110 AC_CHECK_FILE(${PYQTDIR}/lib/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
111 if test "x$pyqt_lib_ok" == "xyes"; then
112 PYQT_LIBS="-L${PYQTDIR}/lib -lqtcmodule"
114 AC_CHECK_FILE(${PYQTDIR}/lib/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
115 if test "x$pyqt_lib_ok" == "xyes"; then
116 PYQT_LIBS="-L${PYQTDIR}/lib"
121 if test "x$pyqt_lib_ok" == "xno"; then
122 dnl try {PYQTDIR}/lib/python${PYTHON_VERSION}/site-packages
123 if test -d {PYQTDIR}/lib/python${PYTHON_VERSION}/site-packages; then
124 AC_CHECK_FILE(${PYQTDIR}/lib/python${PYTHON_VERSION}/site-packages/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
125 if test "x$pyqt_lib_ok" == "xyes"; then
126 PYQT_LIBS="-L${PYQTDIR}/lib/python${PYTHON_VERSION}/site-packages -lqtcmodule"
128 AC_CHECK_FILE(${PYQTDIR}/lib/python${PYTHON_VERSION}/site-packages/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
129 if test "x$pyqt_lib_ok" == "xyes"; then
130 PYQT_LIBS="-L${PYQTDIR}/lib/python${PYTHON_VERSION}/site-packages"
136 if test "x$pyqt_lib_ok" == "xno"; then
138 if test "x${SIPDIR}" != "x"; then
139 if test -d ${SIPDIR} ; then
140 AC_CHECK_FILE(${SIPDIR}/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
141 if test "x$pyqt_lib_ok" == "xyes"; then
142 if test "x${SIPDIR}" = "x/usr/lib"
144 PYQT_LIBS="-lqtcmodule"
146 PYQT_LIBS="-L${SIPDIR} -lqtcmodule"
149 AC_CHECK_FILE(${SIPDIR}/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
150 if test "x$pyqt_lib_ok" == "xyes"; then
151 if test "x${SIPDIR}" = "x/usr/lib"
155 PYQT_LIBS="-L${SIPDIR}"
162 if test "x$pyqt_lib_ok" == "xno"; then
163 dnl try ${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages
164 if test "x${PYTHONHOME}" != "x"; then
165 if test -d ${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages ; then
166 AC_CHECK_FILE(${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
167 if test "x$pyqt_lib_ok" == "xyes"; then
168 PYQT_LIBS="-L${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages -lqtcmodule"
170 AC_CHECK_FILE(${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
171 if test "x$pyqt_lib_ok" == "xyes"; then
172 PYQT_LIBS="-L${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages"
178 if test "x$pyqt_lib_ok" == "xno"; then
179 dnl try /usr/lib/python${PYTHON_VERSION}/site-packages
180 AC_CHECK_FILE(/usr/lib/python${PYTHON_VERSION}/site-packages/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
181 if test "x$pyqt_lib_ok" == "xyes"; then
182 PYQT_LIBS="-L/usr/lib/python${PYTHON_VERSION}/site-packages -lqtcmodule"
184 AC_CHECK_FILE(/usr/lib/python${PYTHON_VERSION}/site-packages/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
185 if test "x$pyqt_lib_ok" == "xyes"; then
186 PYQT_LIBS="-L/usr/lib/python${PYTHON_VERSION}/site-packages"
190 if test "x$pyqt_lib_ok" == "xno"; then
194 dnl look for PyQt sips
196 dnl try ${PYQT_SIPS} or ${PYQT_SIPS}/qt
197 if test "x${PYQT_SIPS}" != "x"; then
198 AC_CHECK_FILE(${PYQT_SIPS}/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
199 if test "x$pyqt_sips_ok" == "xno"; then
200 AC_CHECK_FILE(${PYQT_SIPS}/qt/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
201 if test "x$pyqt_sips_ok" == "xyes"; then
202 PYQT_SIPS="${PYQT_SIPS}/qt"
206 if test "x$pyqt_sips_ok" == "xno"; then
207 dnl try ${PYQTDIR}/sip
208 if test "x${PYQTDIR}" != "x"; then
209 if test -d ${PYQTDIR}/sip ; then
210 AC_CHECK_FILE(${PYQTDIR}/sip/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
211 if test "x$pyqt_sips_ok" == "xyes"; then
212 PYQT_SIPS="${PYQTDIR}/sip"
214 AC_CHECK_FILE(${PYQTDIR}/sip/qt/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
215 if test "x$pyqt_sips_ok" == "xyes"; then
216 PYQT_SIPS="${PYQTDIR}/sip/qt"
222 if test "x$pyqt_sips_ok" == "xno"; then
223 dnl try ${SIPDIR}/sip
224 if test "x${SIPDIR}" != "x"; then
225 if test -d ${SIPDIR}/sip ; then
226 AC_CHECK_FILE(${SIPDIR}/sip/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
227 if test "x$pyqt_sips_ok" == "xyes"; then
228 PYQT_SIPS="${SIPDIR}/sip"
230 AC_CHECK_FILE(${SIPDIR}/sip/qt/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
231 if test "x$pyqt_sips_ok" == "xyes"; then
232 PYQT_SIPS="${SIPDIR}/sip/qt"
238 if test "x$pyqt_sips_ok" == "xno"; then
239 dnl try /usr/share/sip
240 if test -d /usr/share/sip ; then
241 AC_CHECK_FILE(/usr/share/sip/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
242 if test "x$pyqt_sips_ok" == "xyes"; then
243 PYQT_SIPS="/usr/share/sip"
245 AC_CHECK_FILE(/usr/share/sip/qt/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
246 if test "x$pyqt_sips_ok" == "xyes"; then
247 PYQT_SIPS="/usr/share/sip/qt"
252 if test "x$pyqt_sips_ok" == "xno"; then
255 PYQT_INCLUDES="-I$PYQT_SIPS"
257 dnl Additional sip flags required for correct wrappers compilation
258 AC_MSG_CHECKING(which qt classes should be excluded)
262 CXXFLAGS_old=$CXXFLAGS
263 CXXFLAGS="$CXXFLAGS $QT_INCLUDES"
265 LIBS="$LIBS $QT_LIBS"
267 AC_TRY_COMPILE([#include <qcdestyle.h>],
268 [new QCDEStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_CDE")
269 AC_TRY_COMPILE([#include <qinterlacestyle.h>],
270 [new QInterlaceStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_INTERLACE")
271 AC_TRY_COMPILE([#include <qmotifstyle.h>],
272 [new QMotifStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_MOTIF")
273 AC_TRY_COMPILE([#include <qmotifplusstyle.h>],
274 [new QMotifPlusStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_MOTIFPLUS")
275 AC_TRY_COMPILE([#include <qplatinumstyle.h>],
276 [new QPlatinumStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_PLATINUM")
277 AC_TRY_COMPILE([#include <qsgistyle.h>],
278 [new QSGIStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_SGI")
279 AC_TRY_COMPILE([#include <qwindowsstyle.h>],
280 [new QWindowsStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_WINDOWS")
281 AC_TRY_COMPILE([#include <qwindowsxpstyle.h>],
282 [new QWindowsXPStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_WINDOWSXP")
284 LIBS="$LIBS -lqassistantclient"
285 AC_TRY_LINK([#include <qassistantclient.h>],
286 [new QAssistantClient("foo");],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_ASSISTANTCLIENT")
290 CXXFLAGS=$CXXFLAGS_old
294 AC_SUBST(PYQT_INCLUDES)
298 AC_SUBST(PYQT_SIPFLAGS)
302 AC_MSG_RESULT(for pyqt: $pyqt_ok)