summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2015-12-30 12:10:15 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2015-12-30 12:10:15 +0000
commit17c48175927a5fa8eea52ef09090617b3e9b20f9 (patch)
treee47fc8bc0f7ad6658b792ccb9dd438a1437073b2
parentbb4f48570835fa21a08d6cfc23f259f3e6779a15 (diff)
Add configure and CMake checks for X11/Xregion.h.
Configure and CMake now both check if X11/Xregion.h exists on the build system and set HAVE_X11_XREGION_H in config.h accordingly. src/Fl_Pixmap.cxx: modified to use the configure test as proposed by Manolo in fltk.coredev on Dec 13 2015 in thread "Using X11 backend on OS X". git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10983 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--CMake/resources.cmake3
-rw-r--r--configh.cmake.in10
-rw-r--r--configh.in10
-rw-r--r--configure.in4
-rw-r--r--src/Fl_Pixmap.cxx10
5 files changed, 29 insertions, 8 deletions
diff --git a/CMake/resources.cmake b/CMake/resources.cmake
index df70b5a28..c44e36a15 100644
--- a/CMake/resources.cmake
+++ b/CMake/resources.cmake
@@ -4,7 +4,7 @@
# Main CMakeLists.txt to build the FLTK project using CMake (www.cmake.org)
# Written by Michael Surette
#
-# Copyright 1998-2010 by Bill Spitzak and others.
+# Copyright 1998-2015 by Bill Spitzak and others.
#
# This library is free software. Distribution and use rights are outlined in
# the file "COPYING" which should have been included with this file. If this
@@ -39,6 +39,7 @@ find_file(HAVE_SYS_DIR_H sys/dir.h)
find_file(HAVE_SYS_NDIR_H sys/ndir.h)
find_file(HAVE_SYS_SELECT_H sys/select.h)
find_file(HAVE_SYS_STDTYPES_H sys/stdtypes.h)
+find_file(HAVE_X11_XREGION_H X11/Xregion.h)
find_path(HAVE_XDBE_H Xdbe.h PATH_SUFFIXES X11/extensions extensions)
mark_as_advanced(HAVE_ALSA_ASOUNDLIB_H HAVE_DIRENT_H HAVE_DLFCN_H)
diff --git a/configh.cmake.in b/configh.cmake.in
index 34e64733e..bf0aed077 100644
--- a/configh.cmake.in
+++ b/configh.cmake.in
@@ -4,7 +4,7 @@
* Configuration file for the Fast Light Tool Kit (FLTK).
* @configure_input@
*
- * Copyright 1998-2010 by Bill Spitzak and others.
+ * Copyright 1998-2015 by Bill Spitzak and others.
*
* This library is free software. Distribution and use rights are outlined in
* the file "COPYING" which should have been included with this file. If this
@@ -124,6 +124,14 @@
#cmakedefine01 HAVE_XCURSOR
/*
+ * HAVE_X11_XREGION_H:
+ *
+ * Do we have the X11 Xregion.h header file ?
+ */
+
+#cmakedefine01 HAVE_X11_XREGION_H
+
+/*
* __APPLE_QUARTZ__:
*
* If __APPLE_QUARTZ__ is defined, FLTK will be
diff --git a/configh.in b/configh.in
index 39b3f2560..96e8d1fcf 100644
--- a/configh.in
+++ b/configh.in
@@ -4,7 +4,7 @@
* Configuration file for the Fast Light Tool Kit (FLTK).
* @configure_input@
*
- * Copyright 1998-2010 by Bill Spitzak and others.
+ * Copyright 1998-2015 by Bill Spitzak and others.
*
* This library is free software. Distribution and use rights are outlined in
* the file "COPYING" which should have been included with this file. If this
@@ -132,6 +132,14 @@
#define HAVE_XRENDER 0
/*
+ * HAVE_X11_XREGION_H:
+ *
+ * Do we have the X11 Xregion.h header file ?
+ */
+
+#define HAVE_X11_XREGION_H 0
+
+/*
* __APPLE_QUARTZ__:
*
* All Apple implementations are now based on Quartz and Cocoa,
diff --git a/configure.in b/configure.in
index 8b4442a14..0b1036287 100644
--- a/configure.in
+++ b/configure.in
@@ -1046,6 +1046,10 @@ case $host_os_gui in
LIBS="-lXrender $LIBS")
fi
+ dnl Check for the X11/Xregion.h header file...
+ AC_CHECK_HEADER(X11/Xregion.h, AC_DEFINE(HAVE_X11_XREGION_H),,
+ [#include <X11/Xlib.h>])
+
dnl Check for overlay visuals...
AC_PATH_PROG(XPROP, xprop)
AC_CACHE_CHECK(for X overlay visuals, ac_cv_have_overlay,
diff --git a/src/Fl_Pixmap.cxx b/src/Fl_Pixmap.cxx
index a38565ff7..30d51d5a9 100644
--- a/src/Fl_Pixmap.cxx
+++ b/src/Fl_Pixmap.cxx
@@ -33,7 +33,9 @@
#include <FL/Fl_Printer.H>
#if defined(USE_X11)
-# ifdef __APPLE_CC__ // allows using on Darwin + X11 even if X11/Xregion.h is absent
+# if HAVE_X11_XREGION_H
+# include <X11/Xregion.h>
+# else // if the X11/Xregion.h header is not available, we assume this is the layout of an X11 Region:
typedef struct {
short x1, x2, y1, y2;
} BOX;
@@ -43,10 +45,8 @@ struct _XRegion {
BOX *rects;
BOX extents;
};
-# else
-# include <X11/Xregion.h>
-# endif
-#endif
+# endif // HAVE_X11_XREGION_H
+#endif // USE_X11
#include <stdio.h>
#include "flstring.h"