1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 17:38:00 +00:00

Introduce a config option for building on OS X GTK.

Using GTK to run on OS X is going to require several workarounds and
behaviour tweaks to be enabled at various points in the code, and it's
already getting cumbersome to remember what they all are to put on the
command line. Here's a central #define (OSX_GTK) that enables them all
in one go, and a configure option (--with-quartz) that sets it.

As part of this commit, I've also rearranged the #include order in the
GTK source files, so that they include unix.h (which now might be
where NOT_X_WINDOWS gets defined) before they test NOT_X_WINDOWS to
decide whether to include X11 headers.
This commit is contained in:
Simon Tatham 2015-08-31 13:05:51 +01:00
parent 7acb747a7d
commit 1fa0b5a1ac
5 changed files with 42 additions and 18 deletions

View File

@ -48,6 +48,12 @@ AC_ARG_WITH([gssapi],
[],
[with_gssapi=yes])
AC_ARG_WITH([quartz],
[AS_HELP_STRING([--with-quartz],
[build for the MacOS Quartz GTK back end])],
[AC_DEFINE([OSX_GTK], [1], [Define if building with GTK for MacOS.])],
[])
WITH_GSSAPI=
AS_IF([test "x$with_gssapi" != xno],
[AC_DEFINE([WITH_GSSAPI], [1], [Define if building with GSSAPI support.])])

View File

@ -6,26 +6,27 @@
#include <stdarg.h>
#include <ctype.h>
#include <time.h>
#include <gtk/gtk.h>
#if !GTK_CHECK_VERSION(3,0,0)
#include <gdk/gdkkeysyms.h>
#endif
#include "putty.h"
#include "gtkcompat.h"
#include "gtkcols.h"
#include "gtkfont.h"
#ifndef NOT_X_WINDOWS
#include <gdk/gdkx.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#endif
#include "gtkcompat.h"
#include "gtkcols.h"
#include "gtkfont.h"
#ifdef TESTMODE
#define PUTTY_DO_GLOBALS /* actually _define_ globals */
#endif
#include "putty.h"
#include "storage.h"
#include "dialog.h"
#include "tree234.h"

View File

@ -12,22 +12,24 @@
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <gtk/gtk.h>
#if !GTK_CHECK_VERSION(3,0,0)
#include <gdk/gdkkeysyms.h>
#endif
#ifndef NOT_X_WINDOWS
#include <gdk/gdkx.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#endif
#include "putty.h"
#include "gtkfont.h"
#include "gtkcompat.h"
#include "tree234.h"
#ifndef NOT_X_WINDOWS
#include <gdk/gdkx.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#endif
/*
* Future work:
*

View File

@ -22,12 +22,6 @@
#if !GTK_CHECK_VERSION(3,0,0)
#include <gdk/gdkkeysyms.h>
#endif
#ifndef NOT_X_WINDOWS
#include <gdk/gdkx.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#endif
#if GTK_CHECK_VERSION(2,0,0)
#include <gtk/gtkimmodule.h>
@ -42,6 +36,13 @@
#include "gtkcompat.h"
#include "gtkfont.h"
#ifndef NOT_X_WINDOWS
#include <gdk/gdkx.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#endif
#define CAT2(x,y) x ## y
#define CAT(x,y) CAT2(x,y)
#define ASSERT(x) enum {CAT(assertion_,__LINE__) = 1 / (x)}

View File

@ -12,6 +12,20 @@
#endif /* NO_LIBDL */
#include "charset.h"
#ifdef OSX_GTK
/*
* Assorted tweaks to various parts of the GTK front end which all
* need to be enabled when compiling on OS X. Because I might need the
* same tweaks on other systems in future, I don't want to
* conditionalise all of them on OSX_GTK directly, so instead, each
* one has its own name and we enable them all centrally here if
* OSX_GTK is defined at configure time.
*/
#define NOT_X_WINDOWS /* of course, all the X11 stuff should be disabled */
#define NO_PTY_PRE_INIT /* OS X gets very huffy if we try to set[ug]id */
#define SET_NONBLOCK_VIA_OPENPT /* work around missing fcntl functionality */
#endif
struct Filename {
char *path;
};