Skip to content

chore: updates build to allow portaudio to be dynamically linked#877

Merged
rektdeckard merged 1 commit into
mainfrom
tobias/homebrew-build-dynamic-portaudio
Jun 16, 2026
Merged

chore: updates build to allow portaudio to be dynamically linked#877
rektdeckard merged 1 commit into
mainfrom
tobias/homebrew-build-dynamic-portaudio

Conversation

@rektdeckard

@rektdeckard rektdeckard commented Jun 15, 2026

Copy link
Copy Markdown
Member

Homebrew maintainers did not like us vendoring portaudio when a formula exists for it (albeit dynamically linking the library).

For homebrew builds and whenever portaudio_system tag is specified, we do not use the vendored portaudio copy and instead link it dynamically. For all other builds, we continue to use the vendored copy and produce a unity build. This lets us keep other build targets portable.

Standard, vendored build:

> otool -L ./bin/lk
./bin/lk:
        /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1000.0.0)
        /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 5026.5.4)
        /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 1226.0.0)
        /usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 61901.120.67)
        /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 2100.43.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1356.0.0)

With -tags portaudio_system:

> otool -L ./bin/lk
./bin/lk:
        /opt/homebrew/opt/portaudio/lib/libportaudio.2.dylib (compatibility version 3.0.0, current version 3.0.0)
        /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1000.0.0)
        /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 5026.5.4)
        /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 1226.0.0)
        /usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 61901.120.67)
        /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 2100.43.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1356.0.0)

For homebrew builds and whenever `portaudio_system` tag is specified,
we do not use the vendored portaudio copy and instead link it
dynamically.
@rektdeckard rektdeckard merged commit e01f69d into main Jun 16, 2026
10 checks passed
@rektdeckard rektdeckard deleted the tobias/homebrew-build-dynamic-portaudio branch June 16, 2026 00:27
@theomonnom

Copy link
Copy Markdown
Member

Oh interesting that brew is pushing against static linking.
Thanks @rektdeckard

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants