Skip to content

Conversation

@cboulay
Copy link
Collaborator

@cboulay cboulay commented Jul 14, 2025

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
…ion that installed non-flat header tree by transitive dependencies.
@cboulay cboulay force-pushed the cboulay/apple_framework branch from 7eec7ce to d2b56fe Compare July 27, 2025 17:34
@cboulay cboulay force-pushed the cboulay/apple_framework branch from d2b56fe to 73d3650 Compare July 27, 2025 18:23
@cboulay cboulay force-pushed the cboulay/apple_framework branch 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
Copy link
Collaborator Author

cboulay commented Jul 28, 2025

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
Copy link
Contributor

zeyus commented Nov 5, 2025

@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
Copy link
Collaborator Author

cboulay commented Nov 5, 2025

@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
Copy link
Contributor

zeyus commented Nov 5, 2025

@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

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