From 3316da429d3d35e8f9da2bbb121091f5396a0977 Mon Sep 17 00:00:00 2001 From: Greg Wuller Date: Thu, 3 Mar 2022 15:44:30 -0800 Subject: [PATCH 1/2] make macos abi version optional --- wscript | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/wscript b/wscript index a83e22b..8924ede 100644 --- a/wscript +++ b/wscript @@ -121,6 +121,8 @@ def options(opt): default=False, help="Embed protos in the library") lm_opts.add_option('--enable-mac-bundle', action='store_true', default=False, help="look for protocol libraries in a Mac bundle's Frameworks directory") + lm_opts.add_option('--mac-version-min', type=str, + default=False, help="specify minimum macOS ABI version [optional]") def configure(conf): # just for output prettifying @@ -181,9 +183,10 @@ def configure(conf): conf.env.append_unique('CFLAGS', "-g") conf.env.append_unique('LINKFLAGS', "-g") - if conf.env.DEST_OS == "darwin": - conf.env.append_unique("CFLAGS", ["-mmacosx-version-min=10.5"]) - conf.env.append_unique("LINKFLAGS", ["-mmacosx-version-min=10.5"]) + if conf.env.DEST_OS == "darwin" and conf.options.mac_version_min: + abi_version = "-mmacosx-version-min=" + conf.options.mac_version_min + conf.env.append_unique("CFLAGS", [abi_version]) + conf.env.append_unique("LINKFLAGS", [abi_version]) if os.path.basename(conf.env.CC[0]) == "clang": conf.env.append_unique("CFLAGS", ["-Wno-initializer-overrides"]) From bb5438411f9a8122027ebf94a644befae7c01588 Mon Sep 17 00:00:00 2001 From: Greg Wuller Date: Thu, 3 Mar 2022 16:57:14 -0800 Subject: [PATCH 2/2] restore O_NONBLOCK, macos open hangs without it --- src/platform/posix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform/posix.c b/src/platform/posix.c index f1ba899..263b9bb 100644 --- a/src/platform/posix.c +++ b/src/platform/posix.c @@ -99,7 +99,7 @@ int monome_platform_open(monome_t *monome, const monome_devmap_t *m, struct termios nt, ot; int fd; - if( (fd = open(dev, O_RDWR | O_NOCTTY)) < 0 ) { + if( (fd = open(dev, O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0 ) { perror("libmonome: could not open monome device"); return 1; }