nixpkgs/pkgs/applications/misc/kitty/macos-10.11.patch
strager 75aa8460ac kitty: support macOS (#56740)
Install the `kitty` command-line utility and the `kitty.app` macOS
application.

* Prefer libicns (png2icns) over Apple's non-free iconutil.
* Work around warnings from Apple headers by disabling -pedantic-errors
  and -Werror.
* Work around ld not support LLVM-LTO by disabling LTO.
* Make Kitty and glfw compile for macOS 10.11 (and macOS 10.10).
2019-03-31 15:18:58 -04:00

116 lines
3.9 KiB
Diff

commit 749772b8b8179eb3b71e542fd9ed5621feb578f5
Author: Matthew Glazar <strager.nds@gmail.com>
Date: Thu Feb 28 22:01:32 2019 -0800
Support macOS 10.11
Allow Kitty to run on macOS 10.11 El Capitan.
diff --git a/glfw/cocoa_init.m b/glfw/cocoa_init.m
index 1e719d2e..05a680e4 100644
--- a/glfw/cocoa_init.m
+++ b/glfw/cocoa_init.m
@@ -30,6 +30,10 @@
#define NSEventMaskKeyUp NSKeyUpMask
#define NSEventMaskKeyDown NSKeyDownMask
#define NSEventModifierFlagCommand NSCommandKeyMask
+ #define NSEventModifierFlagControl NSControlKeyMask
+ #define NSEventModifierFlagDeviceIndependentFlagsMask NSDeviceIndependentModifierFlagsMask
+ #define NSEventModifierFlagShift NSShiftKeyMask
+ #define NSEventTypeApplicationDefined NSApplicationDefined
#endif
// Change to our application bundle's resources directory, if present
diff --git a/glfw/cocoa_window.m b/glfw/cocoa_window.m
index 1ce79b56..fd2255fc 100644
--- a/glfw/cocoa_window.m
+++ b/glfw/cocoa_window.m
@@ -41,6 +41,7 @@
#define NSWindowStyleMaskTitled NSTitledWindowMask
#define NSEventModifierFlagCommand NSCommandKeyMask
#define NSEventModifierFlagControl NSControlKeyMask
+ #define NSEventModifierFlagNumericPad NSNumericPadKeyMask
#define NSEventModifierFlagOption NSAlternateKeyMask
#define NSEventModifierFlagShift NSShiftKeyMask
#define NSEventModifierFlagCapsLock NSAlphaShiftKeyMask
diff --git a/kitty/cocoa_window.m b/kitty/cocoa_window.m
index 5e9252ba..99eb3352 100644
--- a/kitty/cocoa_window.m
+++ b/kitty/cocoa_window.m
@@ -15,6 +15,9 @@
#include <objc/runtime.h>
#if (MAC_OS_X_VERSION_MAX_ALLOWED < 101200)
+typedef NSUInteger NSWindowStyleMask;
+#define NSWindowStyleMaskBorderless NSBorderlessWindowMask
+#define NSWindowStyleMaskFullScreen NSFullScreenWindowMask
#define NSWindowStyleMaskResizable NSResizableWindowMask
#define NSEventModifierFlagOption NSAlternateKeyMask
#define NSEventModifierFlagCommand NSCommandKeyMask
diff --git a/kitty/logging.c b/kitty/logging.c
index 45c88174..1ec9f1b0 100644
--- a/kitty/logging.c
+++ b/kitty/logging.c
@@ -5,12 +5,21 @@
* Distributed under terms of the GPL3 license.
*/
+#ifdef __APPLE__
+#include <AvailabilityMacros.h>
+#endif
+#if defined(__APPLE__) && defined(MAC_OS_X_VERSION_10_12) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12
+#define USE_APPLE_OS_LOG 1
+#else
+#define USE_APPLE_OS_LOG 0
+#endif
+
#include "data-types.h"
#include <stdlib.h>
#include <stdarg.h>
#include <time.h>
#include <sys/time.h>
-#ifdef __APPLE__
+#if USE_APPLE_OS_LOG
#include <os/log.h>
#endif
@@ -21,7 +30,7 @@ void
log_error(const char *fmt, ...) {
va_list ar;
struct timeval tv;
-#ifdef __APPLE__
+#if USE_APPLE_OS_LOG
// Apple does not provide a varargs style os_logv
char logbuf[16 * 1024] = {0};
#else
@@ -44,7 +53,7 @@ log_error(const char *fmt, ...) {
if (use_os_log) { bufprint(vsnprintf, fmt, ar); }
else vfprintf(stderr, fmt, ar);
va_end(ar);
-#ifdef __APPLE__
+#if USE_APPLE_OS_LOG
if (use_os_log) os_log(OS_LOG_DEFAULT, "%{public}s", logbuf);
#endif
if (!use_os_log) fprintf(stderr, "\n");
@@ -66,7 +75,7 @@ static PyMethodDef module_methods[] = {
bool
init_logging(PyObject *module) {
if (PyModule_AddFunctions(module, module_methods) != 0) return false;
-#ifdef __APPLE__
+#if USE_APPLE_OS_LOG
if (getenv("KITTY_LAUNCHED_BY_LAUNCH_SERVICES") != NULL) use_os_log = true;
#endif
return true;
diff --git a/setup.py b/setup.py
index f8643fce..55a96e73 100755
--- a/setup.py
+++ b/setup.py
@@ -711,7 +711,7 @@ Categories=System;TerminalEmulator;
CFBundlePackageType='APPL',
CFBundleSignature='????',
CFBundleExecutable=appname,
- LSMinimumSystemVersion='10.12.0',
+ LSMinimumSystemVersion='10.11.0',
LSRequiresNativeExecution=True,
NSAppleScriptEnabled=False,
# Needed for dark mode in Mojave when linking against older SDKs