From b5cb7139a31e020aa72cb4f42b52f6970467f962 Mon Sep 17 00:00:00 2001 From: Andrew Gundersen Date: Wed, 18 Aug 2021 14:25:38 -0500 Subject: [PATCH] removed build dir and added it to .gitignore as well as .DS_Store --- .DS_Store | Bin 8196 -> 0 bytes .gitignore | 2 + build/Makefile | 342 ---------- build/Release/.deps/Release/nodeaudio.node.d | 1 - .../obj.target/nodeAudio/src/na_buffer.o.d | 5 - .../obj.target/nodeAudio/src/na_callbacks.o.d | 17 - .../obj.target/nodeAudio/src/na_core.o.d | 19 - .../obj.target/nodeAudio/src/na_front.o.d | 14 - .../obj.target/nodeAudio/src/na_utils.o.d | 8 - .../nodeAudio/src/pa_ringbuffer.o.d | 6 - .../build/Release/libportaudio.dylib.d | 1 - build/Release/libportaudio.dylib | Bin 265077 -> 0 bytes build/Release/nodeaudio.node | Bin 43032 -> 0 bytes .../obj.target/nodeAudio/src/na_buffer.o | Bin 3324 -> 0 bytes .../obj.target/nodeAudio/src/na_callbacks.o | Bin 10216 -> 0 bytes .../obj.target/nodeAudio/src/na_core.o | Bin 13132 -> 0 bytes .../obj.target/nodeAudio/src/na_front.o | Bin 15348 -> 0 bytes .../obj.target/nodeAudio/src/na_utils.o | Bin 4708 -> 0 bytes .../obj.target/nodeAudio/src/pa_ringbuffer.o | Bin 11416 -> 0 bytes build/binding.Makefile | 6 - build/config.gypi | 200 ------ build/gyp-mac-tool | 615 ------------------ build/nodeaudio.target.mk | 216 ------ 23 files changed, 2 insertions(+), 1450 deletions(-) delete mode 100644 .DS_Store delete mode 100644 build/Makefile delete mode 100644 build/Release/.deps/Release/nodeaudio.node.d delete mode 100644 build/Release/.deps/Release/obj.target/nodeAudio/src/na_buffer.o.d delete mode 100644 build/Release/.deps/Release/obj.target/nodeAudio/src/na_callbacks.o.d delete mode 100644 build/Release/.deps/Release/obj.target/nodeAudio/src/na_core.o.d delete mode 100644 build/Release/.deps/Release/obj.target/nodeAudio/src/na_front.o.d delete mode 100644 build/Release/.deps/Release/obj.target/nodeAudio/src/na_utils.o.d delete mode 100644 build/Release/.deps/Release/obj.target/nodeAudio/src/pa_ringbuffer.o.d delete mode 100644 build/Release/build/Release/libportaudio.dylib.d delete mode 100755 build/Release/libportaudio.dylib delete mode 100755 build/Release/nodeaudio.node delete mode 100644 build/Release/obj.target/nodeAudio/src/na_buffer.o delete mode 100644 build/Release/obj.target/nodeAudio/src/na_callbacks.o delete mode 100644 build/Release/obj.target/nodeAudio/src/na_core.o delete mode 100644 build/Release/obj.target/nodeAudio/src/na_front.o delete mode 100644 build/Release/obj.target/nodeAudio/src/na_utils.o delete mode 100644 build/Release/obj.target/nodeAudio/src/pa_ringbuffer.o delete mode 100644 build/binding.Makefile delete mode 100644 build/config.gypi delete mode 100755 build/gyp-mac-tool delete mode 100644 build/nodeaudio.target.mk diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 70f073007a4f6f06ac74673b4b423a9fc5d3c0cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHMO>YuG7=8y@g|wz1JhKdLky#P895z?)9M9e8AZ#S-e) z!5V-OkUQ&%mM6$NiU5mf6Q=^4T=M9MI?@_|n{e1ohOC;CUZ`@3! z)2Z~W^y@~O4;y{EKj_u$?n`lXVE5aOwx4qzoZGhZ!uN(pneC@M?Aw0mbtTz%J-EC& z^h1{qYkUy8J=sq~HOPUEGTG5+ub9tS<=x^qXN@YtEUD}YxPFGh6zr;6XSCgv9^VLj4YDy xn<$hN6fztK%5WTb{)ZuK3$B7w)i_az8l-=I5P&aIIk0{~n)km{!xYy{f!}g0+^PTo diff --git a/.gitignore b/.gitignore index 7d5b7a9..512ecbb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ /build /node_modules + +.DS_Store \ No newline at end of file diff --git a/build/Makefile b/build/Makefile deleted file mode 100644 index 861313d..0000000 --- a/build/Makefile +++ /dev/null @@ -1,342 +0,0 @@ -# We borrow heavily from the kernel build setup, though we are simpler since -# we don't have Kconfig tweaking settings on us. - -# The implicit make rules have it looking for RCS files, among other things. -# We instead explicitly write all the rules we care about. -# It's even quicker (saves ~200ms) to pass -r on the command line. -MAKEFLAGS=-r - -# The source directory tree. -srcdir := .. -abs_srcdir := $(abspath $(srcdir)) - -# The name of the builddir. -builddir_name ?= . - -# The V=1 flag on command line makes us verbosely print command lines. -ifdef V - quiet= -else - quiet=quiet_ -endif - -# Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Release - -# Directory all our build output goes into. -# Note that this must be two directories beneath src/ for unit tests to pass, -# as they reach into the src/ directory for data with relative paths. -builddir ?= $(builddir_name)/$(BUILDTYPE) -abs_builddir := $(abspath $(builddir)) -depsdir := $(builddir)/.deps - -# Object output directory. -obj := $(builddir)/obj -abs_obj := $(abspath $(obj)) - -# We build up a list of every single one of the targets so we can slurp in the -# generated dependency rule Makefiles in one pass. -all_deps := - - - -CC.target ?= $(CC) -CFLAGS.target ?= $(CPPFLAGS) $(CFLAGS) -CXX.target ?= $(CXX) -CXXFLAGS.target ?= $(CPPFLAGS) $(CXXFLAGS) -LINK.target ?= $(LINK) -LDFLAGS.target ?= $(LDFLAGS) -AR.target ?= $(AR) - -# C++ apps need to be linked with g++. -LINK ?= $(CXX.target) - -# TODO(evan): move all cross-compilation logic to gyp-time so we don't need -# to replicate this environment fallback in make as well. -CC.host ?= gcc -CFLAGS.host ?= $(CPPFLAGS_host) $(CFLAGS_host) -CXX.host ?= g++ -CXXFLAGS.host ?= $(CPPFLAGS_host) $(CXXFLAGS_host) -LINK.host ?= $(CXX.host) -LDFLAGS.host ?= -AR.host ?= ar - -# Define a dir function that can handle spaces. -# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions -# "leading spaces cannot appear in the text of the first argument as written. -# These characters can be put into the argument value by variable substitution." -empty := -space := $(empty) $(empty) - -# http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces -replace_spaces = $(subst $(space),?,$1) -unreplace_spaces = $(subst ?,$(space),$1) -dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1))) - -# Flags to make gcc output dependency info. Note that you need to be -# careful here to use the flags that ccache and distcc can understand. -# We write to a dep file on the side first and then rename at the end -# so we can't end up with a broken dep file. -depfile = $(depsdir)/$(call replace_spaces,$@).d -DEPFLAGS = -MMD -MF $(depfile).raw - -# We have to fixup the deps output in a few ways. -# (1) the file output should mention the proper .o file. -# ccache or distcc lose the path to the target, so we convert a rule of -# the form: -# foobar.o: DEP1 DEP2 -# into -# path/to/foobar.o: DEP1 DEP2 -# (2) we want missing files not to cause us to fail to build. -# We want to rewrite -# foobar.o: DEP1 DEP2 \ -# DEP3 -# to -# DEP1: -# DEP2: -# DEP3: -# so if the files are missing, they're just considered phony rules. -# We have to do some pretty insane escaping to get those backslashes -# and dollar signs past make, the shell, and sed at the same time. -# Doesn't work with spaces, but that's fine: .d files have spaces in -# their names replaced with other characters. -define fixup_dep -# The depfile may not exist if the input file didn't have any #includes. -touch $(depfile).raw -# Fixup path as in (1). -sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile) -# Add extra rules as in (2). -# We remove slashes and replace spaces with new lines; -# remove blank lines; -# delete the first line and append a colon to the remaining lines. -sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\ - grep -v '^$$' |\ - sed -e 1d -e 's|$$|:|' \ - >> $(depfile) -rm $(depfile).raw -endef - -# Command definitions: -# - cmd_foo is the actual command to run; -# - quiet_cmd_foo is the brief-output summary of the command. - -quiet_cmd_cc = CC($(TOOLSET)) $@ -cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_cxx = CXX($(TOOLSET)) $@ -cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_objc = CXX($(TOOLSET)) $@ -cmd_objc = $(CC.$(TOOLSET)) $(GYP_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $< - -quiet_cmd_objcxx = CXX($(TOOLSET)) $@ -cmd_objcxx = $(CXX.$(TOOLSET)) $(GYP_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $< - -# Commands for precompiled header files. -quiet_cmd_pch_c = CXX($(TOOLSET)) $@ -cmd_pch_c = $(CC.$(TOOLSET)) $(GYP_PCH_CFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< -quiet_cmd_pch_cc = CXX($(TOOLSET)) $@ -cmd_pch_cc = $(CC.$(TOOLSET)) $(GYP_PCH_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< -quiet_cmd_pch_m = CXX($(TOOLSET)) $@ -cmd_pch_m = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $< -quiet_cmd_pch_mm = CXX($(TOOLSET)) $@ -cmd_pch_mm = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $< - -# gyp-mac-tool is written next to the root Makefile by gyp. -# Use $(4) for the command, since $(2) and $(3) are used as flag by do_cmd -# already. -quiet_cmd_mac_tool = MACTOOL $(4) $< -cmd_mac_tool = ./gyp-mac-tool $(4) $< "$@" - -quiet_cmd_mac_package_framework = PACKAGE FRAMEWORK $@ -cmd_mac_package_framework = ./gyp-mac-tool package-framework "$@" $(4) - -quiet_cmd_infoplist = INFOPLIST $@ -cmd_infoplist = $(CC.$(TOOLSET)) -E -P -Wno-trigraphs -x c $(INFOPLIST_DEFINES) "$<" -o "$@" - -quiet_cmd_touch = TOUCH $@ -cmd_touch = touch $@ - -quiet_cmd_copy = COPY $@ -# send stderr to /dev/null to ignore messages when linking directories. -cmd_copy = rm -rf "$@" && cp -af "$<" "$@" - -quiet_cmd_alink = LIBTOOL-STATIC $@ -cmd_alink = rm -f $@ && ./gyp-mac-tool filter-libtool libtool $(GYP_LIBTOOLFLAGS) -static -o $@ $(filter %.o,$^) - -quiet_cmd_link = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS) - -quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS) - -quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -bundle $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(filter-out FORCE_DO_CMD, $^) $(LIBS) - - -# Define an escape_quotes function to escape single quotes. -# This allows us to handle quotes properly as long as we always use -# use single quotes and escape_quotes. -escape_quotes = $(subst ','\'',$(1)) -# This comment is here just to include a ' to unconfuse syntax highlighting. -# Define an escape_vars function to escape '$' variable syntax. -# This allows us to read/write command lines with shell variables (e.g. -# $LD_LIBRARY_PATH), without triggering make substitution. -escape_vars = $(subst $$,$$$$,$(1)) -# Helper that expands to a shell command to echo a string exactly as it is in -# make. This uses printf instead of echo because printf's behaviour with respect -# to escape sequences is more portable than echo's across different shells -# (e.g., dash, bash). -exact_echo = printf '%s\n' '$(call escape_quotes,$(1))' - -# Helper to compare the command we're about to run against the command -# we logged the last time we ran the command. Produces an empty -# string (false) when the commands match. -# Tricky point: Make has no string-equality test function. -# The kernel uses the following, but it seems like it would have false -# positives, where one string reordered its arguments. -# arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \ -# $(filter-out $(cmd_$@), $(cmd_$(1)))) -# We instead substitute each for the empty string into the other, and -# say they're equal if both substitutions produce the empty string. -# .d files contain ? instead of spaces, take that into account. -command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\ - $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1)))) - -# Helper that is non-empty when a prerequisite changes. -# Normally make does this implicitly, but we force rules to always run -# so we can check their command lines. -# $? -- new prerequisites -# $| -- order-only dependencies -prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?)) - -# Helper that executes all postbuilds until one fails. -define do_postbuilds - @E=0;\ - for p in $(POSTBUILDS); do\ - eval $$p;\ - E=$$?;\ - if [ $$E -ne 0 ]; then\ - break;\ - fi;\ - done;\ - if [ $$E -ne 0 ]; then\ - rm -rf "$@";\ - exit $$E;\ - fi -endef - -# do_cmd: run a command via the above cmd_foo names, if necessary. -# Should always run for a given target to handle command-line changes. -# Second argument, if non-zero, makes it do asm/C/C++ dependency munging. -# Third argument, if non-zero, makes it do POSTBUILDS processing. -# Note: We intentionally do NOT call dirx for depfile, since it contains ? for -# spaces already and dirx strips the ? characters. -define do_cmd -$(if $(or $(command_changed),$(prereq_changed)), - @$(call exact_echo, $($(quiet)cmd_$(1))) - @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))" - $(if $(findstring flock,$(word 2,$(cmd_$1))), - @$(cmd_$(1)) - @echo " $(quiet_cmd_$(1)): Finished", - @$(cmd_$(1)) - ) - @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile) - @$(if $(2),$(fixup_dep)) - $(if $(and $(3), $(POSTBUILDS)), - $(call do_postbuilds) - ) -) -endef - -# Declare the "all" target first so it is the default, -# even though we don't have the deps yet. -.PHONY: all -all: - -# make looks for ways to re-generate included makefiles, but in our case, we -# don't have a direct way. Explicitly telling make that it has nothing to do -# for them makes it go faster. -%.d: ; - -# Use FORCE_DO_CMD to force a target to run. Should be coupled with -# do_cmd. -.PHONY: FORCE_DO_CMD -FORCE_DO_CMD: - -TOOLSET := target -# Suffix rules, putting all outputs into $(obj). -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.m FORCE_DO_CMD - @$(call do_cmd,objc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.mm FORCE_DO_CMD - @$(call do_cmd,objcxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.m FORCE_DO_CMD - @$(call do_cmd,objc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.mm FORCE_DO_CMD - @$(call do_cmd,objcxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.m FORCE_DO_CMD - @$(call do_cmd,objc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.mm FORCE_DO_CMD - @$(call do_cmd,objcxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - - -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,nodeAudio.target.mk)))),) - include nodeAudio.target.mk -endif - -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = cd $(srcdir); /usr/local/Cellar/node@14/14.17.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py -fmake --ignore-environment "--toplevel-dir=." -I/Users/adgundersen/Documents/Crimata/nodeaudio/build/config.gypi -I/usr/local/Cellar/node@14/14.17.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/common.gypi "--depth=." "-Goutput_dir=." "--generator-output=build" "-Dlibrary=shared_library" "-Dvisibility=default" "-Dnode_root_dir=/Users/adgundersen/Library/Caches/node-gyp/14.17.0" "-Dnode_gyp_dir=/usr/local/Cellar/node@14/14.17.0/lib/node_modules/npm/node_modules/node-gyp" "-Dnode_lib_file=/Users/adgundersen/Library/Caches/node-gyp/14.17.0/<(target_arch)/node.lib" "-Dmodule_root_dir=/Users/adgundersen/Documents/Crimata/nodeaudio" "-Dnode_engine=v8" binding.gyp -Makefile: $(srcdir)/../../../Library/Caches/node-gyp/14.17.0/include/node/common.gypi $(srcdir)/../../../../../usr/local/Cellar/node@14/14.17.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi $(srcdir)/build/config.gypi $(srcdir)/binding.gyp - $(call do_cmd,regen_makefile) - -# "all" is a concatenation of the "all" targets from all the included -# sub-makefiles. This is just here to clarify. -all: - -# Add in dependency-tracking rules. $(all_deps) is the list of every single -# target in our tree. Only consider the ones with .d (dependency) info: -d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d)) -ifneq ($(d_files),) - include $(d_files) -endif diff --git a/build/Release/.deps/Release/nodeaudio.node.d b/build/Release/.deps/Release/nodeaudio.node.d deleted file mode 100644 index 2ebd97d..0000000 --- a/build/Release/.deps/Release/nodeaudio.node.d +++ /dev/null @@ -1 +0,0 @@ -cmd_Release/nodeAudio.node := c++ -bundle -undefined dynamic_lookup -Wl,-no_pie -Wl,-search_paths_first -mmacosx-version-min=10.13 -arch x86_64 -L./Release -stdlib=libc++ -o Release/nodeAudio.node Release/obj.target/nodeAudio/src/na_front.o Release/obj.target/nodeAudio/src/na_core.o Release/obj.target/nodeAudio/src/na_callbacks.o Release/obj.target/nodeAudio/src/na_utils.o Release/obj.target/nodeAudio/src/na_buffer.o Release/obj.target/nodeAudio/src/pa_ringbuffer.o -lportaudio -Wl,-rpath,@loader_path diff --git a/build/Release/.deps/Release/obj.target/nodeAudio/src/na_buffer.o.d b/build/Release/.deps/Release/obj.target/nodeAudio/src/na_buffer.o.d deleted file mode 100644 index 5773144..0000000 --- a/build/Release/.deps/Release/obj.target/nodeAudio/src/na_buffer.o.d +++ /dev/null @@ -1,5 +0,0 @@ -cmd_Release/obj.target/nodeAudio/src/na_buffer.o := cc '-DNODE_GYP_MODULE_NAME=nodeAudio' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DBUILDING_NODE_EXTENSION' -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/src -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/config -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/openssl/include -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/uv/include -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/zlib -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/v8/include -I../portaudio/include -O3 -gdwarf-2 -mmacosx-version-min=10.13 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/nodeAudio/src/na_buffer.o.d.raw -c -o Release/obj.target/nodeAudio/src/na_buffer.o ../src/na_buffer.c -Release/obj.target/nodeAudio/src/na_buffer.o: ../src/na_buffer.c \ - ../src/pa_ringbuffer.h -../src/na_buffer.c: -../src/pa_ringbuffer.h: diff --git a/build/Release/.deps/Release/obj.target/nodeAudio/src/na_callbacks.o.d b/build/Release/.deps/Release/obj.target/nodeAudio/src/na_callbacks.o.d deleted file mode 100644 index b992c9d..0000000 --- a/build/Release/.deps/Release/obj.target/nodeAudio/src/na_callbacks.o.d +++ /dev/null @@ -1,17 +0,0 @@ -cmd_Release/obj.target/nodeAudio/src/na_callbacks.o := cc '-DNODE_GYP_MODULE_NAME=nodeAudio' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DBUILDING_NODE_EXTENSION' -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/src -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/config -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/openssl/include -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/uv/include -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/zlib -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/v8/include -I../portaudio/include -O3 -gdwarf-2 -mmacosx-version-min=10.13 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/nodeAudio/src/na_callbacks.o.d.raw -c -o Release/obj.target/nodeAudio/src/na_callbacks.o ../src/na_callbacks.c -Release/obj.target/nodeAudio/src/na_callbacks.o: ../src/na_callbacks.c \ - /Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/node_api.h \ - /Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/js_native_api.h \ - /Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/js_native_api_types.h \ - /Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/node_api_types.h \ - ../portaudio/include/portaudio.h ../src/na_utils.h \ - ../src/pa_ringbuffer.h ../src/na_callbacks.h -../src/na_callbacks.c: -/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/node_api.h: -/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/js_native_api.h: -/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/js_native_api_types.h: -/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/node_api_types.h: -../portaudio/include/portaudio.h: -../src/na_utils.h: -../src/pa_ringbuffer.h: -../src/na_callbacks.h: diff --git a/build/Release/.deps/Release/obj.target/nodeAudio/src/na_core.o.d b/build/Release/.deps/Release/obj.target/nodeAudio/src/na_core.o.d deleted file mode 100644 index 7dc62f6..0000000 --- a/build/Release/.deps/Release/obj.target/nodeAudio/src/na_core.o.d +++ /dev/null @@ -1,19 +0,0 @@ -cmd_Release/obj.target/nodeAudio/src/na_core.o := cc '-DNODE_GYP_MODULE_NAME=nodeAudio' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DBUILDING_NODE_EXTENSION' -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/src -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/config -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/openssl/include -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/uv/include -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/zlib -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/v8/include -I../portaudio/include -O3 -gdwarf-2 -mmacosx-version-min=10.13 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/nodeAudio/src/na_core.o.d.raw -c -o Release/obj.target/nodeAudio/src/na_core.o ../src/na_core.c -Release/obj.target/nodeAudio/src/na_core.o: ../src/na_core.c \ - /Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/node_api.h \ - /Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/js_native_api.h \ - /Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/js_native_api_types.h \ - /Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/node_api_types.h \ - ../portaudio/include/portaudio.h ../src/na_core.h ../src/na_utils.h \ - ../src/pa_ringbuffer.h ../src/na_buffer.h ../src/na_callbacks.h -../src/na_core.c: -/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/node_api.h: -/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/js_native_api.h: -/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/js_native_api_types.h: -/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/node_api_types.h: -../portaudio/include/portaudio.h: -../src/na_core.h: -../src/na_utils.h: -../src/pa_ringbuffer.h: -../src/na_buffer.h: -../src/na_callbacks.h: diff --git a/build/Release/.deps/Release/obj.target/nodeAudio/src/na_front.o.d b/build/Release/.deps/Release/obj.target/nodeAudio/src/na_front.o.d deleted file mode 100644 index 93f8ae0..0000000 --- a/build/Release/.deps/Release/obj.target/nodeAudio/src/na_front.o.d +++ /dev/null @@ -1,14 +0,0 @@ -cmd_Release/obj.target/nodeAudio/src/na_front.o := cc '-DNODE_GYP_MODULE_NAME=nodeAudio' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DBUILDING_NODE_EXTENSION' -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/src -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/config -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/openssl/include -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/uv/include -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/zlib -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/v8/include -I../portaudio/include -O3 -gdwarf-2 -mmacosx-version-min=10.13 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/nodeAudio/src/na_front.o.d.raw -c -o Release/obj.target/nodeAudio/src/na_front.o ../src/na_front.c -Release/obj.target/nodeAudio/src/na_front.o: ../src/na_front.c \ - /Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/node_api.h \ - /Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/js_native_api.h \ - /Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/js_native_api_types.h \ - /Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/node_api_types.h \ - ../portaudio/include/portaudio.h ../src/na_core.h -../src/na_front.c: -/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/node_api.h: -/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/js_native_api.h: -/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/js_native_api_types.h: -/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node/node_api_types.h: -../portaudio/include/portaudio.h: -../src/na_core.h: diff --git a/build/Release/.deps/Release/obj.target/nodeAudio/src/na_utils.o.d b/build/Release/.deps/Release/obj.target/nodeAudio/src/na_utils.o.d deleted file mode 100644 index 7ba8e81..0000000 --- a/build/Release/.deps/Release/obj.target/nodeAudio/src/na_utils.o.d +++ /dev/null @@ -1,8 +0,0 @@ -cmd_Release/obj.target/nodeAudio/src/na_utils.o := cc '-DNODE_GYP_MODULE_NAME=nodeAudio' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DBUILDING_NODE_EXTENSION' -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/src -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/config -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/openssl/include -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/uv/include -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/zlib -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/v8/include -I../portaudio/include -O3 -gdwarf-2 -mmacosx-version-min=10.13 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/nodeAudio/src/na_utils.o.d.raw -c -o Release/obj.target/nodeAudio/src/na_utils.o ../src/na_utils.c -Release/obj.target/nodeAudio/src/na_utils.o: ../src/na_utils.c \ - ../portaudio/include/portaudio.h ../src/na_utils.h \ - ../src/pa_ringbuffer.h -../src/na_utils.c: -../portaudio/include/portaudio.h: -../src/na_utils.h: -../src/pa_ringbuffer.h: diff --git a/build/Release/.deps/Release/obj.target/nodeAudio/src/pa_ringbuffer.o.d b/build/Release/.deps/Release/obj.target/nodeAudio/src/pa_ringbuffer.o.d deleted file mode 100644 index 1f8888d..0000000 --- a/build/Release/.deps/Release/obj.target/nodeAudio/src/pa_ringbuffer.o.d +++ /dev/null @@ -1,6 +0,0 @@ -cmd_Release/obj.target/nodeAudio/src/pa_ringbuffer.o := cc '-DNODE_GYP_MODULE_NAME=nodeAudio' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DBUILDING_NODE_EXTENSION' -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/src -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/config -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/openssl/include -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/uv/include -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/zlib -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/v8/include -I../portaudio/include -O3 -gdwarf-2 -mmacosx-version-min=10.13 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/nodeAudio/src/pa_ringbuffer.o.d.raw -c -o Release/obj.target/nodeAudio/src/pa_ringbuffer.o ../src/pa_ringbuffer.c -Release/obj.target/nodeAudio/src/pa_ringbuffer.o: ../src/pa_ringbuffer.c \ - ../src/pa_ringbuffer.h ../src/pa_memorybarrier.h -../src/pa_ringbuffer.c: -../src/pa_ringbuffer.h: -../src/pa_memorybarrier.h: diff --git a/build/Release/build/Release/libportaudio.dylib.d b/build/Release/build/Release/libportaudio.dylib.d deleted file mode 100644 index 80a1bf1..0000000 --- a/build/Release/build/Release/libportaudio.dylib.d +++ /dev/null @@ -1 +0,0 @@ -cmd_../build/Release/libportaudio.dylib := rm -rf "../build/Release/libportaudio.dylib" && cp -af "../portaudio/bin/libportaudio.dylib" "../build/Release/libportaudio.dylib" diff --git a/build/Release/libportaudio.dylib b/build/Release/libportaudio.dylib deleted file mode 100755 index 9a18fb035c1c65f8262d12ac0fe5ebf3720e977d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265077 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 X{Lpd3wIvnjzpjit`PBFAI~M#O5A9~) diff --git a/build/Release/nodeaudio.node b/build/Release/nodeaudio.node deleted file mode 100755 index 01284f4baa7ff66dd34df9a5d293c64a9a978f5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43032 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 E8?d}3iU0rr diff --git a/build/Release/obj.target/nodeAudio/src/na_buffer.o b/build/Release/obj.target/nodeAudio/src/na_buffer.o deleted file mode 100644 index 2f77299412a1470c2407c51efd9fec1ce990ea1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3324 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 TdF9V{Q~E02%=5WnEZF}8q7g3m diff --git a/build/Release/obj.target/nodeAudio/src/na_core.o b/build/Release/obj.target/nodeAudio/src/na_core.o deleted file mode 100644 index cf07287d702798948ae3c45ec7a9012f9454059e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13132 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 W@mLr`jwNF|rcwciAL`-%JpKnaWru_S diff --git a/build/Release/obj.target/nodeAudio/src/na_front.o b/build/Release/obj.target/nodeAudio/src/na_front.o deleted file mode 100644 index 88c46ee9d272f62d39726e016e7e616f839ea2b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15348 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 CF#?+a diff --git a/build/Release/obj.target/nodeAudio/src/pa_ringbuffer.o b/build/Release/obj.target/nodeAudio/src/pa_ringbuffer.o deleted file mode 100644 index e4ba27607d24a819434eb72380e310a4de448383..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11416 zcmcIqeRNdSwLf?6++jkJnIscp!iS6o5Ck$LU@J9RCK+G?XdqvJ2*YGDA*1=~WCB7J zC}`_6VB>rG+GkbhqV4k4Rk0OUZFN;%VIh9>Jx~|o)8~U$t4q}4^Xap872a>3yU(4; z%mnBk@2s4=_u2cm_t|HkeeXRpnScNCqjO_~&~$+dx*dHxUA*XM73fYHkJ9d}G!=Up zqsH(ls28wZD3plap5OsUDAclWRZD8DxHA+88u^o9OlKcArlErd@OT3%9q&qZ`Tp z$oRBk({ec_9qmWsOqzDh=`YsX*+-a6e=AB%%R?OJCuQb%JM#Axlg;oK?(gr8hI+$2 z(SaQPO2?ZMzpQgSZl*!QM@=-i}acS%6I?8J=j47I6ONTpa0@Q&SBCIEw;~G?5tc|u=bES9y8QvpV{cFY%G{@G#&1qEC}y!YxXBU4-8#4 z6td3@IV(e$_}Gk-^Uns{H=P{{6;+1p!N{9+yXVaf%s;VprhmqN1S6YDgYNyG2K7zl z!DLM!SsWZ{EN@6U1IbSUGmiU{d3PTioO0%>EL?TN^Ku#0FGx(nc%O!Wa;b+kwo zPx8}-+9_P%5??)E{nYF-#u>v z#eMZcGwz05aVOuf!md0sjlxcYB`b19oje)bdDyuoJ)vg)ku-|lBZ@IoqtSj$jYM1m3IH`g0jH;(_5$cXS^01 z8YmxHTI$|^d|Bj!VDi6VbF4x8Y+>?$7tVMO8!`FJR7<@~zpcFbm0+^<*uv!hEUZ3% z_rZiy<{1dTd;iP9$nj;#KQ9~VIl3(Qu~aO)`}|h#P0qtyMeL)gT@+`7bzQ%uxf31I=KZGo~CkKSNzv=768XJK9IT6vSrDhqnJ%bi_mGABi4Q41tT%R zp}}Jk#0z$+1*7sa7wo4Ok~h*F?%m+s7>y6a`g*<9HC1z}=6I(|>Fny7IT%&Vt*NTH zc7~{`@(sizzW#719_!uEKG@kAjaNm4kNm_U;RNgle5)dT9nmVh>wNWny@_aVV!#)O zZj5&K^+)5r<=x>#XJ5Q$z;|Of(%8JJs-FdEnC8GzOFhtWn_widzSaSR=?iyk80_r; z7wz>0`XYlpa+dmdtS6iZ`+6~dc(5bZ=W8E~b$5tJS2!+~hg%b|?$Dy{!GW$O1YakE z7jZ0tb!k#_WzDfIQ9%n0nd8s^1fhh8^(N-lm{e?v#}d&7#B#fcN5dT^*B;w&V|d^; zG0+q4?v`A%J4!K<$GXi4ybeu|DyoLwSRxkghBhq-j(Bl2krFmx4*$k*tUKJ^9aYvN z5GyI5OMo;*H_&b=AO4Pw;oeBv^wN*HoY4ZgmNHe;zK zC3%pqS$gV!l`d$SXf>JCb(q<4{OY~{TCCb{0Y^xS!b&X}!Y)!(9`h4+{1<5KN1?jLLEsA}`5?zAhtjbW1 z@3*`(DfTBUk~^*j&!upReJve#@wH`Dh6*9I{H)4QkZ)SEXJx3JRVgo7+rE_{YArdo z{S-q!OiiR%8y}4|k+tpFRxQfvGs{ud?i8`ZDVF0_#h$f9qgu_gAT5eL%p#lE7*zc0 z7HnAk^#)ccXpZ7m3x3b?lC^LJ`LzYfDsBbYXF;;QsZ@~t z79^{tiaJ6D>s>@^Ot{r!{{=Cgq` z^YPt_-HoIfRhsVlTK;wUR~3A{0AMc^4g(mHk-?ZU*qK9oyXyfuKc93$v;>x)}YZq(=J%I=@+kP~RilY9ZDCgo{J78)pczRzq{x0M*v6fk4>S z<1*$pxBCm_~Cwn~vlXS`2owBA-}&%05L!nR6h-b#gRw^bJ8h14iw zt1QZksZocmvNUfCM)Zk5kJ>8B#hBAzD|<$ed-+jP*?x~}$$D_^ zeq5;SGzokZBSiS{f)tX!jjY+G5UZ|GQ;1?ZYieyH=V+62xQ7|9KA>oAui<`oRYLqn zVitk#7_ii|o@uUyKv{9C zk0h!zwN+QR=o@*N95L>YX(rxf>UkWxT6o9QUa-^xOtrRVC|t)eY$s+6=ITOEMa zSzBv++W_Et06rpSJ(w?u`6n>C1I(|%xQMC1k}HU*1v3SVhu)VyFr{C^Wt=)wKg2Bn|S_>Gn&YscCIblHC!uE1!pn_i6r8bV?xzz9h4DCo3gP+E5EDa^NkV;w|v#kT^izTiP zFr%z;FXo~uA5Zn{c@-lnW6$SctWs7E)XA1gxeWlTl+~&Ds|br4mGTn+a4D<9@;6xR znS~(DQZA&zRmVWeh%`T8xZVUr*77+pvX({hG+On8Be&wg)K)x5=`kzehp9^VVX6`y zN>#!`sY=*GW@aTkLM&IpPl?C=FQQ4G89C`QsY#!auzYp8Q?C@Q?M1SCOYQ#^^k$+$ zeoOBEN(|-xzg3Sp$`4>D_x~;OROBP{^w6~?U5ktBE<}i+-+2!LYg3g&Hf-g8r1)l z)c=@CrU{3je-}|4L`g;^Lyl2KQbuw(5)D@`b@Y{e>o<>HR?@ofyYIfz|L*3NoBtuX zy~%&iBikO0Rad+|d}z;8M_&B_uuq^LL_dc94*D196XARgIz3`r(CI}&^U${@^jK*^ z&Zx=vEGXGfleazSW(o+6%7wffu>+0(MbI$gA@*~~{?s)%f!=4Vvx1!&N{$uoC zq0>=|Y}TWf2|*<`1mZeu`84f;6uTCVpVSI&rTu49G#mg47hFp5}vcC&@4aYvq zkeO2#u~#p#4}d?u%E+>pn+6@#TrR!Zdu>aT&~7i%iVDU!hv9|dorqra2daYe=Q+PP zM!Jf=ZL2TjGL^UhaMKy5{0VGt3vj0xNBbk2n)k+?V|F=q z8~573C;bwB7w~)kXy%*tOSVz)pTNo{4g;cTe{~h&Dr*NGH1q#(|Ihz-^9>HfeX-t1 z_h3iVH?VoY7vf)XWd8dP5rz1FVpU!ANEiv|Le-S1bXaFs3^6SihuI}nC1)c7B2U@-75z^PD>&x`ARS2ZYnC4h!Tn=|d2*``+ z^JbfazfDD`KMuCcq3_kIWQ(dY9j?qU`AKNNpln{>5*(ihbtv0@nASZH=&Uuu@`?fi2tvn*cPGheAidbS$ zx^txS`t)=ne?B;zj%C#vS2|uY^7OHtX~~mvq2IObsF^kB5D{Yh8Yd1GtuYA|;n0r=RE2X3lBzFq4v)wy<@Dd6rhT7^eK&Jz z1xh)+#6Vx!Dg!;BAyED0tyK>FDJ_98&1g@jqOBeo?HWYu+ll1X8WUx-Giz-n=F8y) z-1j(V%{~m854wlxw^@D?HxlVz1ttCCOdnwRN4VWc|2)&#OpBR5jB^WE#{*2aFpV=^ z!?c;{=U&&&`Gb(JO7Ar8eH<}V-f0!_C)$OixB@n;X=P*7!{NHk%EF`|C~bo z&><&6{^WpvOc82qzA@U<7vEeLj>lusxD{IF&rX!5oIm_f%FN$5D0#+@9F#aa?$pmf La$?9&3L^dwJ4d2a diff --git a/build/binding.Makefile b/build/binding.Makefile deleted file mode 100644 index 3e37236..0000000 --- a/build/binding.Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# This file is generated by gyp; do not edit. - -export builddir_name ?= ./build/. -.PHONY: all -all: - $(MAKE) nodeAudio diff --git a/build/config.gypi b/build/config.gypi deleted file mode 100644 index 9a04c4b..0000000 --- a/build/config.gypi +++ /dev/null @@ -1,200 +0,0 @@ -# Do not edit. File was generated by node-gyp's "configure" step -{ - "target_defaults": { - "cflags": [], - "default_configuration": "Release", - "defines": [], - "include_dirs": [], - "libraries": [] - }, - "variables": { - "asan": 0, - "build_v8_with_gn": "false", - "coverage": "false", - "dcheck_always_on": 0, - "debug_nghttp2": "false", - "debug_node": "false", - "enable_lto": "false", - "enable_pgo_generate": "false", - "enable_pgo_use": "false", - "error_on_warn": "false", - "force_dynamic_crt": 0, - "host_arch": "x64", - "icu_gyp_path": "tools/icu/icu-system.gyp", - "icu_small": "false", - "icu_ver_major": "69", - "is_debug": 0, - "llvm_version": "12.0", - "napi_build_version": "8", - "node_byteorder": "little", - "node_debug_lib": "false", - "node_enable_d8": "false", - "node_install_npm": "true", - "node_module_version": 83, - "node_no_browser_globals": "false", - "node_prefix": "/usr/local/Cellar/node@14/14.17.0", - "node_release_urlbase": "", - "node_shared": "false", - "node_shared_brotli": "false", - "node_shared_cares": "false", - "node_shared_http_parser": "false", - "node_shared_libuv": "false", - "node_shared_nghttp2": "false", - "node_shared_openssl": "false", - "node_shared_zlib": "false", - "node_tag": "", - "node_target_type": "executable", - "node_use_bundled_v8": "true", - "node_use_dtrace": "true", - "node_use_etw": "false", - "node_use_node_code_cache": "true", - "node_use_node_snapshot": "true", - "node_use_openssl": "true", - "node_use_v8_platform": "true", - "node_with_ltcg": "false", - "node_without_node_options": "false", - "openssl_fips": "", - "openssl_is_fips": "false", - "ossfuzz": "false", - "shlib_suffix": "83.dylib", - "target_arch": "x64", - "v8_enable_31bit_smis_on_64bit_arch": 0, - "v8_enable_gdbjit": 0, - "v8_enable_i18n_support": 1, - "v8_enable_inspector": 1, - "v8_enable_lite_mode": 0, - "v8_enable_object_print": 1, - "v8_enable_pointer_compression": 0, - "v8_no_strict_aliasing": 1, - "v8_optimized_debug": 1, - "v8_promise_internal_field_count": 1, - "v8_random_seed": 0, - "v8_trace_maps": 0, - "v8_use_siphash": 1, - "want_separate_host_toolset": 0, - "xcode_version": "12.0", - "nodedir": "/Users/adgundersen/Library/Caches/node-gyp/14.17.0", - "standalone_static_library": 1, - "dry_run": "", - "legacy_bundling": "", - "save_dev": "", - "browser": "", - "commit_hooks": "true", - "only": "", - "viewer": "man", - "also": "", - "rollback": "true", - "sign_git_commit": "", - "audit": "true", - "usage": "", - "globalignorefile": "/usr/local/etc/npmignore", - "init_author_url": "", - "maxsockets": "50", - "shell": "/bin/zsh", - "metrics_registry": "https://registry.npmjs.org/", - "parseable": "", - "shrinkwrap": "true", - "init_license": "ISC", - "timing": "", - "if_present": "", - "cache_max": "Infinity", - "init_author_email": "", - "sign_git_tag": "", - "cert": "", - "git_tag_version": "true", - "local_address": "", - "long": "", - "preid": "", - "fetch_retries": "2", - "registry": "https://registry.npmjs.org/", - "key": "", - "message": "%s", - "versions": "", - "globalconfig": "/usr/local/etc/npmrc", - "always_auth": "", - "logs_max": "10", - "prefer_online": "", - "cache_lock_retries": "10", - "global_style": "", - "update_notifier": "true", - "audit_level": "low", - "heading": "npm", - "fetch_retry_mintimeout": "10000", - "offline": "", - "read_only": "", - "searchlimit": "20", - "access": "", - "json": "", - "allow_same_version": "", - "description": "true", - "engine_strict": "", - "https_proxy": "", - "init_module": "/Users/adgundersen/.npm-init.js", - "userconfig": "/Users/adgundersen/.npmrc", - "cidr": "", - "node_version": "14.17.0", - "user": "", - "auth_type": "legacy", - "editor": "vi", - "ignore_prepublish": "", - "save": "true", - "script_shell": "", - "tag": "latest", - "before": "", - "global": "", - "progress": "true", - "ham_it_up": "", - "optional": "true", - "searchstaleness": "900", - "bin_links": "true", - "force": "", - "save_prod": "", - "searchopts": "", - "depth": "Infinity", - "node_gyp": "/usr/local/Cellar/node@14/14.17.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js", - "rebuild_bundle": "true", - "sso_poll_frequency": "500", - "unicode": "true", - "fetch_retry_maxtimeout": "60000", - "ca": "", - "save_prefix": "^", - "scripts_prepend_node_path": "warn-only", - "sso_type": "oauth", - "strict_ssl": "true", - "tag_version_prefix": "v", - "dev": "", - "fetch_retry_factor": "10", - "group": "20", - "save_exact": "", - "cache_lock_stale": "60000", - "prefer_offline": "", - "version": "", - "cache_min": "10", - "otp": "", - "cache": "/Users/adgundersen/.npm", - "searchexclude": "", - "color": "true", - "package_lock": "true", - "fund": "true", - "package_lock_only": "", - "save_optional": "", - "user_agent": "npm/6.14.13 node/v14.17.0 darwin x64", - "ignore_scripts": "", - "cache_lock_wait": "10000", - "production": "", - "save_bundle": "", - "send_metrics": "", - "init_version": "1.0.0", - "node_options": "", - "umask": "0022", - "scope": "", - "git": "git", - "init_author_name": "", - "onload_script": "", - "tmp": "/var/folders/8h/5gtb4v414sj09_yzw9rs5z7m0000gq/T", - "unsafe_perm": "true", - "prefix": "/usr/local", - "format_package_lock": "true", - "link": "" - } -} diff --git a/build/gyp-mac-tool b/build/gyp-mac-tool deleted file mode 100755 index 033b4e5..0000000 --- a/build/gyp-mac-tool +++ /dev/null @@ -1,615 +0,0 @@ -#!/usr/bin/env python -# Generated by gyp. Do not edit. -# Copyright (c) 2012 Google Inc. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Utility functions to perform Xcode-style build steps. - -These functions are executed via gyp-mac-tool when using the Makefile generator. -""" - -from __future__ import print_function - -import fcntl -import fnmatch -import glob -import json -import os -import plistlib -import re -import shutil -import string -import subprocess -import sys -import tempfile - -PY3 = bytes != str - - -def main(args): - executor = MacTool() - exit_code = executor.Dispatch(args) - if exit_code is not None: - sys.exit(exit_code) - - -class MacTool(object): - """This class performs all the Mac tooling steps. The methods can either be - executed directly, or dispatched from an argument list.""" - - def Dispatch(self, args): - """Dispatches a string command to a method.""" - if len(args) < 1: - raise Exception("Not enough arguments") - - method = "Exec%s" % self._CommandifyName(args[0]) - return getattr(self, method)(*args[1:]) - - def _CommandifyName(self, name_string): - """Transforms a tool name like copy-info-plist to CopyInfoPlist""" - return name_string.title().replace('-', '') - - def ExecCopyBundleResource(self, source, dest, convert_to_binary): - """Copies a resource file to the bundle/Resources directory, performing any - necessary compilation on each resource.""" - extension = os.path.splitext(source)[1].lower() - if os.path.isdir(source): - # Copy tree. - # TODO(thakis): This copies file attributes like mtime, while the - # single-file branch below doesn't. This should probably be changed to - # be consistent with the single-file branch. - if os.path.exists(dest): - shutil.rmtree(dest) - shutil.copytree(source, dest) - elif extension == '.xib': - return self._CopyXIBFile(source, dest) - elif extension == '.storyboard': - return self._CopyXIBFile(source, dest) - elif extension == '.strings': - self._CopyStringsFile(source, dest, convert_to_binary) - else: - shutil.copy(source, dest) - - def _CopyXIBFile(self, source, dest): - """Compiles a XIB file with ibtool into a binary plist in the bundle.""" - - # ibtool sometimes crashes with relative paths. See crbug.com/314728. - base = os.path.dirname(os.path.realpath(__file__)) - if os.path.relpath(source): - source = os.path.join(base, source) - if os.path.relpath(dest): - dest = os.path.join(base, dest) - - args = ['xcrun', 'ibtool', '--errors', '--warnings', '--notices', - '--output-format', 'human-readable-text', '--compile', dest, source] - ibtool_section_re = re.compile(r'/\*.*\*/') - ibtool_re = re.compile(r'.*note:.*is clipping its content') - ibtoolout = subprocess.Popen(args, stdout=subprocess.PIPE) - current_section_header = None - for line in ibtoolout.stdout: - if ibtool_section_re.match(line): - current_section_header = line - elif not ibtool_re.match(line): - if current_section_header: - sys.stdout.write(current_section_header) - current_section_header = None - sys.stdout.write(line) - return ibtoolout.returncode - - def _ConvertToBinary(self, dest): - subprocess.check_call([ - 'xcrun', 'plutil', '-convert', 'binary1', '-o', dest, dest]) - - def _CopyStringsFile(self, source, dest, convert_to_binary): - """Copies a .strings file using iconv to reconvert the input into UTF-16.""" - input_code = self._DetectInputEncoding(source) or "UTF-8" - - # Xcode's CpyCopyStringsFile / builtin-copyStrings seems to call - # CFPropertyListCreateFromXMLData() behind the scenes; at least it prints - # CFPropertyListCreateFromXMLData(): Old-style plist parser: missing - # semicolon in dictionary. - # on invalid files. Do the same kind of validation. - import CoreFoundation - s = open(source, 'rb').read() - d = CoreFoundation.CFDataCreate(None, s, len(s)) - _, error = CoreFoundation.CFPropertyListCreateFromXMLData(None, d, 0, None) - if error: - return - - fp = open(dest, 'wb') - fp.write(s.decode(input_code).encode('UTF-16')) - fp.close() - - if convert_to_binary == 'True': - self._ConvertToBinary(dest) - - def _DetectInputEncoding(self, file_name): - """Reads the first few bytes from file_name and tries to guess the text - encoding. Returns None as a guess if it can't detect it.""" - fp = open(file_name, 'rb') - try: - header = fp.read(3) - except Exception: - fp.close() - return None - fp.close() - if header.startswith("\xFE\xFF"): - return "UTF-16" - elif header.startswith("\xFF\xFE"): - return "UTF-16" - elif header.startswith("\xEF\xBB\xBF"): - return "UTF-8" - else: - return None - - def ExecCopyInfoPlist(self, source, dest, convert_to_binary, *keys): - """Copies the |source| Info.plist to the destination directory |dest|.""" - # Read the source Info.plist into memory. - fd = open(source, 'r') - lines = fd.read() - fd.close() - - # Insert synthesized key/value pairs (e.g. BuildMachineOSBuild). - plist = plistlib.readPlistFromString(lines) - if keys: - plist = dict(plist.items() + json.loads(keys[0]).items()) - lines = plistlib.writePlistToString(plist) - - # Go through all the environment variables and replace them as variables in - # the file. - IDENT_RE = re.compile(r'[/\s]') - for key in os.environ: - if key.startswith('_'): - continue - evar = '${%s}' % key - evalue = os.environ[key] - lines = string.replace(lines, evar, evalue) - - # Xcode supports various suffices on environment variables, which are - # all undocumented. :rfc1034identifier is used in the standard project - # template these days, and :identifier was used earlier. They are used to - # convert non-url characters into things that look like valid urls -- - # except that the replacement character for :identifier, '_' isn't valid - # in a URL either -- oops, hence :rfc1034identifier was born. - evar = '${%s:identifier}' % key - evalue = IDENT_RE.sub('_', os.environ[key]) - lines = string.replace(lines, evar, evalue) - - evar = '${%s:rfc1034identifier}' % key - evalue = IDENT_RE.sub('-', os.environ[key]) - lines = string.replace(lines, evar, evalue) - - # Remove any keys with values that haven't been replaced. - lines = lines.split('\n') - for i in range(len(lines)): - if lines[i].strip().startswith("${"): - lines[i] = None - lines[i - 1] = None - lines = '\n'.join(filter(lambda x: x is not None, lines)) - - # Write out the file with variables replaced. - fd = open(dest, 'w') - fd.write(lines) - fd.close() - - # Now write out PkgInfo file now that the Info.plist file has been - # "compiled". - self._WritePkgInfo(dest) - - if convert_to_binary == 'True': - self._ConvertToBinary(dest) - - def _WritePkgInfo(self, info_plist): - """This writes the PkgInfo file from the data stored in Info.plist.""" - plist = plistlib.readPlist(info_plist) - if not plist: - return - - # Only create PkgInfo for executable types. - package_type = plist['CFBundlePackageType'] - if package_type != 'APPL': - return - - # The format of PkgInfo is eight characters, representing the bundle type - # and bundle signature, each four characters. If that is missing, four - # '?' characters are used instead. - signature_code = plist.get('CFBundleSignature', '????') - if len(signature_code) != 4: # Wrong length resets everything, too. - signature_code = '?' * 4 - - dest = os.path.join(os.path.dirname(info_plist), 'PkgInfo') - fp = open(dest, 'w') - fp.write('%s%s' % (package_type, signature_code)) - fp.close() - - def ExecFlock(self, lockfile, *cmd_list): - """Emulates the most basic behavior of Linux's flock(1).""" - # Rely on exception handling to report errors. - fd = os.open(lockfile, os.O_RDONLY|os.O_NOCTTY|os.O_CREAT, 0o666) - fcntl.flock(fd, fcntl.LOCK_EX) - return subprocess.call(cmd_list) - - def ExecFilterLibtool(self, *cmd_list): - """Calls libtool and filters out '/path/to/libtool: file: foo.o has no - symbols'.""" - libtool_re = re.compile(r'^.*libtool: file: .* has no symbols$') - libtool_re5 = re.compile( - r'^.*libtool: warning for library: ' + - r'.* the table of contents is empty ' + - r'\(no object file members in the library define global symbols\)$') - env = os.environ.copy() - # Ref: - # http://www.opensource.apple.com/source/cctools/cctools-809/misc/libtool.c - # The problem with this flag is that it resets the file mtime on the file to - # epoch=0, e.g. 1970-1-1 or 1969-12-31 depending on timezone. - env['ZERO_AR_DATE'] = '1' - libtoolout = subprocess.Popen(cmd_list, stderr=subprocess.PIPE, env=env) - _, err = libtoolout.communicate() - if PY3: - err = err.decode('utf-8') - for line in err.splitlines(): - if not libtool_re.match(line) and not libtool_re5.match(line): - print(line, file=sys.stderr) - # Unconditionally touch the output .a file on the command line if present - # and the command succeeded. A bit hacky. - if not libtoolout.returncode: - for i in range(len(cmd_list) - 1): - if cmd_list[i] == "-o" and cmd_list[i+1].endswith('.a'): - os.utime(cmd_list[i+1], None) - break - return libtoolout.returncode - - def ExecPackageFramework(self, framework, version): - """Takes a path to Something.framework and the Current version of that and - sets up all the symlinks.""" - # Find the name of the binary based on the part before the ".framework". - binary = os.path.basename(framework).split('.')[0] - - CURRENT = 'Current' - RESOURCES = 'Resources' - VERSIONS = 'Versions' - - if not os.path.exists(os.path.join(framework, VERSIONS, version, binary)): - # Binary-less frameworks don't seem to contain symlinks (see e.g. - # chromium's out/Debug/org.chromium.Chromium.manifest/ bundle). - return - - # Move into the framework directory to set the symlinks correctly. - pwd = os.getcwd() - os.chdir(framework) - - # Set up the Current version. - self._Relink(version, os.path.join(VERSIONS, CURRENT)) - - # Set up the root symlinks. - self._Relink(os.path.join(VERSIONS, CURRENT, binary), binary) - self._Relink(os.path.join(VERSIONS, CURRENT, RESOURCES), RESOURCES) - - # Back to where we were before! - os.chdir(pwd) - - def _Relink(self, dest, link): - """Creates a symlink to |dest| named |link|. If |link| already exists, - it is overwritten.""" - if os.path.lexists(link): - os.remove(link) - os.symlink(dest, link) - - def ExecCompileXcassets(self, keys, *inputs): - """Compiles multiple .xcassets files into a single .car file. - - This invokes 'actool' to compile all the inputs .xcassets files. The - |keys| arguments is a json-encoded dictionary of extra arguments to - pass to 'actool' when the asset catalogs contains an application icon - or a launch image. - - Note that 'actool' does not create the Assets.car file if the asset - catalogs does not contains imageset. - """ - command_line = [ - 'xcrun', 'actool', '--output-format', 'human-readable-text', - '--compress-pngs', '--notices', '--warnings', '--errors', - ] - is_iphone_target = 'IPHONEOS_DEPLOYMENT_TARGET' in os.environ - if is_iphone_target: - platform = os.environ['CONFIGURATION'].split('-')[-1] - if platform not in ('iphoneos', 'iphonesimulator'): - platform = 'iphonesimulator' - command_line.extend([ - '--platform', platform, '--target-device', 'iphone', - '--target-device', 'ipad', '--minimum-deployment-target', - os.environ['IPHONEOS_DEPLOYMENT_TARGET'], '--compile', - os.path.abspath(os.environ['CONTENTS_FOLDER_PATH']), - ]) - else: - command_line.extend([ - '--platform', 'macosx', '--target-device', 'mac', - '--minimum-deployment-target', os.environ['MACOSX_DEPLOYMENT_TARGET'], - '--compile', - os.path.abspath(os.environ['UNLOCALIZED_RESOURCES_FOLDER_PATH']), - ]) - if keys: - keys = json.loads(keys) - for key, value in keys.items(): - arg_name = '--' + key - if isinstance(value, bool): - if value: - command_line.append(arg_name) - elif isinstance(value, list): - for v in value: - command_line.append(arg_name) - command_line.append(str(v)) - else: - command_line.append(arg_name) - command_line.append(str(value)) - # Note: actool crashes if inputs path are relative, so use os.path.abspath - # to get absolute path name for inputs. - command_line.extend(map(os.path.abspath, inputs)) - subprocess.check_call(command_line) - - def ExecMergeInfoPlist(self, output, *inputs): - """Merge multiple .plist files into a single .plist file.""" - merged_plist = {} - for path in inputs: - plist = self._LoadPlistMaybeBinary(path) - self._MergePlist(merged_plist, plist) - plistlib.writePlist(merged_plist, output) - - def ExecCodeSignBundle(self, key, resource_rules, entitlements, provisioning): - """Code sign a bundle. - - This function tries to code sign an iOS bundle, following the same - algorithm as Xcode: - 1. copy ResourceRules.plist from the user or the SDK into the bundle, - 2. pick the provisioning profile that best match the bundle identifier, - and copy it into the bundle as embedded.mobileprovision, - 3. copy Entitlements.plist from user or SDK next to the bundle, - 4. code sign the bundle. - """ - resource_rules_path = self._InstallResourceRules(resource_rules) - substitutions, overrides = self._InstallProvisioningProfile( - provisioning, self._GetCFBundleIdentifier()) - entitlements_path = self._InstallEntitlements( - entitlements, substitutions, overrides) - subprocess.check_call([ - 'codesign', '--force', '--sign', key, '--resource-rules', - resource_rules_path, '--entitlements', entitlements_path, - os.path.join( - os.environ['TARGET_BUILD_DIR'], - os.environ['FULL_PRODUCT_NAME'])]) - - def _InstallResourceRules(self, resource_rules): - """Installs ResourceRules.plist from user or SDK into the bundle. - - Args: - resource_rules: string, optional, path to the ResourceRules.plist file - to use, default to "${SDKROOT}/ResourceRules.plist" - - Returns: - Path to the copy of ResourceRules.plist into the bundle. - """ - source_path = resource_rules - target_path = os.path.join( - os.environ['BUILT_PRODUCTS_DIR'], - os.environ['CONTENTS_FOLDER_PATH'], - 'ResourceRules.plist') - if not source_path: - source_path = os.path.join( - os.environ['SDKROOT'], 'ResourceRules.plist') - shutil.copy2(source_path, target_path) - return target_path - - def _InstallProvisioningProfile(self, profile, bundle_identifier): - """Installs embedded.mobileprovision into the bundle. - - Args: - profile: string, optional, short name of the .mobileprovision file - to use, if empty or the file is missing, the best file installed - will be used - bundle_identifier: string, value of CFBundleIdentifier from Info.plist - - Returns: - A tuple containing two dictionary: variables substitutions and values - to overrides when generating the entitlements file. - """ - source_path, provisioning_data, team_id = self._FindProvisioningProfile( - profile, bundle_identifier) - target_path = os.path.join( - os.environ['BUILT_PRODUCTS_DIR'], - os.environ['CONTENTS_FOLDER_PATH'], - 'embedded.mobileprovision') - shutil.copy2(source_path, target_path) - substitutions = self._GetSubstitutions(bundle_identifier, team_id + '.') - return substitutions, provisioning_data['Entitlements'] - - def _FindProvisioningProfile(self, profile, bundle_identifier): - """Finds the .mobileprovision file to use for signing the bundle. - - Checks all the installed provisioning profiles (or if the user specified - the PROVISIONING_PROFILE variable, only consult it) and select the most - specific that correspond to the bundle identifier. - - Args: - profile: string, optional, short name of the .mobileprovision file - to use, if empty or the file is missing, the best file installed - will be used - bundle_identifier: string, value of CFBundleIdentifier from Info.plist - - Returns: - A tuple of the path to the selected provisioning profile, the data of - the embedded plist in the provisioning profile and the team identifier - to use for code signing. - - Raises: - SystemExit: if no .mobileprovision can be used to sign the bundle. - """ - profiles_dir = os.path.join( - os.environ['HOME'], 'Library', 'MobileDevice', 'Provisioning Profiles') - if not os.path.isdir(profiles_dir): - print('cannot find mobile provisioning for %s' % (bundle_identifier), file=sys.stderr) - sys.exit(1) - provisioning_profiles = None - if profile: - profile_path = os.path.join(profiles_dir, profile + '.mobileprovision') - if os.path.exists(profile_path): - provisioning_profiles = [profile_path] - if not provisioning_profiles: - provisioning_profiles = glob.glob( - os.path.join(profiles_dir, '*.mobileprovision')) - valid_provisioning_profiles = {} - for profile_path in provisioning_profiles: - profile_data = self._LoadProvisioningProfile(profile_path) - app_id_pattern = profile_data.get( - 'Entitlements', {}).get('application-identifier', '') - for team_identifier in profile_data.get('TeamIdentifier', []): - app_id = '%s.%s' % (team_identifier, bundle_identifier) - if fnmatch.fnmatch(app_id, app_id_pattern): - valid_provisioning_profiles[app_id_pattern] = ( - profile_path, profile_data, team_identifier) - if not valid_provisioning_profiles: - print('cannot find mobile provisioning for %s' % (bundle_identifier), file=sys.stderr) - sys.exit(1) - # If the user has multiple provisioning profiles installed that can be - # used for ${bundle_identifier}, pick the most specific one (ie. the - # provisioning profile whose pattern is the longest). - selected_key = max(valid_provisioning_profiles, key=lambda v: len(v)) - return valid_provisioning_profiles[selected_key] - - def _LoadProvisioningProfile(self, profile_path): - """Extracts the plist embedded in a provisioning profile. - - Args: - profile_path: string, path to the .mobileprovision file - - Returns: - Content of the plist embedded in the provisioning profile as a dictionary. - """ - with tempfile.NamedTemporaryFile() as temp: - subprocess.check_call([ - 'security', 'cms', '-D', '-i', profile_path, '-o', temp.name]) - return self._LoadPlistMaybeBinary(temp.name) - - def _MergePlist(self, merged_plist, plist): - """Merge |plist| into |merged_plist|.""" - for key, value in plist.items(): - if isinstance(value, dict): - merged_value = merged_plist.get(key, {}) - if isinstance(merged_value, dict): - self._MergePlist(merged_value, value) - merged_plist[key] = merged_value - else: - merged_plist[key] = value - else: - merged_plist[key] = value - - def _LoadPlistMaybeBinary(self, plist_path): - """Loads into a memory a plist possibly encoded in binary format. - - This is a wrapper around plistlib.readPlist that tries to convert the - plist to the XML format if it can't be parsed (assuming that it is in - the binary format). - - Args: - plist_path: string, path to a plist file, in XML or binary format - - Returns: - Content of the plist as a dictionary. - """ - try: - # First, try to read the file using plistlib that only supports XML, - # and if an exception is raised, convert a temporary copy to XML and - # load that copy. - return plistlib.readPlist(plist_path) - except: - pass - with tempfile.NamedTemporaryFile() as temp: - shutil.copy2(plist_path, temp.name) - subprocess.check_call(['plutil', '-convert', 'xml1', temp.name]) - return plistlib.readPlist(temp.name) - - def _GetSubstitutions(self, bundle_identifier, app_identifier_prefix): - """Constructs a dictionary of variable substitutions for Entitlements.plist. - - Args: - bundle_identifier: string, value of CFBundleIdentifier from Info.plist - app_identifier_prefix: string, value for AppIdentifierPrefix - - Returns: - Dictionary of substitutions to apply when generating Entitlements.plist. - """ - return { - 'CFBundleIdentifier': bundle_identifier, - 'AppIdentifierPrefix': app_identifier_prefix, - } - - def _GetCFBundleIdentifier(self): - """Extracts CFBundleIdentifier value from Info.plist in the bundle. - - Returns: - Value of CFBundleIdentifier in the Info.plist located in the bundle. - """ - info_plist_path = os.path.join( - os.environ['TARGET_BUILD_DIR'], - os.environ['INFOPLIST_PATH']) - info_plist_data = self._LoadPlistMaybeBinary(info_plist_path) - return info_plist_data['CFBundleIdentifier'] - - def _InstallEntitlements(self, entitlements, substitutions, overrides): - """Generates and install the ${BundleName}.xcent entitlements file. - - Expands variables "$(variable)" pattern in the source entitlements file, - add extra entitlements defined in the .mobileprovision file and the copy - the generated plist to "${BundlePath}.xcent". - - Args: - entitlements: string, optional, path to the Entitlements.plist template - to use, defaults to "${SDKROOT}/Entitlements.plist" - substitutions: dictionary, variable substitutions - overrides: dictionary, values to add to the entitlements - - Returns: - Path to the generated entitlements file. - """ - source_path = entitlements - target_path = os.path.join( - os.environ['BUILT_PRODUCTS_DIR'], - os.environ['PRODUCT_NAME'] + '.xcent') - if not source_path: - source_path = os.path.join( - os.environ['SDKROOT'], - 'Entitlements.plist') - shutil.copy2(source_path, target_path) - data = self._LoadPlistMaybeBinary(target_path) - data = self._ExpandVariables(data, substitutions) - if overrides: - for key in overrides: - if key not in data: - data[key] = overrides[key] - plistlib.writePlist(data, target_path) - return target_path - - def _ExpandVariables(self, data, substitutions): - """Expands variables "$(variable)" in data. - - Args: - data: object, can be either string, list or dictionary - substitutions: dictionary, variable substitutions to perform - - Returns: - Copy of data where each references to "$(variable)" has been replaced - by the corresponding value found in substitutions, or left intact if - the key was not found. - """ - if isinstance(data, str): - for key, value in substitutions.items(): - data = data.replace('$(%s)' % key, value) - return data - if isinstance(data, list): - return [self._ExpandVariables(v, substitutions) for v in data] - if isinstance(data, dict): - return {k: self._ExpandVariables(data[k], substitutions) for k in data} - return data - -if __name__ == '__main__': - sys.exit(main(sys.argv[1:])) diff --git a/build/nodeaudio.target.mk b/build/nodeaudio.target.mk deleted file mode 100644 index 42a50f8..0000000 --- a/build/nodeaudio.target.mk +++ /dev/null @@ -1,216 +0,0 @@ -# This file is generated by gyp; do not edit. - -TOOLSET := target -TARGET := nodeAudio -### Generated for copy rule. -$(srcdir)/build/Release/libportaudio.dylib: TOOLSET := $(TOOLSET) -$(srcdir)/build/Release/libportaudio.dylib: $(srcdir)/portaudio/bin/libportaudio.dylib FORCE_DO_CMD - $(call do_cmd,copy) - -all_deps += $(srcdir)/build/Release/libportaudio.dylib -binding_gyp_nodeAudio_target_copies = $(srcdir)/build/Release/libportaudio.dylib - -DEFS_Debug := \ - '-DNODE_GYP_MODULE_NAME=nodeAudio' \ - '-DUSING_UV_SHARED=1' \ - '-DUSING_V8_SHARED=1' \ - '-DV8_DEPRECATION_WARNINGS=1' \ - '-DV8_DEPRECATION_WARNINGS' \ - '-DV8_IMMINENT_DEPRECATION_WARNINGS' \ - '-D_DARWIN_USE_64_BIT_INODE=1' \ - '-D_LARGEFILE_SOURCE' \ - '-D_FILE_OFFSET_BITS=64' \ - '-DOPENSSL_NO_PINSHARED' \ - '-DOPENSSL_THREADS' \ - '-DBUILDING_NODE_EXTENSION' \ - '-DDEBUG' \ - '-D_DEBUG' \ - '-DV8_ENABLE_CHECKS' - -# Flags passed to all source files. -CFLAGS_Debug := \ - -O0 \ - -gdwarf-2 \ - -mmacosx-version-min=10.13 \ - -arch x86_64 \ - -Wall \ - -Wendif-labels \ - -W \ - -Wno-unused-parameter - -# Flags passed to only C files. -CFLAGS_C_Debug := \ - -fno-strict-aliasing - -# Flags passed to only C++ files. -CFLAGS_CC_Debug := \ - -std=gnu++1y \ - -stdlib=libc++ \ - -fno-rtti \ - -fno-exceptions \ - -fno-strict-aliasing - -# Flags passed to only ObjC files. -CFLAGS_OBJC_Debug := - -# Flags passed to only ObjC++ files. -CFLAGS_OBJCC_Debug := - -INCS_Debug := \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/src \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/config \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/openssl/include \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/uv/include \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/zlib \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/v8/include \ - -I$(srcdir)/portaudio/include - -DEFS_Release := \ - '-DNODE_GYP_MODULE_NAME=nodeAudio' \ - '-DUSING_UV_SHARED=1' \ - '-DUSING_V8_SHARED=1' \ - '-DV8_DEPRECATION_WARNINGS=1' \ - '-DV8_DEPRECATION_WARNINGS' \ - '-DV8_IMMINENT_DEPRECATION_WARNINGS' \ - '-D_DARWIN_USE_64_BIT_INODE=1' \ - '-D_LARGEFILE_SOURCE' \ - '-D_FILE_OFFSET_BITS=64' \ - '-DOPENSSL_NO_PINSHARED' \ - '-DOPENSSL_THREADS' \ - '-DBUILDING_NODE_EXTENSION' - -# Flags passed to all source files. -CFLAGS_Release := \ - -O3 \ - -gdwarf-2 \ - -mmacosx-version-min=10.13 \ - -arch x86_64 \ - -Wall \ - -Wendif-labels \ - -W \ - -Wno-unused-parameter - -# Flags passed to only C files. -CFLAGS_C_Release := \ - -fno-strict-aliasing - -# Flags passed to only C++ files. -CFLAGS_CC_Release := \ - -std=gnu++1y \ - -stdlib=libc++ \ - -fno-rtti \ - -fno-exceptions \ - -fno-strict-aliasing - -# Flags passed to only ObjC files. -CFLAGS_OBJC_Release := - -# Flags passed to only ObjC++ files. -CFLAGS_OBJCC_Release := - -INCS_Release := \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/include/node \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/src \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/config \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/openssl/openssl/include \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/uv/include \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/zlib \ - -I/Users/adgundersen/Library/Caches/node-gyp/14.17.0/deps/v8/include \ - -I$(srcdir)/portaudio/include - -OBJS := \ - $(obj).target/$(TARGET)/src/na_front.o \ - $(obj).target/$(TARGET)/src/na_core.o \ - $(obj).target/$(TARGET)/src/na_callbacks.o \ - $(obj).target/$(TARGET)/src/na_utils.o \ - $(obj).target/$(TARGET)/src/na_buffer.o \ - $(obj).target/$(TARGET)/src/pa_ringbuffer.o - -# Add to the list of files we specially track dependencies for. -all_deps += $(OBJS) - -# Make sure our actions/rules run before any of us. -$(OBJS): | $(binding_gyp_nodeAudio_target_copies) - -# CFLAGS et al overrides must be target-local. -# See "Target-specific Variable Values" in the GNU Make manual. -$(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) - -# Suffix rules, putting all outputs into $(obj). - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# End of this set of suffix rules -### Rules for final target. -# Build our special outputs first. -$(builddir)/nodeAudio.node: | $(binding_gyp_nodeAudio_target_copies) - -# Preserve order dependency of special output on deps. -$(binding_gyp_nodeAudio_target_copies): | - -LDFLAGS_Debug := \ - -undefined dynamic_lookup \ - -Wl,-no_pie \ - -Wl,-search_paths_first \ - -mmacosx-version-min=10.13 \ - -arch x86_64 \ - -L$(builddir) \ - -stdlib=libc++ - -LIBTOOLFLAGS_Debug := \ - -undefined dynamic_lookup \ - -Wl,-no_pie \ - -Wl,-search_paths_first - -LDFLAGS_Release := \ - -undefined dynamic_lookup \ - -Wl,-no_pie \ - -Wl,-search_paths_first \ - -mmacosx-version-min=10.13 \ - -arch x86_64 \ - -L$(builddir) \ - -stdlib=libc++ - -LIBTOOLFLAGS_Release := \ - -undefined dynamic_lookup \ - -Wl,-no_pie \ - -Wl,-search_paths_first - -LIBS := \ - -lportaudio \ - -Wl,-rpath,@loader_path - -$(builddir)/nodeAudio.node: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) -$(builddir)/nodeAudio.node: LIBS := $(LIBS) -$(builddir)/nodeAudio.node: GYP_LIBTOOLFLAGS := $(LIBTOOLFLAGS_$(BUILDTYPE)) -$(builddir)/nodeAudio.node: TOOLSET := $(TOOLSET) -$(builddir)/nodeAudio.node: $(OBJS) FORCE_DO_CMD - $(call do_cmd,solink_module) - -all_deps += $(builddir)/nodeAudio.node -# Add target alias -.PHONY: nodeAudio -nodeAudio: $(builddir)/nodeAudio.node - -# Short alias for building this executable. -.PHONY: nodeAudio.node -nodeAudio.node: $(builddir)/nodeAudio.node - -# Add executable to "all" target. -.PHONY: all -all: $(builddir)/nodeAudio.node - -- 2.43.0