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:
parent
7acb747a7d
commit
1fa0b5a1ac
@ -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.])])
|
||||
|
@ -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"
|
||||
|
@ -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:
|
||||
*
|
||||
|
@ -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)}
|
||||
|
14
unix/unix.h
14
unix/unix.h
@ -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;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user