forked from mirrors/nixpkgs
75aa8460ac
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).
117 lines
3.9 KiB
Diff
117 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
|