treewide: remove old patches for macOS
These shouldn’t be needed now that we are on macOS 10.12.
This commit is contained in:
parent
5fad67d361
commit
0fe315c9b6
@ -153,15 +153,9 @@ stdenv.mkDerivation rec {
|
|||||||
]
|
]
|
||||||
++ lib.optionals (!isTorBrowserLike) [
|
++ lib.optionals (!isTorBrowserLike) [
|
||||||
"-I${nss.dev}/include/nss"
|
"-I${nss.dev}/include/nss"
|
||||||
]
|
|
||||||
++ lib.optional stdenv.isDarwin [
|
|
||||||
"-isystem ${llvmPackages.libcxx}/include/c++/v1"
|
|
||||||
"-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = lib.optionalString stdenv.isDarwin ''
|
postPatch = lib.optionalString (lib.versionAtLeast ffversion "63.0" && !isTorBrowserLike) ''
|
||||||
substituteInPlace js/src/jsmath.cpp --replace 'defined(HAVE___SINCOS)' 0
|
|
||||||
'' + lib.optionalString (lib.versionAtLeast ffversion "63.0" && !isTorBrowserLike) ''
|
|
||||||
substituteInPlace third_party/prio/prio/rand.c --replace 'nspr/prinit.h' 'prinit.h'
|
substituteInPlace third_party/prio/prio/rand.c --replace 'nspr/prinit.h' 'prinit.h'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -1,74 +0,0 @@
|
|||||||
commit f00c7bccf7955b7dfbb4859fd9019e9eb3349f2d
|
|
||||||
Author: Tobias Mayer <tobim@fastmail.fm>
|
|
||||||
Date: Wed Feb 13 12:44:17 2019 +0100
|
|
||||||
|
|
||||||
Provide clock_gettime for xray on macos < 10.12
|
|
||||||
|
|
||||||
diff --git a/lib/xray/xray_basic_logging.cc b/lib/xray/xray_basic_logging.cc
|
|
||||||
index a46c151af..38aea6932 100644
|
|
||||||
--- a/lib/xray/xray_basic_logging.cc
|
|
||||||
+++ b/lib/xray/xray_basic_logging.cc
|
|
||||||
@@ -36,6 +36,29 @@
|
|
||||||
#include "xray_tsc.h"
|
|
||||||
#include "xray_utils.h"
|
|
||||||
|
|
||||||
+#if __MACH__
|
|
||||||
+#include <mach/clock.h>
|
|
||||||
+#include <mach/mach.h>
|
|
||||||
+enum clockid_t {
|
|
||||||
+ CLOCK_MONOTONIC = REALTIME_CLOCK,
|
|
||||||
+ CLOCK_REALTIME = REALTIME_CLOCK
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+int clock_gettime(clockid_t clock_id, struct timespec *ts) {
|
|
||||||
+ if (ts != NULL) {
|
|
||||||
+ clock_serv_t cclock;
|
|
||||||
+ mach_timespec_t mts;
|
|
||||||
+ host_get_clock_service(mach_host_self(), clock_id, &cclock);
|
|
||||||
+ clock_get_time(cclock, &mts);
|
|
||||||
+ mach_port_deallocate(mach_task_self(), cclock);
|
|
||||||
+ ts->tv_sec = mts.tv_sec;
|
|
||||||
+ ts->tv_nsec = mts.tv_nsec;
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+ return -1;
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
namespace __xray {
|
|
||||||
|
|
||||||
SpinMutex LogMutex;
|
|
||||||
diff --git a/lib/xray/xray_fdr_logging.cc b/lib/xray/xray_fdr_logging.cc
|
|
||||||
index 4b308b27f..1d044c8fd 100644
|
|
||||||
--- a/lib/xray/xray_fdr_logging.cc
|
|
||||||
+++ b/lib/xray/xray_fdr_logging.cc
|
|
||||||
@@ -38,6 +38,29 @@
|
|
||||||
#include "xray_tsc.h"
|
|
||||||
#include "xray_utils.h"
|
|
||||||
|
|
||||||
+#if __MACH__
|
|
||||||
+#include <mach/clock.h>
|
|
||||||
+#include <mach/mach.h>
|
|
||||||
+enum clockid_t {
|
|
||||||
+ CLOCK_MONOTONIC = REALTIME_CLOCK,
|
|
||||||
+ CLOCK_REALTIME = REALTIME_CLOCK
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+int clock_gettime(clockid_t clock_id, struct timespec *ts) {
|
|
||||||
+ if (ts != NULL) {
|
|
||||||
+ clock_serv_t cclock;
|
|
||||||
+ mach_timespec_t mts;
|
|
||||||
+ host_get_clock_service(mach_host_self(), clock_id, &cclock);
|
|
||||||
+ clock_get_time(cclock, &mts);
|
|
||||||
+ mach_port_deallocate(mach_task_self(), cclock);
|
|
||||||
+ ts->tv_sec = mts.tv_sec;
|
|
||||||
+ ts->tv_nsec = mts.tv_nsec;
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+ return -1;
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
namespace __xray {
|
|
||||||
|
|
||||||
atomic_sint32_t LoggingStatus = {XRayLogInitStatus::XRAY_LOG_UNINITIALIZED};
|
|
@ -26,9 +26,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
|
./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
|
||||||
] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
|
] ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./crtbegin-and-end.patch
|
||||||
++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./crtbegin-and-end.patch
|
++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch;
|
||||||
++ stdenv.lib.optional stdenv.hostPlatform.isDarwin ./compiler-rt-clock_gettime.patch;
|
|
||||||
|
|
||||||
# TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
|
# TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
|
||||||
# to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
|
# to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
|
||||||
|
@ -14,17 +14,12 @@ stdenv.mkDerivation rec {
|
|||||||
buildInputs = [ libpthreadstubs libpciaccess valgrind-light ];
|
buildInputs = [ libpthreadstubs libpciaccess valgrind-light ];
|
||||||
# libdrm as of 2.4.70 does not actually do anything with udev.
|
# libdrm as of 2.4.70 does not actually do anything with udev.
|
||||||
|
|
||||||
patches = stdenv.lib.optional stdenv.isDarwin ./libdrm-apple.patch;
|
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
for a in */*-symbol-check ; do
|
for a in */*-symbol-check ; do
|
||||||
patchShebangs $a
|
patchShebangs $a
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preConfigure = stdenv.lib.optionalString stdenv.isDarwin
|
|
||||||
"echo : \\\${ac_cv_func_clock_gettime=\'yes\'} > config.cache";
|
|
||||||
|
|
||||||
configureFlags = [ "--enable-install-test-programs" ]
|
configureFlags = [ "--enable-install-test-programs" ]
|
||||||
++ stdenv.lib.optionals (stdenv.isAarch32 || stdenv.isAarch64)
|
++ stdenv.lib.optionals (stdenv.isAarch32 || stdenv.isAarch64)
|
||||||
[ "--enable-tegra-experimental-api" "--enable-etnaviv-experimental-api" ]
|
[ "--enable-tegra-experimental-api" "--enable-etnaviv-experimental-api" ]
|
||||||
|
@ -1,88 +0,0 @@
|
|||||||
diff -Naur libdrm-2.4.26-orig/intel/intel_bufmgr_gem.c libdrm-2.4.26/intel/intel_bufmgr_gem.c
|
|
||||||
--- libdrm-2.4.26-orig/intel/intel_bufmgr_gem.c 2011-04-01 10:30:51.000000000 -0400
|
|
||||||
+++ libdrm-2.4.26/intel/intel_bufmgr_gem.c 2011-08-29 02:17:20.000000000 -0400
|
|
||||||
@@ -51,6 +51,7 @@
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <stdbool.h>
|
|
||||||
+#include <sys/time.h>
|
|
||||||
|
|
||||||
#include "errno.h"
|
|
||||||
#include "libdrm_lists.h"
|
|
||||||
@@ -987,9 +988,9 @@
|
|
||||||
if (atomic_dec_and_test(&bo_gem->refcount)) {
|
|
||||||
drm_intel_bufmgr_gem *bufmgr_gem =
|
|
||||||
(drm_intel_bufmgr_gem *) bo->bufmgr;
|
|
||||||
- struct timespec time;
|
|
||||||
+ struct timeval time;
|
|
||||||
|
|
||||||
- clock_gettime(CLOCK_MONOTONIC, &time);
|
|
||||||
+ gettimeofday(&time, NULL);
|
|
||||||
|
|
||||||
pthread_mutex_lock(&bufmgr_gem->lock);
|
|
||||||
drm_intel_gem_bo_unreference_final(bo, time.tv_sec);
|
|
||||||
diff -Naur libdrm-2.4.26-orig/xf86drm.c libdrm-2.4.26/xf86drm.c
|
|
||||||
--- libdrm-2.4.26-orig/xf86drm.c 2011-03-21 09:39:24.000000000 -0400
|
|
||||||
+++ libdrm-2.4.26/xf86drm.c 2011-08-29 02:17:49.000000000 -0400
|
|
||||||
@@ -51,6 +51,9 @@
|
|
||||||
#include <sys/mman.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
+#if defined(__APPLE__) && defined(__MACH__)
|
|
||||||
+#include <mach/mach_time.h>
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/* Not all systems have MAP_FAILED defined */
|
|
||||||
#ifndef MAP_FAILED
|
|
||||||
@@ -1941,20 +1944,43 @@
|
|
||||||
*/
|
|
||||||
int drmWaitVBlank(int fd, drmVBlankPtr vbl)
|
|
||||||
{
|
|
||||||
+#if defined(__APPLE__) && defined(__MACH__)
|
|
||||||
+ uint64_t start, end, elapsed, elapsedNano;
|
|
||||||
+ static const uint64_t maxElapsed = 2000000000;
|
|
||||||
+ static mach_timebase_info_data_t timebaseInfo;
|
|
||||||
+ if ( timebaseInfo.denom == 0 ) {
|
|
||||||
+ (void) mach_timebase_info(&timebaseInfo);
|
|
||||||
+ }
|
|
||||||
+#else
|
|
||||||
struct timespec timeout, cur;
|
|
||||||
+#endif
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
+#if defined(__APPLE__) && defined(__MACH__)
|
|
||||||
+ start = mach_absolute_time();
|
|
||||||
+#else
|
|
||||||
ret = clock_gettime(CLOCK_MONOTONIC, &timeout);
|
|
||||||
if (ret < 0) {
|
|
||||||
fprintf(stderr, "clock_gettime failed: %s\n", strerror(ret));
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
timeout.tv_sec++;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
do {
|
|
||||||
ret = ioctl(fd, DRM_IOCTL_WAIT_VBLANK, vbl);
|
|
||||||
vbl->request.type &= ~DRM_VBLANK_RELATIVE;
|
|
||||||
if (ret && errno == EINTR) {
|
|
||||||
+#if defined(__APPLE__) && defined(__MACH__)
|
|
||||||
+ end = mach_absolute_time();
|
|
||||||
+ elapsed = end - start;
|
|
||||||
+ elapsedNano = elapsed * timebaseInfo.numer / timebaseInfo.denom;
|
|
||||||
+ if (elapsedNano > maxElapsed) {
|
|
||||||
+ errno = EBUSY;
|
|
||||||
+ ret = -1;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+#else
|
|
||||||
clock_gettime(CLOCK_MONOTONIC, &cur);
|
|
||||||
/* Timeout after 1s */
|
|
||||||
if (cur.tv_sec > timeout.tv_sec + 1 ||
|
|
||||||
@@ -1964,6 +1990,7 @@
|
|
||||||
ret = -1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
} while (ret && errno == EINTR);
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
|||||||
Adapted from https://github.com/zcash/libsnark/pull/10
|
|
||||||
|
|
||||||
diff --git a/depends/libff/libff/common/profiling.cpp b/depends/libff/libff/common/profiling.cpp
|
|
||||||
index f2a1985..319149c 100755
|
|
||||||
--- a/depends/libff/libff/common/profiling.cpp
|
|
||||||
+++ b/depends/libff/libff/common/profiling.cpp
|
|
||||||
@@ -27,6 +27,13 @@
|
|
||||||
#include <proc/readproc.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifdef __MACH__
|
|
||||||
+#include <time.h>
|
|
||||||
+#include <sys/time.h>
|
|
||||||
+#include <mach/clock.h>
|
|
||||||
+#include <mach/mach.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
namespace libff {
|
|
||||||
|
|
||||||
long long get_nsec_time()
|
|
||||||
@@ -42,10 +49,20 @@ long long get_nsec_cpu_time()
|
|
||||||
return 0;
|
|
||||||
#else
|
|
||||||
::timespec ts;
|
|
||||||
+#ifdef __MACH__
|
|
||||||
+ clock_serv_t cclock;
|
|
||||||
+ mach_timespec_t mts;
|
|
||||||
+ host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
|
|
||||||
+ clock_get_time(cclock, &mts);
|
|
||||||
+ mach_port_deallocate(mach_task_self(), cclock);
|
|
||||||
+ ts.tv_sec = mts.tv_sec;
|
|
||||||
+ ts.tv_nsec = mts.tv_nsec;
|
|
||||||
+#else
|
|
||||||
if ( ::clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts) )
|
|
||||||
throw ::std::runtime_error("clock_gettime(CLOCK_PROCESS_CPUTIME_ID) failed");
|
|
||||||
// If we expected this to work, don't silently ignore failures, because that would hide the problem and incur an unnecessarily system-call overhead. So if we ever observe this exception, we should probably add a suitable #ifdef .
|
|
||||||
//TODO: clock_gettime(CLOCK_PROCESS_CPUTIME_ID) is not supported by native Windows. What about Cygwin? Should we #ifdef on CLOCK_PROCESS_CPUTIME_ID or on __linux__?
|
|
||||||
+#endif
|
|
||||||
return ts.tv_sec * 1000000000ll + ts.tv_nsec;
|
|
||||||
#endif
|
|
||||||
}
|
|
@ -19,8 +19,6 @@ in stdenv.mkDerivation rec {
|
|||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./darwin-fix-clock-gettime.patch ];
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
@ -1,76 +0,0 @@
|
|||||||
diff --git a/include/c11/threads_posix.h b/include/c11/threads_posix.h
|
|
||||||
index 45cb6075e6..62937311b9 100644
|
|
||||||
--- a/include/c11/threads_posix.h
|
|
||||||
+++ b/include/c11/threads_posix.h
|
|
||||||
@@ -36,6 +36,11 @@
|
|
||||||
#include <sched.h>
|
|
||||||
#include <stdint.h> /* for intptr_t */
|
|
||||||
|
|
||||||
+#ifdef __MACH__
|
|
||||||
+#include <mach/clock.h>
|
|
||||||
+#include <mach/mach.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
Configuration macro:
|
|
||||||
|
|
||||||
@@ -383,12 +388,25 @@ tss_set(tss_t key, void *val)
|
|
||||||
/*-------------------- 7.25.7 Time functions --------------------*/
|
|
||||||
// 7.25.6.1
|
|
||||||
#ifndef HAVE_TIMESPEC_GET
|
|
||||||
+
|
|
||||||
static inline int
|
|
||||||
timespec_get(struct timespec *ts, int base)
|
|
||||||
{
|
|
||||||
if (!ts) return 0;
|
|
||||||
if (base == TIME_UTC) {
|
|
||||||
+#ifdef __MACH__
|
|
||||||
+ if (ts != NULL) {
|
|
||||||
+ clock_serv_t cclock;
|
|
||||||
+ mach_timespec_t mts;
|
|
||||||
+ host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
|
|
||||||
+ clock_get_time(cclock, &mts);
|
|
||||||
+ mach_port_deallocate(mach_task_self(), cclock);
|
|
||||||
+ ts->tv_sec = mts.tv_sec;
|
|
||||||
+ ts->tv_nsec = mts.tv_nsec;
|
|
||||||
+ }
|
|
||||||
+#else
|
|
||||||
clock_gettime(CLOCK_REALTIME, ts);
|
|
||||||
+#endif
|
|
||||||
return base;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
|
|
||||||
index 1208ebb315..e1378fb1f0 100644
|
|
||||||
--- a/src/egl/drivers/dri2/egl_dri2.c
|
|
||||||
+++ b/src/egl/drivers/dri2/egl_dri2.c
|
|
||||||
@@ -65,6 +65,11 @@
|
|
||||||
#include "util/u_vector.h"
|
|
||||||
#include "mapi/glapi/glapi.h"
|
|
||||||
|
|
||||||
+#ifdef __MACH__
|
|
||||||
+#include <mach/clock.h>
|
|
||||||
+#include <mach/mach.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#define NUM_ATTRIBS 12
|
|
||||||
|
|
||||||
static void
|
|
||||||
@@ -3092,7 +3097,17 @@ dri2_client_wait_sync(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSync *sync,
|
|
||||||
|
|
||||||
/* We override the clock to monotonic when creating the condition
|
|
||||||
* variable. */
|
|
||||||
+#ifdef __MACH__
|
|
||||||
+ clock_serv_t cclock;
|
|
||||||
+ mach_timespec_t mts;
|
|
||||||
+ host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
|
|
||||||
+ clock_get_time(cclock, &mts);
|
|
||||||
+ mach_port_deallocate(mach_task_self(), cclock);
|
|
||||||
+ current.tv_sec = mts.tv_sec;
|
|
||||||
+ current.tv_nsec = mts.tv_nsec;
|
|
||||||
+#else
|
|
||||||
clock_gettime(CLOCK_MONOTONIC, ¤t);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/* calculating when to expire */
|
|
||||||
expire.tv_nsec = timeout % 1000000000L;
|
|
@ -93,7 +93,7 @@ let self = stdenv.mkDerivation {
|
|||||||
./symlink-drivers.patch
|
./symlink-drivers.patch
|
||||||
./missing-includes.patch # dev_t needs sys/stat.h, time_t needs time.h, etc.-- fixes build w/musl
|
./missing-includes.patch # dev_t needs sys/stat.h, time_t needs time.h, etc.-- fixes build w/musl
|
||||||
./disk_cache-include-dri-driver-path-in-cache-key.patch
|
./disk_cache-include-dri-driver-path-in-cache-key.patch
|
||||||
] ++ lib.optional stdenv.isDarwin ./darwin-clock-gettime.patch;
|
];
|
||||||
|
|
||||||
outputs = [ "out" "dev" "drivers" ]
|
outputs = [ "out" "dev" "drivers" ]
|
||||||
++ lib.optional (elem "swrast" galliumDrivers) "osmesa";
|
++ lib.optional (elem "swrast" galliumDrivers) "osmesa";
|
||||||
|
@ -51,29 +51,17 @@ let
|
|||||||
patches = {
|
patches = {
|
||||||
qtbase = [
|
qtbase = [
|
||||||
./qtbase.patch
|
./qtbase.patch
|
||||||
./qtbase-darwin.patch
|
|
||||||
./qtbase-revert-no-macos10.10.patch
|
|
||||||
./qtbase-fixguicmake.patch
|
./qtbase-fixguicmake.patch
|
||||||
] ++ optionals stdenv.isDarwin [
|
|
||||||
./qtbase-darwin-nseventtype.patch
|
|
||||||
./qtbase-darwin-revert-69221.patch
|
|
||||||
];
|
];
|
||||||
qtdeclarative = [ ./qtdeclarative.patch ];
|
qtdeclarative = [ ./qtdeclarative.patch ];
|
||||||
qtscript = [ ./qtscript.patch ];
|
qtscript = [ ./qtscript.patch ];
|
||||||
qtserialport = [ ./qtserialport.patch ];
|
qtserialport = [ ./qtserialport.patch ];
|
||||||
qttools = [ ./qttools.patch ];
|
qttools = [ ./qttools.patch ];
|
||||||
qtwebengine = [ ./qtwebengine-no-build-skip.patch ]
|
qtwebengine = [
|
||||||
++ optional stdenv.cc.isClang ./qtwebengine-clang-fix.patch
|
./qtwebengine-no-build-skip.patch
|
||||||
++ optionals stdenv.isDarwin [
|
./qtwebengine-darwin-no-platform-check.patch
|
||||||
./qtwebengine-darwin-no-platform-check.patch
|
];
|
||||||
./qtwebengine-darwin-sdk-10.10.patch
|
qtwebkit = [ ./qtwebkit.patch ];
|
||||||
./qtwebengine-darwin-old-sdk.patch
|
|
||||||
];
|
|
||||||
qtwebkit = [ ./qtwebkit.patch ]
|
|
||||||
++ optionals stdenv.isDarwin [
|
|
||||||
./qtwebkit-darwin-no-readline.patch
|
|
||||||
./qtwebkit-darwin-no-qos-classes.patch
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
mkDerivation =
|
mkDerivation =
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
@@ -404,8 +404,8 @@ void QCocoaWindow::setVisible(bool visible)
|
|
||||||
removeMonitor();
|
|
||||||
monitor = [NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDownMask|NSRightMouseDownMask|NSOtherMouseDownMask|NSMouseMovedMask handler:^(NSEvent *e) {
|
|
||||||
QPointF localPoint = QCocoaScreen::mapFromNative([NSEvent mouseLocation]);
|
|
||||||
- const auto button = e.type == NSEventTypeMouseMoved ? Qt::NoButton : cocoaButton2QtButton([e buttonNumber]);
|
|
||||||
- const auto eventType = e.type == NSEventTypeMouseMoved ? QEvent::MouseMove : QEvent::MouseButtonPress;
|
|
||||||
+ const auto button = e.type == NSMouseMoved ? Qt::NoButton : cocoaButton2QtButton([e buttonNumber]);
|
|
||||||
+ const auto eventType = e.type == NSMouseMoved ? QEvent::MouseMove : QEvent::MouseButtonPress;
|
|
||||||
QWindowSystemInterface::handleMouseEvent(window(), window()->mapFromGlobal(localPoint.toPoint()), localPoint,
|
|
||||||
Qt::MouseButtons(uint(NSEvent.pressedMouseButtons & 0xFFFF)), button, eventType);
|
|
||||||
}];
|
|
@ -1,73 +0,0 @@
|
|||||||
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
index 00c3f7c22c..94d35f59d6 100644
|
|
||||||
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
@@ -1355,15 +1355,6 @@ QCocoaNSWindow *QCocoaWindow::createNSWindow(bool shouldBePanel)
|
|
||||||
{
|
|
||||||
QMacAutoReleasePool pool;
|
|
||||||
|
|
||||||
- Qt::WindowType type = window()->type();
|
|
||||||
- Qt::WindowFlags flags = window()->flags();
|
|
||||||
-
|
|
||||||
- // Note: The macOS window manager has a bug, where if a screen is rotated, it will not allow
|
|
||||||
- // a window to be created within the area of the screen that has a Y coordinate (I quadrant)
|
|
||||||
- // higher than the height of the screen in its non-rotated state, unless the window is
|
|
||||||
- // created with the NSWindowStyleMaskBorderless style mask.
|
|
||||||
- NSWindowStyleMask styleMask = windowStyleMask(flags);
|
|
||||||
-
|
|
||||||
QRect rect = geometry();
|
|
||||||
|
|
||||||
QScreen *targetScreen = nullptr;
|
|
||||||
@@ -1375,22 +1366,26 @@ QCocoaNSWindow *QCocoaWindow::createNSWindow(bool shouldBePanel)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!targetScreen) {
|
|
||||||
- qCWarning(lcQpaCocoaWindow) << "Window position" << rect << "outside any known screen, using primary screen";
|
|
||||||
+ qCWarning(lcQpaCocoaWindow) << "Window position outside any known screen, using primary screen";
|
|
||||||
targetScreen = QGuiApplication::primaryScreen();
|
|
||||||
- // AppKit will only reposition a window that's outside the target screen area if
|
|
||||||
- // the window has a title bar. If left out, the window ends up with no screen.
|
|
||||||
- // The style mask will be corrected to the original style mask in setWindowFlags.
|
|
||||||
- styleMask |= NSWindowStyleMaskTitled;
|
|
||||||
}
|
|
||||||
|
|
||||||
rect.translate(-targetScreen->geometry().topLeft());
|
|
||||||
QCocoaScreen *cocoaScreen = static_cast<QCocoaScreen *>(targetScreen->handle());
|
|
||||||
NSRect frame = QCocoaScreen::mapToNative(rect, cocoaScreen);
|
|
||||||
|
|
||||||
+ // Note: The macOS window manager has a bug, where if a screen is rotated, it will not allow
|
|
||||||
+ // a window to be created within the area of the screen that has a Y coordinate (I quadrant)
|
|
||||||
+ // higher than the height of the screen in its non-rotated state, unless the window is
|
|
||||||
+ // created with the NSWindowStyleMaskBorderless style mask.
|
|
||||||
+
|
|
||||||
+ Qt::WindowType type = window()->type();
|
|
||||||
+ Qt::WindowFlags flags = window()->flags();
|
|
||||||
+
|
|
||||||
// Create NSWindow
|
|
||||||
Class windowClass = shouldBePanel ? [QNSPanel class] : [QNSWindow class];
|
|
||||||
QCocoaNSWindow *nsWindow = [[windowClass alloc] initWithContentRect:frame
|
|
||||||
- styleMask:styleMask
|
|
||||||
+ styleMask:windowStyleMask(flags)
|
|
||||||
// Deferring window creation breaks OpenGL (the GL context is
|
|
||||||
// set up before the window is shown and needs a proper window)
|
|
||||||
backing:NSBackingStoreBuffered defer:NO
|
|
||||||
@@ -1399,9 +1394,6 @@ QCocoaNSWindow *QCocoaWindow::createNSWindow(bool shouldBePanel)
|
|
||||||
Q_ASSERT_X(nsWindow.screen == cocoaScreen->nativeScreen(), "QCocoaWindow",
|
|
||||||
"Resulting NSScreen should match the requested NSScreen");
|
|
||||||
|
|
||||||
- if (targetScreen != window()->screen())
|
|
||||||
- QWindowSystemInterface::handleWindowScreenChanged(window(), targetScreen);
|
|
||||||
-
|
|
||||||
nsWindow.delegate = [[QNSWindowDelegate alloc] initWithQCocoaWindow:this];
|
|
||||||
|
|
||||||
// Prevent Cocoa from releasing the window on close. Qt
|
|
||||||
@@ -1421,6 +1413,9 @@ QCocoaNSWindow *QCocoaWindow::createNSWindow(bool shouldBePanel)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (targetScreen != window()->screen())
|
|
||||||
+ QWindowSystemInterface::handleWindowScreenChanged(window(), targetScreen);
|
|
||||||
+
|
|
||||||
nsWindow.restorable = NO;
|
|
||||||
nsWindow.level = windowLevel(flags);
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
|||||||
diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm
|
|
||||||
index 341d3bccf2..3368234c26 100644
|
|
||||||
--- a/src/plugins/bearer/corewlan/qcorewlanengine.mm
|
|
||||||
+++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm
|
|
||||||
@@ -287,7 +287,7 @@ void QScanThread::getUserConfigurations()
|
|
||||||
QMacAutoReleasePool pool;
|
|
||||||
userProfiles.clear();
|
|
||||||
|
|
||||||
- NSArray<NSString *> *wifiInterfaces = [CWWiFiClient interfaceNames];
|
|
||||||
+ NSArray *wifiInterfaces = [CWWiFiClient interfaceNames];
|
|
||||||
for (NSString *ifName in wifiInterfaces) {
|
|
||||||
|
|
||||||
CWInterface *wifiInterface = [[CWWiFiClient sharedWiFiClient] interfaceWithName:ifName];
|
|
||||||
@@ -602,7 +602,7 @@ void QCoreWlanEngine::doRequestUpdate()
|
|
||||||
|
|
||||||
QMacAutoReleasePool pool;
|
|
||||||
|
|
||||||
- NSArray<NSString *> *wifiInterfaces = [CWWiFiClient interfaceNames];
|
|
||||||
+ NSArray *wifiInterfaces = [CWWiFiClient interfaceNames];
|
|
||||||
for (NSString *ifName in wifiInterfaces) {
|
|
||||||
scanThread->interfaceName = QString::fromNSString(ifName);
|
|
||||||
scanThread->start();
|
|
||||||
diff --git a/src/plugins/platforms/cocoa/qcocoascreen.mm b/src/plugins/platforms/cocoa/qcocoascreen.mm
|
|
||||||
index a17a02b629..d76c42fa03 100644
|
|
||||||
--- a/src/plugins/platforms/cocoa/qcocoascreen.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qcocoascreen.mm
|
|
||||||
@@ -114,7 +114,7 @@ void QCocoaScreen::updateGeometry()
|
|
||||||
return;
|
|
||||||
|
|
||||||
// The reference screen for the geometry is always the primary screen
|
|
||||||
- QRectF primaryScreenGeometry = QRectF::fromCGRect([[NSScreen screens] firstObject].frame);
|
|
||||||
+ QRectF primaryScreenGeometry = QRectF::fromCGRect([[[NSScreen screens] firstObject] frame]);
|
|
||||||
m_geometry = qt_mac_flip(QRectF::fromCGRect(nsScreen.frame), primaryScreenGeometry).toRect();
|
|
||||||
m_availableGeometry = qt_mac_flip(QRectF::fromCGRect(nsScreen.visibleFrame), primaryScreenGeometry).toRect();
|
|
||||||
|
|
||||||
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
index 72f3bc0075..a9c058a850 100644
|
|
||||||
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
@@ -1676,7 +1676,7 @@ void QCocoaWindow::applyContentBorderThickness(NSWindow *window)
|
|
||||||
|
|
||||||
if (!m_drawContentBorderGradient) {
|
|
||||||
window.styleMask = window.styleMask & ~NSTexturedBackgroundWindowMask;
|
|
||||||
- [window.contentView.superview setNeedsDisplay:YES];
|
|
||||||
+ [[window.contentView superview] setNeedsDisplay:YES];
|
|
||||||
window.titlebarAppearsTransparent = NO;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
diff --git a/src/plugins/platforms/cocoa/qnswindow.mm b/src/plugins/platforms/cocoa/qnswindow.mm
|
|
||||||
index cb13b7d184..0159d68dca 100644
|
|
||||||
--- a/src/plugins/platforms/cocoa/qnswindow.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qnswindow.mm
|
|
||||||
@@ -231,7 +231,7 @@ static bool isMouseEvent(NSEvent *ev)
|
|
||||||
if (pw->frameStrutEventsEnabled() && isMouseEvent(theEvent)) {
|
|
||||||
NSPoint loc = [theEvent locationInWindow];
|
|
||||||
NSRect windowFrame = [self convertRectFromScreen:self.frame];
|
|
||||||
- NSRect contentFrame = self.contentView.frame;
|
|
||||||
+ NSRect contentFrame = [self.contentView frame];
|
|
||||||
if (NSMouseInRect(loc, windowFrame, NO) && !NSMouseInRect(loc, contentFrame, NO))
|
|
||||||
[qnsview_cast(pw->view()) handleFrameStrutMouseEvent:theEvent];
|
|
||||||
}
|
|
||||||
@@ -260,7 +260,7 @@ static bool isMouseEvent(NSEvent *ev)
|
|
||||||
+ (void)applicationActivationChanged:(NSNotification*)notification
|
|
||||||
{
|
|
||||||
const id sender = self;
|
|
||||||
- NSEnumerator<NSWindow*> *windowEnumerator = nullptr;
|
|
||||||
+ NSEnumerator *windowEnumerator = nullptr;
|
|
||||||
NSApplication *application = [NSApplication sharedApplication];
|
|
||||||
|
|
||||||
#if QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_12)
|
|
@ -1,102 +0,0 @@
|
|||||||
Revert "Remove code paths for macOS < 10.11"
|
|
||||||
|
|
||||||
This reverts commit 138a65e0cfa80b13fd018a01e7d8b33341a3cfd3.
|
|
||||||
|
|
||||||
From 138a65e0cfa80b13fd018a01e7d8b33341a3cfd3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jake Petroules <jake.petroules@qt.io>
|
|
||||||
Date: Thu, 8 Feb 2018 11:05:42 -0800
|
|
||||||
Subject: [PATCH] Remove code paths for macOS < 10.11
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Change-Id: I5ae02d88aa3dcd97d1f2ebf6255a68643e5d6daa
|
|
||||||
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
||||||
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
|
|
||||||
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
|
||||||
---
|
|
||||||
.../fontdatabases/mac/qfontengine_coretext.mm | 16 +++-------------
|
|
||||||
src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm | 6 +-----
|
|
||||||
src/plugins/platforms/cocoa/qnswindowdelegate.mm | 16 ----------------
|
|
||||||
3 files changed, 4 insertions(+), 34 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
|
|
||||||
index 98b753eff9..489d9cd031 100644
|
|
||||||
--- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
|
|
||||||
+++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
|
|
||||||
@@ -47,18 +47,28 @@
|
|
||||||
|
|
||||||
#include <cmath>
|
|
||||||
|
|
||||||
-#if defined(Q_OS_MACOS)
|
|
||||||
+#if defined(Q_OS_OSX) && !QT_OSX_DEPLOYMENT_TARGET_BELOW(__MAC_10_11)
|
|
||||||
#import <AppKit/AppKit.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#if defined(QT_PLATFORM_UIKIT)
|
|
||||||
+#if defined(QT_PLATFORM_UIKIT) && !QT_IOS_DEPLOYMENT_TARGET_BELOW(__IPHONE_8_2)
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// These are available cross platform, exported as kCTFontWeightXXX from CoreText.framework,
|
|
||||||
// but they are not documented and are not in public headers so are private API and exposed
|
|
||||||
// only through the NSFontWeightXXX and UIFontWeightXXX aliases in AppKit and UIKit (rdar://26109857)
|
|
||||||
-#if defined(Q_OS_MACOS)
|
|
||||||
+#if QT_MAC_DEPLOYMENT_TARGET_BELOW(__MAC_10_11, __IPHONE_8_2)
|
|
||||||
+#define kCTFontWeightUltraLight -0.8
|
|
||||||
+#define kCTFontWeightThin -0.6
|
|
||||||
+#define kCTFontWeightLight -0.4
|
|
||||||
+#define kCTFontWeightRegular 0
|
|
||||||
+#define kCTFontWeightMedium 0.23
|
|
||||||
+#define kCTFontWeightSemibold 0.3
|
|
||||||
+#define kCTFontWeightBold 0.4
|
|
||||||
+#define kCTFontWeightHeavy 0.56
|
|
||||||
+#define kCTFontWeightBlack 0.62
|
|
||||||
+#elif defined(Q_OS_OSX)
|
|
||||||
#define kCTFontWeightUltraLight NSFontWeightUltraLight
|
|
||||||
#define kCTFontWeightThin NSFontWeightThin
|
|
||||||
#define kCTFontWeightLight NSFontWeightLight
|
|
||||||
diff --git a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
|
|
||||||
index 94f2125bad..272cd9f3dc 100644
|
|
||||||
--- a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
|
|
||||||
@@ -162,7 +162,11 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSOpenSavePanelDelegate);
|
|
||||||
// resetting our mCurrentDir, set the delegate
|
|
||||||
// here to make sure it gets the correct value.
|
|
||||||
[mSavePanel setDelegate:self];
|
|
||||||
- mOpenPanel.accessoryViewDisclosed = YES;
|
|
||||||
+
|
|
||||||
+#if QT_OSX_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_11)
|
|
||||||
+ if (__builtin_available(macOS 10.11, *))
|
|
||||||
+ mOpenPanel.accessoryViewDisclosed = YES;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
if (mOptions->isLabelExplicitlySet(QFileDialogOptions::Accept))
|
|
||||||
[mSavePanel setPrompt:[self strip:options->labelText(QFileDialogOptions::Accept)]];
|
|
||||||
diff --git a/src/plugins/platforms/cocoa/qnswindowdelegate.mm b/src/plugins/platforms/cocoa/qnswindowdelegate.mm
|
|
||||||
index 057a4c2943..eb55e50622 100644
|
|
||||||
--- a/src/plugins/platforms/cocoa/qnswindowdelegate.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qnswindowdelegate.mm
|
|
||||||
@@ -103,6 +103,22 @@ static QRegExp whitespaceRegex = QRegExp(QStringLiteral("\\s*"));
|
|
||||||
return QCocoaScreen::mapToNative(maximizedFrame);
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if QT_MACOS_DEPLOYMENT_TARGET_BELOW(__MAC_10_11)
|
|
||||||
+/*
|
|
||||||
+ AppKit on OS X 10.10 wrongly calls windowWillUseStandardFrame:defaultFrame
|
|
||||||
+ from -[NSWindow _frameForFullScreenMode] when going into fullscreen, resulting
|
|
||||||
+ in black bars on top and bottom of the window. By implementing the following
|
|
||||||
+ method, AppKit will choose that instead, and resolve the right fullscreen
|
|
||||||
+ geometry.
|
|
||||||
+*/
|
|
||||||
+- (NSSize)window:(NSWindow *)window willUseFullScreenContentSize:(NSSize)proposedSize
|
|
||||||
+{
|
|
||||||
+ Q_UNUSED(proposedSize);
|
|
||||||
+ Q_ASSERT(window == m_cocoaWindow->nativeWindow());
|
|
||||||
+ return NSSizeFromCGSize(m_cocoaWindow->screen()->geometry().size().toCGSize());
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
- (BOOL)window:(NSWindow *)window shouldPopUpDocumentPathMenu:(NSMenu *)menu
|
|
||||||
{
|
|
||||||
Q_UNUSED(window);
|
|
@ -1,30 +0,0 @@
|
|||||||
Fix a following build error:
|
|
||||||
|
|
||||||
In file included from ../../3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm:7:
|
|
||||||
../../3rdparty/chromium/base/bind.h:59:3: error: static_assert failed "Bound argument |i| of type |Arg| cannot be forwarded as |Unwrapped| to the bound functor, which declares it as |Param|."
|
|
||||||
static_assert(
|
|
||||||
^
|
|
||||||
../../3rdparty/chromium/base/bind.h:91:7: note: in instantiation of template class 'base::internal::AssertConstructible<1, long, long, const long &, NSError *>' requested here
|
|
||||||
: AssertConstructible<Ns, Args, std::decay_t<Args>, Unwrapped, Params>... {
|
|
||||||
^
|
|
||||||
../../3rdparty/chromium/base/bind.h:213:27: note: in instantiation of template class 'base::internal::AssertBindArgsValidity<std::__1::integer_sequence<unsigned long, 0, 1>, base::internal::TypeList<base::WeakPtr<device::BluetoothRemoteGattCharacteristicMac>, long>, base::internal::TypeList<device::BluetoothRemoteGattCharacteristicMac *, const long &>, base::internal::TypeList<device::BluetoothRemoteGattCharacteristicMac *, NSError *> >' requested here
|
|
||||||
static_assert(internal::AssertBindArgsValidity<
|
|
||||||
^
|
|
||||||
../../3rdparty/chromium/base/bind.h:242:16: note: in instantiation of function template specialization 'base::BindRepeating<void (device::BluetoothRemoteGattCharacteristicMac::*)(NSError *), base::WeakPtr<device::BluetoothRemoteGattCharacteristicMac>, long>' requested here
|
|
||||||
return base::BindRepeating(std::forward<Functor>(functor),
|
|
||||||
^
|
|
||||||
../../3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm:211:15: note: in instantiation of function template specialization 'base::Bind<void (device::BluetoothRemoteGattCharacteristicMac::*)(NSError *), base::WeakPtr<device::BluetoothRemoteGattCharacteristicMac>, long>' requested here
|
|
||||||
base::Bind(&BluetoothRemoteGattCharacteristicMac::DidWriteValue,
|
|
||||||
^
|
|
||||||
|
|
||||||
--- a/src/3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm
|
|
||||||
+++ b/src/3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm
|
|
||||||
@@ -209,7 +209,7 @@ void BluetoothRemoteGattCharacteristicMac::WriteRemoteCharacteristic(
|
|
||||||
base::ThreadTaskRunnerHandle::Get()->PostTask(
|
|
||||||
FROM_HERE,
|
|
||||||
base::Bind(&BluetoothRemoteGattCharacteristicMac::DidWriteValue,
|
|
||||||
- weak_ptr_factory_.GetWeakPtr(), nil));
|
|
||||||
+ weak_ptr_factory_.GetWeakPtr(), nullptr));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
|||||||
diff --git a/src/3rdparty/chromium/third_party/webrtc/sdk/objc/Framework/Classes/Common/RTCFieldTrials.mm b/src/3rdparty/chromium/third_party/webrtc/sdk/objc/Framework/Classes/Common/RTCFieldTrials.mm
|
|
||||||
--- a/src/3rdparty/chromium/third_party/webrtc/sdk/objc/Framework/Classes/Common/RTCFieldTrials.mm
|
|
||||||
+++ b/src/3rdparty/chromium/third_party/webrtc/sdk/objc/Framework/Classes/Common/RTCFieldTrials.mm
|
|
||||||
@@ -45,7 +45,7 @@ NSString *RTCFieldTrialTrendlineFilterValue(
|
|
||||||
return [NSString stringWithFormat:format, windowSize, smoothingCoeff, thresholdGain];
|
|
||||||
}
|
|
||||||
|
|
||||||
-void RTCInitFieldTrialDictionary(NSDictionary<NSString *, NSString *> *fieldTrials) {
|
|
||||||
+void RTCInitFieldTrialDictionary(NSDictionary *fieldTrials) {
|
|
||||||
if (!fieldTrials) {
|
|
||||||
RTCLogWarning(@"No fieldTrials provided.");
|
|
||||||
return;
|
|
||||||
diff --git a/src/3rdparty/chromium/third_party/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCFieldTrials.h b/src/3rdparty/chromium/third_party/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCFieldTrials.h
|
|
||||||
--- a/src/3rdparty/chromium/third_party/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCFieldTrials.h
|
|
||||||
+++ b/src/3rdparty/chromium/third_party/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCFieldTrials.h
|
|
||||||
@@ -40,4 +40,4 @@ RTC_EXTERN NSString *RTCFieldTrialTrendlineFilterValue(
|
|
||||||
* Must be called before any other call into WebRTC. See:
|
|
||||||
* webrtc/system_wrappers/include/field_trial_default.h
|
|
||||||
*/
|
|
||||||
-RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary<NSString *, NSString *> *fieldTrials);
|
|
||||||
+RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary *fieldTrials);
|
|
@ -1,160 +0,0 @@
|
|||||||
Fix build against 10.10 SDK
|
|
||||||
|
|
||||||
The SecKey part perhaps could be fixed by implementing a revert to
|
|
||||||
https://chromium.googlesource.com/chromium/src.git/+/8418e098b9cbedf884878b61dcd3292c515845cf%5E%21/#F0
|
|
||||||
|
|
||||||
--- a/src/3rdparty/chromium/content/browser/renderer_host/input/web_input_event_builders_mac.mm
|
|
||||||
+++ b/src/3rdparty/chromium/content/browser/renderer_host/input/web_input_event_builders_mac.mm
|
|
||||||
@@ -1,3 +1,4 @@
|
|
||||||
+#define NSEventTypeScrollWheel 22
|
|
||||||
// Copyright 2015 The Chromium Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file.
|
|
||||||
--- a/src/3rdparty/chromium/net/ssl/ssl_platform_key_mac.cc
|
|
||||||
+++ b/src/3rdparty/chromium/net/ssl/ssl_platform_key_mac.cc
|
|
||||||
@@ -48,21 +48,6 @@ namespace net {
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
-// TODO(davidben): Remove this when we switch to building to the 10.13
|
|
||||||
-// SDK. https://crbug.com/780980
|
|
||||||
-#if !defined(MAC_OS_X_VERSION_10_13) || \
|
|
||||||
- MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_13
|
|
||||||
-API_AVAILABLE(macosx(10.13))
|
|
||||||
-const SecKeyAlgorithm kSecKeyAlgorithmRSASignatureDigestPSSSHA256 =
|
|
||||||
- CFSTR("algid:sign:RSA:digest-PSS:SHA256:SHA256:32");
|
|
||||||
-API_AVAILABLE(macosx(10.13))
|
|
||||||
-const SecKeyAlgorithm kSecKeyAlgorithmRSASignatureDigestPSSSHA384 =
|
|
||||||
- CFSTR("algid:sign:RSA:digest-PSS:SHA384:SHA384:48");
|
|
||||||
-API_AVAILABLE(macosx(10.13))
|
|
||||||
-const SecKeyAlgorithm kSecKeyAlgorithmRSASignatureDigestPSSSHA512 =
|
|
||||||
- CFSTR("algid:sign:RSA:digest-PSS:SHA512:SHA512:64");
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
class ScopedCSSM_CC_HANDLE {
|
|
||||||
public:
|
|
||||||
ScopedCSSM_CC_HANDLE() : handle_(0) {}
|
|
||||||
@@ -187,109 +172,6 @@ class SSLPlatformKeyCSSM : public ThreadedSSLPrivateKey::Delegate {
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(SSLPlatformKeyCSSM);
|
|
||||||
};
|
|
||||||
|
|
||||||
-// Returns the corresponding SecKeyAlgorithm or nullptr if unrecognized.
|
|
||||||
-API_AVAILABLE(macosx(10.12))
|
|
||||||
-SecKeyAlgorithm GetSecKeyAlgorithm(uint16_t algorithm) {
|
|
||||||
- switch (algorithm) {
|
|
||||||
- case SSL_SIGN_RSA_PKCS1_SHA512:
|
|
||||||
- return kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA512;
|
|
||||||
- case SSL_SIGN_RSA_PKCS1_SHA384:
|
|
||||||
- return kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA384;
|
|
||||||
- case SSL_SIGN_RSA_PKCS1_SHA256:
|
|
||||||
- return kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA256;
|
|
||||||
- case SSL_SIGN_RSA_PKCS1_SHA1:
|
|
||||||
- return kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA1;
|
|
||||||
- case SSL_SIGN_RSA_PKCS1_MD5_SHA1:
|
|
||||||
- return kSecKeyAlgorithmRSASignatureDigestPKCS1v15Raw;
|
|
||||||
- case SSL_SIGN_ECDSA_SECP521R1_SHA512:
|
|
||||||
- return kSecKeyAlgorithmECDSASignatureDigestX962SHA512;
|
|
||||||
- case SSL_SIGN_ECDSA_SECP384R1_SHA384:
|
|
||||||
- return kSecKeyAlgorithmECDSASignatureDigestX962SHA384;
|
|
||||||
- case SSL_SIGN_ECDSA_SECP256R1_SHA256:
|
|
||||||
- return kSecKeyAlgorithmECDSASignatureDigestX962SHA256;
|
|
||||||
- case SSL_SIGN_ECDSA_SHA1:
|
|
||||||
- return kSecKeyAlgorithmECDSASignatureDigestX962SHA1;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- if (base::mac::IsAtLeastOS10_13()) {
|
|
||||||
- switch (algorithm) {
|
|
||||||
- case SSL_SIGN_RSA_PSS_SHA512:
|
|
||||||
- return kSecKeyAlgorithmRSASignatureDigestPSSSHA512;
|
|
||||||
- case SSL_SIGN_RSA_PSS_SHA384:
|
|
||||||
- return kSecKeyAlgorithmRSASignatureDigestPSSSHA384;
|
|
||||||
- case SSL_SIGN_RSA_PSS_SHA256:
|
|
||||||
- return kSecKeyAlgorithmRSASignatureDigestPSSSHA256;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return nullptr;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-class API_AVAILABLE(macosx(10.12)) SSLPlatformKeySecKey
|
|
||||||
- : public ThreadedSSLPrivateKey::Delegate {
|
|
||||||
- public:
|
|
||||||
- SSLPlatformKeySecKey(int type, size_t max_length, SecKeyRef key)
|
|
||||||
- : key_(key, base::scoped_policy::RETAIN) {
|
|
||||||
- // Determine the algorithms supported by the key.
|
|
||||||
- for (uint16_t algorithm : SSLPrivateKey::DefaultAlgorithmPreferences(
|
|
||||||
- type, true /* include PSS */)) {
|
|
||||||
- SecKeyAlgorithm sec_algorithm = GetSecKeyAlgorithm(algorithm);
|
|
||||||
- if (sec_algorithm &&
|
|
||||||
- SecKeyIsAlgorithmSupported(key_.get(), kSecKeyOperationTypeSign,
|
|
||||||
- sec_algorithm)) {
|
|
||||||
- preferences_.push_back(algorithm);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- ~SSLPlatformKeySecKey() override {}
|
|
||||||
-
|
|
||||||
- std::vector<uint16_t> GetAlgorithmPreferences() override {
|
|
||||||
- return preferences_;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- Error Sign(uint16_t algorithm,
|
|
||||||
- base::span<const uint8_t> input,
|
|
||||||
- std::vector<uint8_t>* signature) override {
|
|
||||||
- SecKeyAlgorithm sec_algorithm = GetSecKeyAlgorithm(algorithm);
|
|
||||||
- if (!sec_algorithm) {
|
|
||||||
- NOTREACHED();
|
|
||||||
- return ERR_FAILED;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- const EVP_MD* md = SSL_get_signature_algorithm_digest(algorithm);
|
|
||||||
- uint8_t digest[EVP_MAX_MD_SIZE];
|
|
||||||
- unsigned digest_len;
|
|
||||||
- if (!md || !EVP_Digest(input.data(), input.size(), digest, &digest_len, md,
|
|
||||||
- nullptr)) {
|
|
||||||
- return ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- base::ScopedCFTypeRef<CFDataRef> digest_ref(CFDataCreateWithBytesNoCopy(
|
|
||||||
- kCFAllocatorDefault, digest, base::checked_cast<CFIndex>(digest_len),
|
|
||||||
- kCFAllocatorNull));
|
|
||||||
-
|
|
||||||
- base::ScopedCFTypeRef<CFErrorRef> error;
|
|
||||||
- base::ScopedCFTypeRef<CFDataRef> signature_ref(SecKeyCreateSignature(
|
|
||||||
- key_, sec_algorithm, digest_ref, error.InitializeInto()));
|
|
||||||
- if (!signature_ref) {
|
|
||||||
- LOG(ERROR) << error;
|
|
||||||
- return ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- signature->assign(
|
|
||||||
- CFDataGetBytePtr(signature_ref),
|
|
||||||
- CFDataGetBytePtr(signature_ref) + CFDataGetLength(signature_ref));
|
|
||||||
- return OK;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- private:
|
|
||||||
- std::vector<uint16_t> preferences_;
|
|
||||||
- base::ScopedCFTypeRef<SecKeyRef> key_;
|
|
||||||
-
|
|
||||||
- DISALLOW_COPY_AND_ASSIGN(SSLPlatformKeySecKey);
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
scoped_refptr<SSLPrivateKey> CreateSSLPrivateKeyForSecKey(
|
|
||||||
const X509Certificate* certificate,
|
|
||||||
SecKeyRef private_key) {
|
|
||||||
@@ -298,13 +180,6 @@ scoped_refptr<SSLPrivateKey> CreateSSLPrivateKeyForSecKey(
|
|
||||||
if (!GetClientCertInfo(certificate, &key_type, &max_length))
|
|
||||||
return nullptr;
|
|
||||||
|
|
||||||
- if (base::mac::IsAtLeastOS10_12()) {
|
|
||||||
- return base::MakeRefCounted<ThreadedSSLPrivateKey>(
|
|
||||||
- std::make_unique<SSLPlatformKeySecKey>(key_type, max_length,
|
|
||||||
- private_key),
|
|
||||||
- GetSSLPlatformKeyTaskRunner());
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
const CSSM_KEY* cssm_key;
|
|
||||||
OSStatus status = SecKeyGetCSSMKey(private_key, &cssm_key);
|
|
||||||
if (status != noErr) {
|
|
@ -1,11 +0,0 @@
|
|||||||
diff --git a/Source/cmake/OptionsQt.cmake b/Source/cmake/OptionsQt.cmake
|
|
||||||
--- a/Source/cmake/OptionsQt.cmake
|
|
||||||
+++ b/Source/cmake/OptionsQt.cmake
|
|
||||||
@@ -683,7 +683,6 @@ if (WIN32 AND COMPILER_IS_GCC_OR_CLANG)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (APPLE)
|
|
||||||
- SET_AND_EXPOSE_TO_BUILD(HAVE_QOS_CLASSES 1)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (ENABLE_MATHML)
|
|
@ -1,45 +0,0 @@
|
|||||||
diff --git a/Source/JavaScriptCore/shell/CMakeLists.txt b/Source/JavaScriptCore/shell/CMakeLists.txt
|
|
||||||
--- a/Source/JavaScriptCore/shell/CMakeLists.txt
|
|
||||||
+++ b/Source/JavaScriptCore/shell/CMakeLists.txt
|
|
||||||
@@ -9,7 +9,6 @@ set(JSC_LIBRARIES
|
|
||||||
)
|
|
||||||
|
|
||||||
if (WTF_OS_MAC_OS_X)
|
|
||||||
- list(APPEND JSC_LIBRARIES edit)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if ("${JavaScriptCore_LIBRARY_TYPE}" MATCHES "STATIC")
|
|
||||||
diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
|
|
||||||
--- a/Source/WTF/wtf/Platform.h
|
|
||||||
+++ b/Source/WTF/wtf/Platform.h
|
|
||||||
@@ -563,7 +563,6 @@
|
|
||||||
#if PLATFORM(IOS)
|
|
||||||
|
|
||||||
#define HAVE_NETWORK_EXTENSION 1
|
|
||||||
-#define HAVE_READLINE 1
|
|
||||||
#if USE(APPLE_INTERNAL_SDK)
|
|
||||||
#define USE_CFNETWORK 1
|
|
||||||
#endif
|
|
||||||
@@ -650,7 +649,6 @@
|
|
||||||
#define HAVE_MADV_DONTNEED 1
|
|
||||||
#define HAVE_MERGESORT 1
|
|
||||||
#define HAVE_PTHREAD_SETNAME_NP 1
|
|
||||||
-#define HAVE_READLINE 1
|
|
||||||
#define HAVE_SYS_TIMEB_H 1
|
|
||||||
|
|
||||||
#if !PLATFORM(GTK) && !PLATFORM(QT)
|
|
||||||
diff --git a/Source/WTF/wtf/PlatformMac.cmake b/Source/WTF/wtf/PlatformMac.cmake
|
|
||||||
--- a/Source/WTF/wtf/PlatformMac.cmake
|
|
||||||
+++ b/Source/WTF/wtf/PlatformMac.cmake
|
|
||||||
@@ -2,11 +2,9 @@ set(WTF_LIBRARY_TYPE SHARED)
|
|
||||||
|
|
||||||
find_library(COCOA_LIBRARY Cocoa)
|
|
||||||
find_library(COREFOUNDATION_LIBRARY CoreFoundation)
|
|
||||||
-find_library(READLINE_LIBRARY Readline)
|
|
||||||
list(APPEND WTF_LIBRARIES
|
|
||||||
${COREFOUNDATION_LIBRARY}
|
|
||||||
${COCOA_LIBRARY}
|
|
||||||
- ${READLINE_LIBRARY}
|
|
||||||
libicucore.dylib
|
|
||||||
)
|
|
||||||
|
|
@ -51,11 +51,7 @@ let
|
|||||||
patches = {
|
patches = {
|
||||||
qtbase = [
|
qtbase = [
|
||||||
./qtbase.patch
|
./qtbase.patch
|
||||||
./qtbase-darwin.patch
|
|
||||||
./qtbase-revert-no-macos10.10.patch
|
|
||||||
./qtbase-fixguicmake.patch
|
./qtbase-fixguicmake.patch
|
||||||
] ++ optionals stdenv.isDarwin [
|
|
||||||
./qtbase-darwin-nseventtype.patch
|
|
||||||
];
|
];
|
||||||
qtdeclarative = [ ./qtdeclarative.patch ];
|
qtdeclarative = [ ./qtdeclarative.patch ];
|
||||||
qtscript = [ ./qtscript.patch ];
|
qtscript = [ ./qtscript.patch ];
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
@@ -404,8 +404,8 @@ void QCocoaWindow::setVisible(bool visible)
|
|
||||||
removeMonitor();
|
|
||||||
monitor = [NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDownMask|NSRightMouseDownMask|NSOtherMouseDownMask|NSMouseMovedMask handler:^(NSEvent *e) {
|
|
||||||
QPointF localPoint = QCocoaScreen::mapFromNative([NSEvent mouseLocation]);
|
|
||||||
- const auto button = e.type == NSEventTypeMouseMoved ? Qt::NoButton : cocoaButton2QtButton([e buttonNumber]);
|
|
||||||
- const auto eventType = e.type == NSEventTypeMouseMoved ? QEvent::MouseMove : QEvent::MouseButtonPress;
|
|
||||||
+ const auto button = e.type == NSMouseMoved ? Qt::NoButton : cocoaButton2QtButton([e buttonNumber]);
|
|
||||||
+ const auto eventType = e.type == NSMouseMoved ? QEvent::MouseMove : QEvent::MouseButtonPress;
|
|
||||||
QWindowSystemInterface::handleMouseEvent(window(), window()->mapFromGlobal(localPoint.toPoint()), localPoint,
|
|
||||||
Qt::MouseButtons(uint(NSEvent.pressedMouseButtons & 0xFFFF)), button, eventType);
|
|
||||||
}];
|
|
@ -1,70 +0,0 @@
|
|||||||
diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm
|
|
||||||
index c3dd49ff3e..6871399817 100644
|
|
||||||
--- a/src/plugins/bearer/corewlan/qcorewlanengine.mm
|
|
||||||
+++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm
|
|
||||||
@@ -283,7 +283,7 @@ void QScanThread::getUserConfigurations()
|
|
||||||
QMacAutoReleasePool pool;
|
|
||||||
userProfiles.clear();
|
|
||||||
|
|
||||||
- NSArray<NSString *> *wifiInterfaces = [CWWiFiClient interfaceNames];
|
|
||||||
+ NSArray *wifiInterfaces = [CWWiFiClient interfaceNames];
|
|
||||||
for (NSString *ifName in wifiInterfaces) {
|
|
||||||
|
|
||||||
CWInterface *wifiInterface = [[CWWiFiClient sharedWiFiClient] interfaceWithName:ifName];
|
|
||||||
@@ -598,7 +598,7 @@ void QCoreWlanEngine::doRequestUpdate()
|
|
||||||
|
|
||||||
QMacAutoReleasePool pool;
|
|
||||||
|
|
||||||
- NSArray<NSString *> *wifiInterfaces = [CWWiFiClient interfaceNames];
|
|
||||||
+ NSArray *wifiInterfaces = [CWWiFiClient interfaceNames];
|
|
||||||
for (NSString *ifName in wifiInterfaces) {
|
|
||||||
scanThread->interfaceName = QString::fromNSString(ifName);
|
|
||||||
scanThread->start();
|
|
||||||
diff --git a/src/plugins/platforms/cocoa/qcocoascreen.mm b/src/plugins/platforms/cocoa/qcocoascreen.mm
|
|
||||||
index afe14e623c..74d69c2fa1 100644
|
|
||||||
--- a/src/plugins/platforms/cocoa/qcocoascreen.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qcocoascreen.mm
|
|
||||||
@@ -127,7 +127,7 @@ void QCocoaScreen::updateProperties()
|
|
||||||
const qreal previousRefreshRate = m_refreshRate;
|
|
||||||
|
|
||||||
// The reference screen for the geometry is always the primary screen
|
|
||||||
- QRectF primaryScreenGeometry = QRectF::fromCGRect([[NSScreen screens] firstObject].frame);
|
|
||||||
+ QRectF primaryScreenGeometry = QRectF::fromCGRect([[[NSScreen screens] firstObject] frame]);
|
|
||||||
m_geometry = qt_mac_flip(QRectF::fromCGRect(nsScreen.frame), primaryScreenGeometry).toRect();
|
|
||||||
m_availableGeometry = qt_mac_flip(QRectF::fromCGRect(nsScreen.visibleFrame), primaryScreenGeometry).toRect();
|
|
||||||
|
|
||||||
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
index df1ad82592..0318a4ff96 100644
|
|
||||||
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
@@ -1704,7 +1704,7 @@ void QCocoaWindow::applyContentBorderThickness(NSWindow *window)
|
|
||||||
|
|
||||||
if (!m_drawContentBorderGradient) {
|
|
||||||
window.styleMask = window.styleMask & ~NSWindowStyleMaskTexturedBackground;
|
|
||||||
- [window.contentView.superview setNeedsDisplay:YES];
|
|
||||||
+ [[window.contentView superview] setNeedsDisplay:YES];
|
|
||||||
window.titlebarAppearsTransparent = NO;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
diff --git a/src/plugins/platforms/cocoa/qnswindow.mm b/src/plugins/platforms/cocoa/qnswindow.mm
|
|
||||||
index c17ad47aba..a0f1dd38fb 100644
|
|
||||||
--- a/src/plugins/platforms/cocoa/qnswindow.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qnswindow.mm
|
|
||||||
@@ -230,7 +230,7 @@ static bool isMouseEvent(NSEvent *ev)
|
|
||||||
if (pw->frameStrutEventsEnabled() && isMouseEvent(theEvent)) {
|
|
||||||
NSPoint loc = [theEvent locationInWindow];
|
|
||||||
NSRect windowFrame = [self convertRectFromScreen:self.frame];
|
|
||||||
- NSRect contentFrame = self.contentView.frame;
|
|
||||||
+ NSRect contentFrame = [self.contentView frame];
|
|
||||||
if (NSMouseInRect(loc, windowFrame, NO) && !NSMouseInRect(loc, contentFrame, NO))
|
|
||||||
[qnsview_cast(pw->view()) handleFrameStrutMouseEvent:theEvent];
|
|
||||||
}
|
|
||||||
@@ -257,7 +257,7 @@ static bool isMouseEvent(NSEvent *ev)
|
|
||||||
+ (void)applicationActivationChanged:(NSNotification*)notification
|
|
||||||
{
|
|
||||||
const id sender = self;
|
|
||||||
- NSEnumerator<NSWindow*> *windowEnumerator = nullptr;
|
|
||||||
+ NSEnumerator *windowEnumerator = nullptr;
|
|
||||||
NSApplication *application = [NSApplication sharedApplication];
|
|
||||||
|
|
||||||
// Unfortunately there's no NSWindowListOrderedBackToFront,
|
|
@ -1,102 +0,0 @@
|
|||||||
Revert "Remove code paths for macOS < 10.11"
|
|
||||||
|
|
||||||
This reverts commit 138a65e0cfa80b13fd018a01e7d8b33341a3cfd3.
|
|
||||||
|
|
||||||
From 138a65e0cfa80b13fd018a01e7d8b33341a3cfd3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jake Petroules <jake.petroules@qt.io>
|
|
||||||
Date: Thu, 8 Feb 2018 11:05:42 -0800
|
|
||||||
Subject: [PATCH] Remove code paths for macOS < 10.11
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Change-Id: I5ae02d88aa3dcd97d1f2ebf6255a68643e5d6daa
|
|
||||||
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
||||||
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
|
|
||||||
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
|
||||||
---
|
|
||||||
.../fontdatabases/mac/qfontengine_coretext.mm | 16 +++-------------
|
|
||||||
src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm | 6 +-----
|
|
||||||
src/plugins/platforms/cocoa/qnswindowdelegate.mm | 16 ----------------
|
|
||||||
3 files changed, 4 insertions(+), 34 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
|
|
||||||
index 98b753eff9..489d9cd031 100644
|
|
||||||
--- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
|
|
||||||
+++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
|
|
||||||
@@ -47,18 +47,28 @@
|
|
||||||
|
|
||||||
#include <cmath>
|
|
||||||
|
|
||||||
-#if defined(Q_OS_MACOS)
|
|
||||||
+#if defined(Q_OS_OSX) && !QT_OSX_DEPLOYMENT_TARGET_BELOW(__MAC_10_11)
|
|
||||||
#import <AppKit/AppKit.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#if defined(QT_PLATFORM_UIKIT)
|
|
||||||
+#if defined(QT_PLATFORM_UIKIT) && !QT_IOS_DEPLOYMENT_TARGET_BELOW(__IPHONE_8_2)
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// These are available cross platform, exported as kCTFontWeightXXX from CoreText.framework,
|
|
||||||
// but they are not documented and are not in public headers so are private API and exposed
|
|
||||||
// only through the NSFontWeightXXX and UIFontWeightXXX aliases in AppKit and UIKit (rdar://26109857)
|
|
||||||
-#if defined(Q_OS_MACOS)
|
|
||||||
+#if QT_MAC_DEPLOYMENT_TARGET_BELOW(__MAC_10_11, __IPHONE_8_2)
|
|
||||||
+#define kCTFontWeightUltraLight -0.8
|
|
||||||
+#define kCTFontWeightThin -0.6
|
|
||||||
+#define kCTFontWeightLight -0.4
|
|
||||||
+#define kCTFontWeightRegular 0
|
|
||||||
+#define kCTFontWeightMedium 0.23
|
|
||||||
+#define kCTFontWeightSemibold 0.3
|
|
||||||
+#define kCTFontWeightBold 0.4
|
|
||||||
+#define kCTFontWeightHeavy 0.56
|
|
||||||
+#define kCTFontWeightBlack 0.62
|
|
||||||
+#elif defined(Q_OS_OSX)
|
|
||||||
#define kCTFontWeightUltraLight NSFontWeightUltraLight
|
|
||||||
#define kCTFontWeightThin NSFontWeightThin
|
|
||||||
#define kCTFontWeightLight NSFontWeightLight
|
|
||||||
diff --git a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
|
|
||||||
index 94f2125bad..272cd9f3dc 100644
|
|
||||||
--- a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
|
|
||||||
@@ -162,7 +162,11 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSOpenSavePanelDelegate);
|
|
||||||
// resetting our mCurrentDir, set the delegate
|
|
||||||
// here to make sure it gets the correct value.
|
|
||||||
[mSavePanel setDelegate:self];
|
|
||||||
- mOpenPanel.accessoryViewDisclosed = YES;
|
|
||||||
+
|
|
||||||
+#if QT_OSX_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_11)
|
|
||||||
+ if (__builtin_available(macOS 10.11, *))
|
|
||||||
+ mOpenPanel.accessoryViewDisclosed = YES;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
if (mOptions->isLabelExplicitlySet(QFileDialogOptions::Accept))
|
|
||||||
[mSavePanel setPrompt:[self strip:options->labelText(QFileDialogOptions::Accept)]];
|
|
||||||
diff --git a/src/plugins/platforms/cocoa/qnswindowdelegate.mm b/src/plugins/platforms/cocoa/qnswindowdelegate.mm
|
|
||||||
index 057a4c2943..eb55e50622 100644
|
|
||||||
--- a/src/plugins/platforms/cocoa/qnswindowdelegate.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qnswindowdelegate.mm
|
|
||||||
@@ -103,6 +103,22 @@ static QRegExp whitespaceRegex = QRegExp(QStringLiteral("\\s*"));
|
|
||||||
return QCocoaScreen::mapToNative(maximizedFrame);
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if QT_MACOS_DEPLOYMENT_TARGET_BELOW(__MAC_10_11)
|
|
||||||
+/*
|
|
||||||
+ AppKit on OS X 10.10 wrongly calls windowWillUseStandardFrame:defaultFrame
|
|
||||||
+ from -[NSWindow _frameForFullScreenMode] when going into fullscreen, resulting
|
|
||||||
+ in black bars on top and bottom of the window. By implementing the following
|
|
||||||
+ method, AppKit will choose that instead, and resolve the right fullscreen
|
|
||||||
+ geometry.
|
|
||||||
+*/
|
|
||||||
+- (NSSize)window:(NSWindow *)window willUseFullScreenContentSize:(NSSize)proposedSize
|
|
||||||
+{
|
|
||||||
+ Q_UNUSED(proposedSize);
|
|
||||||
+ Q_ASSERT(window == m_cocoaWindow->nativeWindow());
|
|
||||||
+ return NSSizeFromCGSize(m_cocoaWindow->screen()->geometry().size().toCGSize());
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
- (BOOL)window:(NSWindow *)window shouldPopUpDocumentPathMenu:(NSMenu *)menu
|
|
||||||
{
|
|
||||||
Q_UNUSED(window);
|
|
@ -38,7 +38,7 @@ let
|
|||||||
srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; };
|
srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; };
|
||||||
|
|
||||||
patches = {
|
patches = {
|
||||||
qtbase = [ ./qtbase.patch ./qtbase-fixguicmake.patch ] ++ optional stdenv.isDarwin ./qtbase-darwin.patch;
|
qtbase = [ ./qtbase.patch ./qtbase-fixguicmake.patch ];
|
||||||
qtdeclarative = [ ./qtdeclarative.patch ];
|
qtdeclarative = [ ./qtdeclarative.patch ];
|
||||||
qtscript = [ ./qtscript.patch ];
|
qtscript = [ ./qtscript.patch ];
|
||||||
qtserialport = [ ./qtserialport.patch ];
|
qtserialport = [ ./qtserialport.patch ];
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm
|
|
||||||
index 341d3bc..3368234 100644
|
|
||||||
--- a/src/plugins/bearer/corewlan/qcorewlanengine.mm
|
|
||||||
+++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm
|
|
||||||
@@ -287,7 +287,7 @@ void QScanThread::getUserConfigurations()
|
|
||||||
QMacAutoReleasePool pool;
|
|
||||||
userProfiles.clear();
|
|
||||||
|
|
||||||
- NSArray<NSString *> *wifiInterfaces = [CWWiFiClient interfaceNames];
|
|
||||||
+ NSArray *wifiInterfaces = [CWWiFiClient interfaceNames];
|
|
||||||
for (NSString *ifName in wifiInterfaces) {
|
|
||||||
|
|
||||||
CWInterface *wifiInterface = [[CWWiFiClient sharedWiFiClient] interfaceWithName:ifName];
|
|
||||||
@@ -602,7 +602,7 @@ void QCoreWlanEngine::doRequestUpdate()
|
|
||||||
|
|
||||||
QMacAutoReleasePool pool;
|
|
||||||
|
|
||||||
- NSArray<NSString *> *wifiInterfaces = [CWWiFiClient interfaceNames];
|
|
||||||
+ NSArray *wifiInterfaces = [CWWiFiClient interfaceNames];
|
|
||||||
for (NSString *ifName in wifiInterfaces) {
|
|
||||||
scanThread->interfaceName = QString::fromNSString(ifName);
|
|
||||||
scanThread->start();
|
|
||||||
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
index 5cd4beb..84919e6 100644
|
|
||||||
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
|
|
||||||
@@ -320,7 +320,7 @@ static void qt_closePopups()
|
|
||||||
+ (void)applicationActivationChanged:(NSNotification*)notification
|
|
||||||
{
|
|
||||||
const id sender = self;
|
|
||||||
- NSEnumerator<NSWindow*> *windowEnumerator = nullptr;
|
|
||||||
+ NSEnumerator *windowEnumerator = nullptr;
|
|
||||||
NSApplication *application = [NSApplication sharedApplication];
|
|
||||||
|
|
||||||
#if QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_12)
|
|
@ -2,7 +2,7 @@
|
|||||||
stdenv, lib,
|
stdenv, lib,
|
||||||
src, patches, version, qtCompatVersion,
|
src, patches, version, qtCompatVersion,
|
||||||
|
|
||||||
coreutils, bison, flex, gdb, gperf, lndir, patchelf, perl, pkgconfig, python2,
|
coreutils, bison, flex, gdb, gperf, lndir, perl, pkgconfig, python2,
|
||||||
which,
|
which,
|
||||||
# darwin support
|
# darwin support
|
||||||
darwin, libiconv,
|
darwin, libiconv,
|
||||||
@ -78,17 +78,15 @@ stdenv.mkDerivation {
|
|||||||
[ libinput ]
|
[ libinput ]
|
||||||
++ lib.optional withGtk3 gtk3
|
++ lib.optional withGtk3 gtk3
|
||||||
)
|
)
|
||||||
++ lib.optional stdenv.isDarwin
|
# Needed for OBJC_CLASS_$_NSDate symbols.
|
||||||
# Needed for OBJC_CLASS_$_NSDate symbols.
|
++ lib.optional stdenv.isDarwin darwin.cf-private
|
||||||
[ darwin.cf-private ]
|
|
||||||
++ lib.optional developerBuild gdb
|
++ lib.optional developerBuild gdb
|
||||||
++ lib.optional (cups != null) cups
|
++ lib.optional (cups != null) cups
|
||||||
++ lib.optional (mysql != null) mysql.connector-c
|
++ lib.optional (mysql != null) mysql.connector-c
|
||||||
++ lib.optional (postgresql != null) postgresql;
|
++ lib.optional (postgresql != null) postgresql;
|
||||||
|
|
||||||
nativeBuildInputs =
|
nativeBuildInputs =
|
||||||
[ bison flex gperf lndir perl pkgconfig python2 which ]
|
[ bison flex gperf lndir perl pkgconfig python2 which ];
|
||||||
++ lib.optional (!stdenv.isDarwin) patchelf;
|
|
||||||
|
|
||||||
propagatedNativeBuildInputs = [ lndir ];
|
propagatedNativeBuildInputs = [ lndir ];
|
||||||
|
|
||||||
@ -199,26 +197,11 @@ stdenv.mkDerivation {
|
|||||||
''-DNIXPKGS_LIBXCURSOR="${libXcursor.out}/lib/libXcursor"''
|
''-DNIXPKGS_LIBXCURSOR="${libXcursor.out}/lib/libXcursor"''
|
||||||
]
|
]
|
||||||
|
|
||||||
++ (
|
++ lib.optional libGLSupported ''-DNIXPKGS_MESA_GL="${libGL.out}/lib/libGL"''
|
||||||
if stdenv.isDarwin
|
++ lib.optionals withGtk3 [
|
||||||
then
|
''-DNIXPKGS_QGTK3_XDG_DATA_DIRS="${gtk3}/share/gsettings-schemas/${gtk3.name}"''
|
||||||
[
|
''-DNIXPKGS_QGTK3_GIO_EXTRA_MODULES="${dconf.lib}/lib/gio/modules"''
|
||||||
"-Wno-missing-sysroot"
|
]
|
||||||
"-D__MAC_OS_X_VERSION_MAX_ALLOWED=1090"
|
|
||||||
"-D__AVAILABILITY_INTERNAL__MAC_10_10=__attribute__((availability(macosx,introduced=10.10)))"
|
|
||||||
# Note that nixpkgs's objc4 is from macOS 10.11 while the SDK is
|
|
||||||
# 10.9 which necessitates the above macro definition that mentions
|
|
||||||
# 10.10
|
|
||||||
]
|
|
||||||
else
|
|
||||||
lib.optional libGLSupported ''-DNIXPKGS_MESA_GL="${libGL.out}/lib/libGL"''
|
|
||||||
++ lib.optionals withGtk3
|
|
||||||
[
|
|
||||||
''-DNIXPKGS_QGTK3_XDG_DATA_DIRS="${gtk3}/share/gsettings-schemas/${gtk3.name}"''
|
|
||||||
''-DNIXPKGS_QGTK3_GIO_EXTRA_MODULES="${dconf.lib}/lib/gio/modules"''
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
++ lib.optional decryptSslTraffic "-DQT_DECRYPT_SSL_TRAFFIC";
|
++ lib.optional decryptSslTraffic "-DQT_DECRYPT_SSL_TRAFFIC";
|
||||||
|
|
||||||
prefixKey = "-prefix ";
|
prefixKey = "-prefix ";
|
||||||
|
@ -79,7 +79,7 @@ qtModule {
|
|||||||
cat <<EOF > src/3rdparty/chromium/build/mac/find_sdk.py
|
cat <<EOF > src/3rdparty/chromium/build/mac/find_sdk.py
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
print("${darwin.apple_sdk.sdk}")
|
print("${darwin.apple_sdk.sdk}")
|
||||||
print("10.10.0")
|
print("10.12.0")
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cat <<EOF > src/3rdparty/chromium/build/config/mac/sdk_info.py
|
cat <<EOF > src/3rdparty/chromium/build/config/mac/sdk_info.py
|
||||||
@ -102,22 +102,6 @@ EOF
|
|||||||
--replace 'libs = [ "sandbox" ]' 'libs = [ "/usr/lib/libsandbox.1.dylib" ]'
|
--replace 'libs = [ "sandbox" ]' 'libs = [ "/usr/lib/libsandbox.1.dylib" ]'
|
||||||
'');
|
'');
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE =
|
|
||||||
lib.optionalString stdenv.isDarwin [
|
|
||||||
"-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10"
|
|
||||||
"-DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_10"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Prevent errors like
|
|
||||||
# /nix/store/xxx-apple-framework-CoreData/Library/Frameworks/CoreData.framework/Headers/NSEntityDescription.h:51:7:
|
|
||||||
# error: pointer to non-const type 'id' with no explicit ownership
|
|
||||||
# id** _kvcPropertyAccessors;
|
|
||||||
#
|
|
||||||
# TODO remove when new Apple SDK is in
|
|
||||||
#
|
|
||||||
"-fno-objc-arc"
|
|
||||||
];
|
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
export NINJAFLAGS=-j$NIX_BUILD_CORES
|
export NINJAFLAGS=-j$NIX_BUILD_CORES
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ buildPythonPackage rec {
|
|||||||
url = "https://github.com/matplotlib/matplotlib/commit/2980184d092382a40ab21f95b79582ffae6e19d6.patch";
|
url = "https://github.com/matplotlib/matplotlib/commit/2980184d092382a40ab21f95b79582ffae6e19d6.patch";
|
||||||
sha256 = "1c0wj28zy8s5h6qiavx9zzbhlmhjwpzbc3fyyw9039mbnqk0spg2";
|
sha256 = "1c0wj28zy8s5h6qiavx9zzbhlmhjwpzbc3fyyw9039mbnqk0spg2";
|
||||||
})
|
})
|
||||||
] ++ stdenv.lib.optionals stdenv.isDarwin [ ./darwin-stdenv-2.2.3.patch ];
|
];
|
||||||
|
|
||||||
# Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the
|
# Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the
|
||||||
# corresponding interpreter object for its library paths. This fails if
|
# corresponding interpreter object for its library paths. This fails if
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
--- a/src/_macosx.m 2015-10-30 00:46:20.000000000 +0200
|
|
||||||
+++ b/src/_macosx.m 2015-11-01 14:52:25.000000000 +0200
|
|
||||||
@@ -6264,6 +6264,7 @@
|
|
||||||
|
|
||||||
static bool verify_framework(void)
|
|
||||||
{
|
|
||||||
+ return true; /* nixpkgs darwin stdenv */
|
|
||||||
#ifdef COMPILING_FOR_10_6
|
|
||||||
NSRunningApplication* app = [NSRunningApplication currentApplication];
|
|
||||||
NSApplicationActivationPolicy activationPolicy = [app activationPolicy];
|
|
@ -1,12 +0,0 @@
|
|||||||
diff -ruN matplotlib-3.0.0/src/_macosx.m matplotlib-3.0.0.patched/src/_macosx.m
|
|
||||||
--- matplotlib-3.0.0/src/_macosx.m 2018-09-16 00:35:21.000000000 +0200
|
|
||||||
+++ matplotlib-3.0.0.patched/src/_macosx.m 2018-11-03 13:14:33.000000000 +0100
|
|
||||||
@@ -2577,6 +2577,7 @@
|
|
||||||
|
|
||||||
static bool verify_framework(void)
|
|
||||||
{
|
|
||||||
+ return true; /* nixpkgs darwin stdenv */
|
|
||||||
ProcessSerialNumber psn;
|
|
||||||
/* These methods are deprecated, but they don't require the app to
|
|
||||||
have started */
|
|
||||||
|
|
@ -52,8 +52,7 @@ buildPythonPackage rec {
|
|||||||
++ stdenv.lib.optionals enableQt [ pyqt4 ];
|
++ stdenv.lib.optionals enableQt [ pyqt4 ];
|
||||||
|
|
||||||
patches =
|
patches =
|
||||||
[ ./basedirlist.patch ] ++
|
[ ./basedirlist.patch ];
|
||||||
stdenv.lib.optionals stdenv.isDarwin [ ./darwin-stdenv.patch ];
|
|
||||||
|
|
||||||
# Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the
|
# Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the
|
||||||
# corresponding interpreter object for its library paths. This fails if
|
# corresponding interpreter object for its library paths. This fails if
|
||||||
|
@ -1,64 +0,0 @@
|
|||||||
--- a/garglk/fontmac.m
|
|
||||||
+++ b/garglk/fontmac.m
|
|
||||||
@@ -167,7 +167,7 @@ static void propfont(char *file, int style)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-static NSMutableArray<NSURL *> * gli_registered_fonts = nil;
|
|
||||||
+static NSMutableArray * gli_registered_fonts = nil;
|
|
||||||
static NSDistributedLock * gli_font_lock = nil;
|
|
||||||
|
|
||||||
void fontreplace(char *font, int type)
|
|
||||||
@@ -181,7 +181,7 @@ void fontreplace(char *font, int type)
|
|
||||||
NSFontDescriptor * fontFamilyDescriptor =
|
|
||||||
[[NSFontDescriptor fontDescriptorWithFontAttributes: nil] fontDescriptorWithFamily: fontFamily];
|
|
||||||
|
|
||||||
- NSArray<NSFontDescriptor *> * fontMatches =
|
|
||||||
+ NSArray * fontMatches =
|
|
||||||
[fontFamilyDescriptor matchingFontDescriptorsWithMandatoryKeys: nil];
|
|
||||||
|
|
||||||
for (NSFontDescriptor * sysfont in fontMatches)
|
|
||||||
@@ -259,7 +259,7 @@ void fontload(void)
|
|
||||||
|
|
||||||
// obtain a list of all files in the Fonts directory
|
|
||||||
NSString * fontFolder = [[NSString stringWithUTF8String: env] stringByAppendingPathComponent: @"Fonts"];
|
|
||||||
- NSArray<NSString *> * fontFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath: fontFolder error: nil];
|
|
||||||
+ NSArray * fontFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath: fontFolder error: nil];
|
|
||||||
|
|
||||||
// create a collection to hold the registered font URLs
|
|
||||||
gli_registered_fonts = [NSMutableArray new];
|
|
||||||
--- a/garglk/launchmac.m
|
|
||||||
+++ b/garglk/launchmac.m
|
|
||||||
@@ -556,7 +556,7 @@ static BOOL isTextbufferEvent(NSEvent * evt)
|
|
||||||
<GargoyleApp, NSApplicationDelegate, NSWindowDelegate>
|
|
||||||
{
|
|
||||||
BOOL openedFirstGame;
|
|
||||||
- NSMutableDictionary<NSNumber *, GargoyleWindow *> * windows;
|
|
||||||
+ NSMutableDictionary * windows;
|
|
||||||
NSConnection * link;
|
|
||||||
}
|
|
||||||
- (BOOL) launchFile: (NSString *) file;
|
|
||||||
--- a/garglk/ttsmac.m
|
|
||||||
+++ b/garglk/ttsmac.m
|
|
||||||
@@ -30,7 +30,7 @@
|
|
||||||
#import "sysmac.h"
|
|
||||||
|
|
||||||
// a queue of phrases to feed to the speech synthesizer
|
|
||||||
-static NSMutableArray<NSString *> * phraseQueue = nil;
|
|
||||||
+static NSMutableArray * phraseQueue = nil;
|
|
||||||
static NSRange purgeRange;
|
|
||||||
|
|
||||||
@interface SpeechDelegate : NSObject <NSSpeechSynthesizerDelegate>
|
|
||||||
@@ -96,10 +96,10 @@ void gli_initialize_tts(void)
|
|
||||||
NSString * lang = [NSString stringWithCString: gli_conf_speak_language
|
|
||||||
encoding: NSUTF8StringEncoding];
|
|
||||||
|
|
||||||
- NSArray<NSString *> * voices = [NSSpeechSynthesizer availableVoices];
|
|
||||||
+ NSArray * voices = [NSSpeechSynthesizer availableVoices];
|
|
||||||
for (NSString * voice in voices)
|
|
||||||
{
|
|
||||||
- NSDictionary<NSString *, id> * attr = [NSSpeechSynthesizer attributesForVoice: voice];
|
|
||||||
+ NSDictionary * attr = [NSSpeechSynthesizer attributesForVoice: voice];
|
|
||||||
if ([lang isEqualToString: [attr objectForKey: NSVoiceLocaleIdentifier]])
|
|
||||||
{
|
|
||||||
[synth setVoice: voice];
|
|
@ -34,8 +34,6 @@ stdenv.mkDerivation {
|
|||||||
buildInputs = [ SDL SDL_mixer SDL_sound gtk2 ]
|
buildInputs = [ SDL SDL_mixer SDL_sound gtk2 ]
|
||||||
++ stdenv.lib.optionals stdenv.isDarwin [ cf-private smpeg libvorbis ];
|
++ stdenv.lib.optionals stdenv.isDarwin [ cf-private smpeg libvorbis ];
|
||||||
|
|
||||||
patches = [ ./darwin.patch ];
|
|
||||||
|
|
||||||
buildPhase = jamenv + "jam -j$NIX_BUILD_CORES";
|
buildPhase = jamenv + "jam -j$NIX_BUILD_CORES";
|
||||||
|
|
||||||
installPhase =
|
installPhase =
|
||||||
|
Loading…
Reference in New Issue
Block a user