Skip to content

libobs-metal fails to configure when ENABLE_PLUGINS=OFF #13376

@glikely

Description

@glikely

Operating System Info

macOS 15

Other OS

No response

OBS Studio Version

32.1.2

OBS Studio Version (Other)

No response

OBS Studio Log URL

Build failure

OBS Studio Crash Log URL

No response

Expected Behavior

Expected build would have the following output. To get the following I had to deleting the libobs-metal line from CMakeLists.txt

% cmake -B build_macos --preset macos -DENABLE_PLUGINS:BOOL=OFF
-- Checking for interprocedural optimization support
-- Checking for interprocedural optimization support - enabled [Release, MinSizeRel]
-- Setting up Pre-Built obs-deps (universal)
-- Setting up Pre-Built obs-deps (universal) - done
-- Setting up Pre-Built Qt6 (universal)
-- Setting up Pre-Built Qt6 (universal) - done
-- Setting up Chromium Embedded Framework (arm64)
-- Setting up Chromium Embedded Framework (arm64) - skipped
                      _                   _             _ _
                 ___ | |__  ___       ___| |_ _   _  __| (_) ___
                / _ \| '_ \/ __|_____/ __| __| | | |/ _` | |/ _ \
               | (_) | |_) \__ \_____\__ \ |_| |_| | (_| | | (_) |
                \___/|_.__/|___/     |___/\__|\__,_|\__,_|_|\___/

OBS:  Application Version: 32.1.2-modified - Build Number: 47
==================================================================================


------------------------       Enabled Features           ------------------------
 - OpenGL renderer
------------------------       Disabled Features          ------------------------
 - Plugin Support
 - User Interface
----------------------------------------------------------------------------------
-- Configuring done (0.7s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/grant/hacking/obs-studio/build_macos

Current Behavior

The following build command results in a failure at the configure step:

% cmake -B build_macos --preset macos -DENABLE_PLUGINS:BOOL=OFF
-- Checking for interprocedural optimization support
-- Checking for interprocedural optimization support - enabled [Release, MinSizeRel]
-- Setting up Pre-Built obs-deps (universal)
-- Setting up Pre-Built obs-deps (universal) - done
-- Setting up Pre-Built Qt6 (universal)
-- Setting up Pre-Built Qt6 (universal) - done
-- Setting up Chromium Embedded Framework (arm64)
-- Setting up Chromium Embedded Framework (arm64) - skipped
                      _                   _             _ _
                 ___ | |__  ___       ___| |_ _   _  __| (_) ___
                / _ \| '_ \/ __|_____/ __| __| | | |/ _` | |/ _ \
               | (_) | |_) \__ \_____\__ \ |_| |_| | (_| | | (_) |
                \___/|_.__/|___/     |___/\__|\__,_|\__,_|_|\___/

OBS:  Application Version: 32.1.2-modified - Build Number: 48
==================================================================================


------------------------       Enabled Features           ------------------------
 - Metal renderer
 - OpenGL renderer
------------------------       Disabled Features          ------------------------
 - Plugin Support
 - User Interface
----------------------------------------------------------------------------------
-- Configuring done (0.7s)
CMake Error: CMake can not determine linker language for target: libobs-metal
CMake Error: CMake can not determine linker language for target: libobs-metal
CMake Error: CMake can not determine linker language for target: libobs-metal
CMake Error: CMake can not determine linker language for target: libobs-metal
CMake Error: CMake can not determine linker language for target: libobs-metal
CMake Error: CMake can not determine linker language for target: libobs-metal
CMake Error: CMake can not determine linker language for target: libobs-metal
CMake Error: CMake can not determine linker language for target: libobs-metal
-- Generating done (0.0s)
CMake Generate step failed.  Build files cannot be regenerated correctly.

Steps to Reproduce

  1. Clone the latest obs studio on MacOS 15.
  2. Configure with cmake -DENABLE_PLUGINS:BOOL=OFF

I first found this behaviour with version 32.0.0. Git bisect narrows the commit down to 32.0.0-beta1-34-gd8b19c3c2, "libobs-metal: Add Metal renderer"

Anything else we should know?

Another hacky to fix is to make mac-virtualcam in plugins/CMakeLists.txt unconditional. It looks like mac-virtualcam adds something that libobs-metal needs. I'm still investigating.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions