Disable wxUSE_FSWATCHER under Unix if neither inotify nor kqueue is available.

Don't define wxUSE_FSWATCHER as 1 in configure if we can't implement it.

Also add a check to wx/unix/chkconf.h to verify that we didn't end up with an
inconsistent configuration somehow.

Closes #11670.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2010-01-29 13:07:26 +00:00
parent 1682f86006
commit 96e790a567
3 changed files with 57 additions and 27 deletions

38
configure vendored
View File

@@ -42595,13 +42595,8 @@ fi
if test "$wxUSE_FSWATCHER" = "yes"; then
cat >>confdefs.h <<\_ACEOF
#define wxUSE_FSWATCHER 1
_ACEOF
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS fswatcher"
if test "$wxUSE_UNIX" = "yes"; then
if test "$wxUSE_MSW" != "1"; then
if test "$wxUSE_UNIX" = "yes"; then
for ac_header in sys/inotify.h
do
@@ -42660,12 +42655,12 @@ fi
done
if test "$ac_cv_header_sys_inotify_h" = "yes"; then
cat >>confdefs.h <<\_ACEOF
if test "$ac_cv_header_sys_inotify_h" = "yes"; then
cat >>confdefs.h <<\_ACEOF
#define wxHAS_INOTIFY 1
_ACEOF
else
else
for ac_header in sys/event.h
do
@@ -42724,17 +42719,30 @@ fi
done
if test "$ac_cv_header_sys_event_h" = "yes"; then
cat >>confdefs.h <<\_ACEOF
if test "$ac_cv_header_sys_event_h" = "yes"; then
cat >>confdefs.h <<\_ACEOF
#define wxHAS_KQUEUE 1
_ACEOF
else
{ echo "$as_me:$LINENO: WARNING: No native wxFileSystemWatcher implementation available for on this platform" >&5
echo "$as_me: WARNING: No native wxFileSystemWatcher implementation available for on this platform" >&2;}
else
wxUSE_FSWATCHER=no
fi
fi
else
wxUSE_FSWATCHER=no
fi
fi
if test "$wxUSE_FSWATCHER" = "yes"; then
cat >>confdefs.h <<\_ACEOF
#define wxUSE_FSWATCHER 1
_ACEOF
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS fswatcher"
else
{ echo "$as_me:$LINENO: WARNING: wxFileSystemWatcher won't be available on this platform" >&5
echo "$as_me: WARNING: wxFileSystemWatcher won't be available on this platform" >&2;}
fi
fi

View File

@@ -5562,22 +5562,33 @@ dnl File system watcher checks
dnl ---------------------------------------------------------------------------
if test "$wxUSE_FSWATCHER" = "yes"; then
AC_DEFINE(wxUSE_FSWATCHER)
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS fswatcher"
if test "$wxUSE_UNIX" = "yes"; then
AC_CHECK_HEADERS(sys/inotify.h,,, [AC_INCLUDES_DEFAULT()])
if test "$ac_cv_header_sys_inotify_h" = "yes"; then
AC_DEFINE(wxHAS_INOTIFY)
else
AC_CHECK_HEADERS(sys/event.h,,, [AC_INCLUDES_DEFAULT()])
if test "$ac_cv_header_sys_event_h" = "yes"; then
AC_DEFINE(wxHAS_KQUEUE)
dnl wxFileSystemWatcher is always available under MSW but we need either
dnl inotify or kqueue support in the system for it under Unix (this
dnl includes OS X which does have kqueue but no other platforms)
if test "$wxUSE_MSW" != "1"; then
if test "$wxUSE_UNIX" = "yes"; then
AC_CHECK_HEADERS(sys/inotify.h,,, [AC_INCLUDES_DEFAULT()])
if test "$ac_cv_header_sys_inotify_h" = "yes"; then
AC_DEFINE(wxHAS_INOTIFY)
else
AC_MSG_WARN([No native wxFileSystemWatcher implementation available for on this platform])
AC_CHECK_HEADERS(sys/event.h,,, [AC_INCLUDES_DEFAULT()])
if test "$ac_cv_header_sys_event_h" = "yes"; then
AC_DEFINE(wxHAS_KQUEUE)
else
wxUSE_FSWATCHER=no
fi
fi
else
wxUSE_FSWATCHER=no
fi
fi
if test "$wxUSE_FSWATCHER" = "yes"; then
AC_DEFINE(wxUSE_FSWATCHER)
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS fswatcher"
else
AC_MSG_WARN([wxFileSystemWatcher won't be available on this platform])
fi
fi
dnl ---------------------------------------------------------------------------

View File

@@ -21,6 +21,17 @@
# endif
#endif /* wxUSE_CONSOLE_EVENTLOOP */
#if wxUSE_FSWATCHER
# if !defined(wxHAS_INOTIFY) && !defined(wxHAS_KQUEUE)
# ifdef wxABORT_ON_CONFIG_ERROR
# error "wxFileSystemWatcher requires either inotify() or kqueue()"
# else
# undef wxUSE_FSWATCHER
# define wxUSE_FSWATCHER 0
# endif
# endif
#endif /* wxUSE_FSWATCHER */
#if wxUSE_GSTREAMER
# if !wxUSE_THREADS
# ifdef wxABORT_ON_CONFIG_ERROR