Conversation
|
Thank you claude 👍 I appreciate the contribution, will look at it tomorrow even though I have no way of testing it. |
|
I tested it on my mac, which was the whole purpose because I wanted to use the plugin on mac. It works flawless (except the system design is affecting the desing of the plugin). |
|
thanks for your feedback, will address this. |
Cool! Also don't sweat the linux build being broken, that's also happening on master. Will try to fix it, just a heads up that you probably need to rebase your branch after I'm done |
It's fixed now |
|
"I've" addressed all your feedback: From your review comments:
Additional fixes found during review:
Haven't been able to do a full end-to-end build test on all platforms, but the logic should be solid. Let me |
Build and run the plugin on macOS with the following changes: CMakeLists.txt: - Fix plugin suffix to .dylib (was .so) - Add macOS-specific linker flags (-Wl,-all_load instead of GNU ld flags) - Link required macOS system frameworks (AudioToolbox, CoreAudio, CoreFoundation, CoreMedia, CoreVideo, VideoToolbox, Security) - Link bz2, z, iconv for FFmpeg dependencies on macOS - Use find_package(Python3) for portable python invocation - Set correct TS3 plugin path for macOS FFmpeg build scripts: - Add universal binary support (arm64 + x86_64) via lipo on macOS - Add -Wno-incompatible-function-pointer-types for newer Clang compat - Add lib_mac_universal output directory in copy_binaries.sh - Use dynamic CPU count detection for parallel make Other: - Add macOS to supported platforms in package.ini.in - Distinguish arm64/x86_64 in build name (buildinfo.c) - Make plugin packaging cross-platform (zip on Linux/macOS) Tested on macOS 15 (Apple Silicon) with TeamSpeak 3 Client (x86_64). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rename build_universal to build_mac_universal for clarity - Cap njobs at 16 to prevent memory issues on many-core machines - Reuse build_single_arch in non-universal branch instead of duplicating configure - Fix argument splitting bug in build_single_arch by using bash array - Flatten nested if/else to elseif in CMakeLists.txt - Add comment explaining why all Apple frameworks are needed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Set cross-compile flags based on host architecture so universal builds work on both Intel and Apple Silicon Macs - Remove stale ffmpeg/universal dir before single-arch builds to prevent linking against outdated libs - Add error checking to plugin packaging (RESULT_VARIABLE + FATAL_ERROR) - Fix memory leaks in ConfigModel: use stack allocation instead of malloc without free Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fcaed54 to
3f74323
Compare
|
Hi, sorry for the mess but the recent surge in activity here prompted me to do some general cleanup. In part, I dd a full port to use ffmpeg 8, together with a lot of other streamlining of Cmake and the ffmpeg build script in general. I am also adding full github actions support to build ffmpeg from sources instead of relying on the prebuilt binaries in this repo. So I will probably be picking things from this PR as well, just you know that your branch will probably require another rework once it's done. Sorry for that, but I think it will be good for the project overall. I also want to add a github action to build the mac version. I also would like to separate it out into its own release, as bundling another ~15 MB with the all-in-one addon is a bit excessive and I don't have any means to test it. |
Summary
Adds full macOS build support for the RP Soundboard plugin. The plugin has been successfully tested on macOS 15 (Apple Silicon) with TeamSpeak 3 Client.
What changed
.dylibinstead of.so), added macOS linker flags (-Wl,-all_loadinstead of unsupported GNU ld flags), linked required system frameworks (AudioToolbox, CoreAudio, CoreFoundation, CoreMedia, CoreVideo, VideoToolbox, Security) and libraries (bz2, z, iconv) needed by FFmpeg on macOS. Replaced hardcodedpythonwithfind_package(Python3)for cross-platform compatibility. Set correct macOS TS3 plugin directory.lipoon macOS. Added-Wno-incompatible-function-pointer-typesflag for compatibility with modern Apple Clang. Addedlib_mac_universaloutput directory.zipon Linux/macOS instead of the hardcoded Windows 7-Zip path.macto the supported platforms list.Build instructions (macOS)
Notes
pythontofind_package(Python3)change also benefits Linux wherepythonmay not be available (onlypython3).Test plan