Skip to content

(APPLE) Build a Universal Framework, and add code signing and notarization - #237

Merged
cboulay merged 35 commits into
devfrom
cboulay/apple_framework
Jan 11, 2026
Merged

cboulay merged 35 commits into
devfrom
cboulay/apple_framework

Conversation

@cboulay

@cboulay cboulay commented Jul 14, 2025

Copy link
Copy Markdown
Collaborator

This PR attempts to build the lsl library as a (universal) framework instead of a dylib. The primary advantage of putting everything (library, headers, cmake files) inside a framework vs a folder is that it allows us to add entitlements for multicasting. From what I've read, this will make it easier for consumers of lsl.framework to enable multitasking and I hope this will fix some issues with Unity and Apple Vision Pro.

This one is going to take a while to get working on GHA I'm sure while I workout all the certificate and signing/notarizing steps.

@cboulay
cboulay force-pushed the cboulay/cmake_cleanup branch from 8d2a332 to c1d3ebe Compare July 14, 2025 21:37
@cboulay
cboulay force-pushed the cboulay/apple_framework branch from 9202bd9 to 9531c43 Compare July 14, 2025 21:38
Base automatically changed from cboulay/cmake_cleanup to dev July 27, 2025 17:29
@cboulay
cboulay force-pushed the cboulay/apple_framework branch 3 times, most recently from 732e542 to 779473e Compare July 28, 2025 02:48
@cboulay
cboulay marked this pull request as ready for review July 28, 2025 15:03
@cboulay

cboulay commented Jul 28, 2025

Copy link
Copy Markdown
Collaborator Author

I think everything is working. I'll try to retarget a couple applications (e.g., LabRecorder) and the homebrew recipes to this branch and if that goes smoothly then I'll merge this in.

@zeyus

zeyus commented Nov 5, 2025

Copy link
Copy Markdown
Contributor

@cboulay let me know if you need any help with this one, I managed to get a pipeline running for code signing and publishing an iOS app via TestFlight. It wasn't fun.

@cboulay

cboulay commented Nov 5, 2025

Copy link
Copy Markdown
Collaborator Author

@zeyus , absolutely I'd love some help. In fact, I was going to ask you to re-target your other PRs on this branch because I intend to merge this branch soon (early next week).

My (private) projects that use liblsl are currently using FetchContent..., targeting this branch, and it's working great whether as a framework or static lib.

What I haven't been testing thoroughly is installing this as a system lib (this works) then linking to the system lib (still works) and figuring out how much or how little of LSLCMake.cmake do we actually want to keep? The only way I could think of figuring this out is refactoring several Qt-enabled liblsl-linking apps to use this branch of liblsl and see what common functionality is needed and isn't better served by some recent functionality in CMake. I haven't had the time to do that.

If you manage any liblsl-linking apps, then please try targeting them on this branch and let me know how it goes.

@zeyus

zeyus commented Nov 5, 2025

Copy link
Copy Markdown
Contributor

@cboulay Sounds good, I can retarget the other PRs.

For my experiment and some other things, I have iOS and MacOS targets, so I can definitely try linking against the system lib instead of bundling the built dylib. I will need to pull this branch into my fork and rebase my changes onto it though because I'm relying on the runtime API config functionality. This isn't a problem and any issues from that will be resolved when I retarget that PR in particular

…ion that installed non-flat header tree by transitive dependencies.
Initial support for Apple Frameworks

Move scripts into subfolder

Remove set(CMAKE_MACOSX_RPATH ON) because that is already the default value.

Fix framework install directory when not installing to the system.
…d for Ubuntu 18.04 which we no longer support)
…(temporarily disabled non apple runners for debugging)
@cboulay
cboulay force-pushed the cboulay/apple_framework branch from 4f2d0da to d613e91 Compare January 10, 2026 23:27
@cboulay

cboulay commented Jan 11, 2026

Copy link
Copy Markdown
Collaborator Author

I think this is ready for wider testing and integration of other PRs. Here goes...

@cboulay
cboulay merged commit 297e527 into dev Jan 11, 2026
35 of 37 checks passed
@cboulay
cboulay deleted the cboulay/apple_framework branch January 11, 2026 00:11
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