Skip to content

Conversation

@shauneccles
Copy link
Member

Refactor vcpkg triplet files to support static linking and release-only builds across Windows, Linux, and macOS. Adjust meson-python settings for compatibility and optimize build times by adding new triplets. Update installation commands to accommodate unsupported builds and ensure proper C++ stdlib linking on Windows.

…ds on Windows; update comments for clarity and remove unnecessary lines.
…raries; adjust includes in strutils.c for compatibility
Fix numpy include
Update docs
uv lock
…on Windows; remove MinGW triplets for improved compatibility and build efficiency

Platform specific test commands to allow local cibw testing
…or static linking and clarify vcpkg dependency installation
… and adjust compiler settings for static linking
…ildwheel and install delvewheel for DLL bundling
…ion and update before-build step for cibuildwheel compatibility
…r static linking and update dependencies for rubberband support
…static libraries and Python extension linking
@shauneccles
Copy link
Member Author

@copilot Please review the GitHub action build logs for windows and identify the issues with building in CI.

Once you have identified all of the issues please fix them.

Copy link

Copilot AI commented Dec 2, 2025

@shauneccles I've opened a new pull request, #54, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 4 commits December 2, 2025 23:02
- Add sleefdft library detection in meson.build for rubberband FFT support
- Fix python/meson.build to properly include platform-specific system libraries
- Initialize pyaubio_extra_deps and include it in pyaubio_deps
- Windows: Add ws2_32, secur32, bcrypt, mfuuid, strmiids, ole32
- Linux: Add pthread and libstdc++

Co-authored-by: shauneccles <[email protected]>
…bility

Root cause: vcpkg's rubberband package on Windows expects SLEEF as DLL
(import library with __imp_ symbols), not static library. This is a vcpkg
packaging limitation that prevents true static linking of rubberband.

Changes:
- Update vcpkg.json: Change rubberband and sleef platform from "!linux" to "osx"
- Windows builds will use dummy timestretch/pitchshift implementations
- macOS retains full rubberband support
- Documented decision in WINDOWS_RUBBERBAND_REMOVAL.md

Impact: Windows users lose rubberband time-stretch/pitch-shift features, but
core aubio functionality (onset, pitch, tempo, MFCC) remains fully functional.

Co-authored-by: shauneccles <[email protected]>
The SLEEF DFT library detection was added in f234ec3 to try to fix
rubberband linking on Windows. Since we've removed rubberband from
Windows builds (now macOS-only), this detection is no longer needed.

The base SLEEF library detection remains for macOS rubberband support.

Kept python/meson.build changes as they fix a bug where platform-specific
libraries were being added to the wrong 'dependencies' variable instead
of 'pyaubio_deps'. Windows libraries (ws2_32, etc.) are still needed for
FFmpeg static linking.

Co-authored-by: shauneccles <[email protected]>
Fix Windows build: Remove rubberband due to static linking incompatibility
@shauneccles
Copy link
Member Author

@copilot Update the readme in the python bindings to accurately reflect the wheels features given the changes in this PR.

Copy link

Copilot AI commented Dec 3, 2025

@shauneccles I've opened a new pull request, #55, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 2 commits December 3, 2025 09:45
Update Python README to reflect wheel features after static linking changes
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.

2 participants