Skip to content

Conversation

@revmischa
Copy link
Member

Adds an opt-in CMake path to build libprojectM and the playlist library as macOS Framework bundles to simplify integration with macOS apps expecting .framework outputs.

Fixes #924

Adds ENABLE_MACOS_FRAMEWORK cmake option to build projectM-4.framework
and projectM-4-playlist.framework bundles instead of plain dylibs.
Only available on macOS with shared library builds.

The frameworks include all public headers in the Headers/ directory
and use standard macOS framework versioning (Version A).

Fixes #924
- Use absolute paths for headers exported to parent scope
- Include C++ headers in framework when ENABLE_CXX_INTERFACE is on
@revmischa revmischa force-pushed the feature/macos-framework-924 branch from 06a84aa to cce5fdd Compare January 25, 2026 06:28
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds opt-in support for building libprojectM and the playlist library as macOS Framework bundles through a new ENABLE_MACOS_FRAMEWORK CMake option. This addresses issue #924 by enabling developers to build .framework outputs suitable for macOS application integration.

Changes:

  • Added ENABLE_MACOS_FRAMEWORK CMake option to enable framework builds on Darwin platforms with shared libraries
  • Modified header paths in API configuration to use absolute paths for proper framework header handling
  • Added framework build configuration for both projectM and projectM_playlist libraries

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
CMakeLists.txt Adds ENABLE_MACOS_FRAMEWORK cmake option and status output
src/api/CMakeLists.txt Converts header paths to absolute paths and exports PROJECTM_PUBLIC_HEADERS to parent scope for framework builds
src/libprojectM/CMakeLists.txt Configures projectM as a framework bundle with proper identifiers and headers, updates install destination path
src/playlist/CMakeLists.txt Configures projectM_playlist as a framework bundle with proper identifiers and install destinations

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

[FEATURE] Build ProjectM.framework for MacOS

1 participant