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
7 AC_REQUIRE([AC_LINKER_OPTIONS])dnl
13 [ --with-pyqt=DIR root directory path to PyQt installation ],
15 AC_MSG_RESULT("select $withval as path to PyQt")
18 AC_ARG_WITH(pyqt_sips,
19 [ --with-pyqt_sips=DIR a directory path to PyQt sips installation ],
21 AC_MSG_RESULT("select $withval as path to PyQt sips")
26 [ --with-pyuic=EXEC pyuic executable ],
28 AC_MSG_RESULT("select $withval as pyqt executable")
37 if test "x$PYUIC" != x; then
39 AC_CHECK_FILE($PYUIC,pyqt_uic_ok=yes,pyqt_uic_ok=no)
41 if test "x$pyqt_uic_ok" == "xno"; then
43 if test "x${PYQTDIR}" != "x"; then
44 if test -d ${PYQTDIR} ; then
45 AC_CHECK_FILE(${PYQTDIR}/pyuic,pyqt_uic_ok=yes,pyqt_uic_ok=no)
46 if test "x$pyqt_uic_ok" == "xyes"; then
47 PYUIC="${PYQTDIR}/pyuic"
52 if test "x$pyqt_uic_ok" == "xno"; then
54 if test "x${SIPDIR}" != "x"; then
55 if test -d ${SIPDIR} ; then
56 AC_CHECK_FILE(${SIPDIR}/pyuic,pyqt_uic_ok=yes,pyqt_uic_ok=no)
57 if test "x$pyqt_uic_ok" == "xyes"; then
58 PYUIC="${SIPDIR}/pyuic"
63 if test "x$pyqt_uic_ok" == "xno"; then
64 dnl try ${PYTHONHOME}/bin
65 if test "x${PYTHONHOME}" != "x"; then
66 if test -d ${PYTHONHOME}/bin ; then
67 AC_CHECK_FILE(${PYTHONHOME}/bin/pyuic,pyqt_uic_ok=yes,pyqt_uic_ok=no)
68 if test "x$pyqt_uic_ok" == "xyes"; then
69 PYUIC="${PYTHONHOME}/bin/pyuic"
74 if test "x$pyqt_uic_ok" == "xno"; then
76 AC_CHECK_FILE(/usr/bin/pyuic,pyqt_uic_ok=yes,pyqt_uic_ok=no)
77 if test "x$pyqt_uic_ok" == "xyes"; then
78 PYUIC="/usr/bin/pyuic"
81 if test "x$pyqt_uic_ok" == "xno"; then
85 dnl look for PyQt libs
87 if test "x${PYQTDIR}" != "x"; then
89 AC_CHECK_FILE(${PYQTDIR}/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
90 if test "x$pyqt_lib_ok" == "xyes"; then
91 if test "x${PYQTDIR}" = "x/usr/lib"
93 PYQT_LIBS="-lqtcmodule"
95 PYQT_LIBS="-L${PYQTDIR} -lqtcmodule"
98 AC_CHECK_FILE(${PYQTDIR}/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
99 if test "x$pyqt_lib_ok" == "xyes"; then
100 if test "x${PYQTDIR}" = "x/usr/lib"
104 PYQT_LIBS="-L${PYQTDIR}"
108 if test "x$pyqt_lib_ok" == "xno"; then
109 dnl try {PYQTDIR}/lib
110 if test -d {PYQTDIR}/lib; then
111 AC_CHECK_FILE(${PYQTDIR}/lib/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
112 if test "x$pyqt_lib_ok" == "xyes"; then
113 PYQT_LIBS="-L${PYQTDIR}/lib -lqtcmodule"
115 AC_CHECK_FILE(${PYQTDIR}/lib/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
116 if test "x$pyqt_lib_ok" == "xyes"; then
117 PYQT_LIBS="-L${PYQTDIR}/lib"
122 if test "x$pyqt_lib_ok" == "xno"; then
123 dnl try {PYQTDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages
124 if test -d {PYQTDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages; then
125 AC_CHECK_FILE(${PYQTDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
126 if test "x$pyqt_lib_ok" == "xyes"; then
127 PYQT_LIBS="-L${PYQTDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages -lqtcmodule"
129 AC_CHECK_FILE(${PYQTDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
130 if test "x$pyqt_lib_ok" == "xyes"; then
131 PYQT_LIBS="-L${PYQTDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages"
137 if test "x$pyqt_lib_ok" == "xno"; then
139 if test "x${SIPDIR}" != "x"; then
140 if test -d ${SIPDIR} ; then
141 AC_CHECK_FILE(${SIPDIR}/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
142 if test "x$pyqt_lib_ok" == "xyes"; then
143 if test "x${SIPDIR}" = "x/usr/lib"
145 PYQT_LIBS="-lqtcmodule"
147 PYQT_LIBS="-L${SIPDIR} -lqtcmodule"
150 AC_CHECK_FILE(${SIPDIR}/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
151 if test "x$pyqt_lib_ok" == "xyes"; then
152 if test "x${SIPDIR}" = "x/usr/lib"
156 PYQT_LIBS="-L${SIPDIR}"
163 if test "x$pyqt_lib_ok" == "xno"; then
164 dnl try ${PYTHONHOME}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages
165 if test "x${PYTHONHOME}" != "x"; then
166 if test -d ${PYTHONHOME}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages ; then
167 AC_CHECK_FILE(${PYTHONHOME}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
168 if test "x$pyqt_lib_ok" == "xyes"; then
169 PYQT_LIBS="-L${PYTHONHOME}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages -lqtcmodule"
171 AC_CHECK_FILE(${PYTHONHOME}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
172 if test "x$pyqt_lib_ok" == "xyes"; then
173 PYQT_LIBS="-L${PYTHONHOME}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages"
179 if test "x$pyqt_lib_ok" == "xno"; then
180 dnl try /usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages
181 AC_CHECK_FILE(/usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
182 if test "x$pyqt_lib_ok" == "xyes"; then
183 PYQT_LIBS="-L/usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages -lqtcmodule"
185 AC_CHECK_FILE(/usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
186 if test "x$pyqt_lib_ok" == "xyes"; then
187 PYQT_LIBS="-L/usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages"
191 if test "x$pyqt_lib_ok" == "xno"; then
195 dnl look for PyQt sips
197 dnl try ${PYQT_SIPS} or ${PYQT_SIPS}/qt
198 if test "x${PYQT_SIPS}" != "x"; then
199 AC_CHECK_FILE(${PYQT_SIPS}/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
200 if test "x$pyqt_sips_ok" == "xno"; then
201 AC_CHECK_FILE(${PYQT_SIPS}/qt/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
202 if test "x$pyqt_sips_ok" == "xyes"; then
203 PYQT_SIPS="${PYQT_SIPS}/qt"
207 if test "x$pyqt_sips_ok" == "xno"; then
208 dnl try ${PYQTDIR}/sip
209 if test "x${PYQTDIR}" != "x"; then
210 if test -d ${PYQTDIR}/sip ; then
211 AC_CHECK_FILE(${PYQTDIR}/sip/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
212 if test "x$pyqt_sips_ok" == "xyes"; then
213 PYQT_SIPS="${PYQTDIR}/sip"
215 AC_CHECK_FILE(${PYQTDIR}/sip/qt/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
216 if test "x$pyqt_sips_ok" == "xyes"; then
217 PYQT_SIPS="${PYQTDIR}/sip/qt"
223 if test "x$pyqt_sips_ok" == "xno"; then
224 dnl try ${SIPDIR}/sip
225 if test "x${SIPDIR}" != "x"; then
226 if test -d ${SIPDIR}/sip ; then
227 AC_CHECK_FILE(${SIPDIR}/sip/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
228 if test "x$pyqt_sips_ok" == "xyes"; then
229 PYQT_SIPS="${SIPDIR}/sip"
231 AC_CHECK_FILE(${SIPDIR}/sip/qt/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
232 if test "x$pyqt_sips_ok" == "xyes"; then
233 PYQT_SIPS="${SIPDIR}/sip/qt"
239 if test "x$pyqt_sips_ok" == "xno"; then
240 dnl try /usr/share/sip
241 if test -d /usr/share/sip ; then
242 AC_CHECK_FILE(/usr/share/sip/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
243 if test "x$pyqt_sips_ok" == "xyes"; then
244 PYQT_SIPS="/usr/share/sip"
246 AC_CHECK_FILE(/usr/share/sip/qt/qglobal.sip,pyqt_sips_ok=yes,pyqt_sips_ok=no)
247 if test "x$pyqt_sips_ok" == "xyes"; then
248 PYQT_SIPS="/usr/share/sip/qt"
253 if test "x$pyqt_sips_ok" == "xno"; then
256 PYQT_INCLUDES="-I$PYQT_SIPS"
258 dnl Additional sip flags required for correct wrappers compilation
259 AC_MSG_CHECKING(which qt classes should be excluded)
263 CXXFLAGS_old=$CXXFLAGS
264 CXXFLAGS="$CXXFLAGS $QT_INCLUDES"
266 LIBS="$LIBS $QT_LIBS"
268 AC_TRY_COMPILE([#include <qcdestyle.h>],
269 [new QCDEStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_CDE")
270 AC_TRY_COMPILE([#include <qinterlacestyle.h>],
271 [new QInterlaceStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_INTERLACE")
272 AC_TRY_COMPILE([#include <qmotifstyle.h>],
273 [new QMotifStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_MOTIF")
274 AC_TRY_COMPILE([#include <qmotifplusstyle.h>],
275 [new QMotifPlusStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_MOTIFPLUS")
276 AC_TRY_COMPILE([#include <qplatinumstyle.h>],
277 [new QPlatinumStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_PLATINUM")
278 AC_TRY_COMPILE([#include <qsgistyle.h>],
279 [new QSGIStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_SGI")
280 AC_TRY_COMPILE([#include <qwindowsstyle.h>],
281 [new QWindowsStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_WINDOWS")
282 AC_TRY_COMPILE([#include <qwindowsxpstyle.h>],
283 [new QWindowsXPStyle();],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_STYLE_WINDOWSXP")
285 LIBS="$LIBS -lqassistantclient"
286 AC_TRY_LINK([#include <qassistantclient.h>],
287 [new QAssistantClient("foo");],,PYQT_SIPFLAGS="$PYQT_SIPFLAGS -x Qt_ASSISTANTCLIENT")
291 CXXFLAGS=$CXXFLAGS_old
295 AC_SUBST(PYQT_INCLUDES)
299 AC_SUBST(PYQT_SIPFLAGS)
303 AC_MSG_RESULT(for pyqt: $pyqt_ok)