Browse Source

cmake: Update Framework link definition for macOS builds

PatTheMav 2 years ago
parent
commit
59904a66a3

+ 2 - 2
UI/cmake/feature-sparkle.cmake

@@ -1,10 +1,10 @@
 if(SPARKLE_APPCAST_URL AND SPARKLE_PUBLIC_KEY)
 if(SPARKLE_APPCAST_URL AND SPARKLE_PUBLIC_KEY)
   find_library(SPARKLE Sparkle)
   find_library(SPARKLE Sparkle)
   mark_as_advanced(SPARKLE)
   mark_as_advanced(SPARKLE)
-
   target_sources(obs-studio PRIVATE update/mac-update.cpp update/mac-update.hpp update/sparkle-updater.mm)
   target_sources(obs-studio PRIVATE update/mac-update.cpp update/mac-update.hpp update/sparkle-updater.mm)
   set_source_files_properties(update/sparkle-updater.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
   set_source_files_properties(update/sparkle-updater.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
-  target_link_libraries(obs-studio PRIVATE ${SPARKLE})
+
+  target_link_libraries(obs-studio PRIVATE "$<LINK_LIBRARY:FRAMEWORK,${SPARKLE}>")
 
 
   if(OBS_BETA GREATER 0 OR OBS_RELEASE_CANDIDATE GREATER 0)
   if(OBS_BETA GREATER 0 OR OBS_RELEASE_CANDIDATE GREATER 0)
     set(SPARKLE_UPDATE_INTERVAL 3600) # 1 hour
     set(SPARKLE_UPDATE_INTERVAL 3600) # 1 hour

+ 10 - 10
UI/cmake/os-macos.cmake

@@ -2,21 +2,21 @@ if(NOT XCODE)
   target_add_resource(obs-studio "${CMAKE_CURRENT_SOURCE_DIR}/cmake/macos/Assets.xcassets")
   target_add_resource(obs-studio "${CMAKE_CURRENT_SOURCE_DIR}/cmake/macos/Assets.xcassets")
 endif()
 endif()
 
 
-find_library(APPKIT Appkit)
-find_library(AVFOUNDATION AVFoundation)
-find_library(APPLICATIONSERVICES ApplicationServices)
-mark_as_advanced(APPKIT AVFOUNDATION APPLICATIONSERVICES)
-
 target_sources(obs-studio PRIVATE platform-osx.mm forms/OBSPermissions.ui window-permissions.cpp window-permissions.hpp)
 target_sources(obs-studio PRIVATE platform-osx.mm forms/OBSPermissions.ui window-permissions.cpp window-permissions.hpp)
-
-set_source_files_properties(platform-osx.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
-
-target_link_libraries(obs-studio PRIVATE ${APPKIT} ${AVFOUNDATION} ${APPLICATIONSERVICES})
-
 target_compile_options(
 target_compile_options(
   obs-studio PRIVATE -Wno-error=float-conversion -Wno-error=implicit-int-conversion -Wno-error=shorten-64-to-32
   obs-studio PRIVATE -Wno-error=float-conversion -Wno-error=implicit-int-conversion -Wno-error=shorten-64-to-32
                      -Wno-quoted-include-in-framework-header -Wno-comma)
                      -Wno-quoted-include-in-framework-header -Wno-comma)
 
 
+set_source_files_properties(platform-osx.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
+
 if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0.3)
 if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0.3)
   target_compile_options(obs-studio PRIVATE -Wno-error=unqualified-std-cast-call)
   target_compile_options(obs-studio PRIVATE -Wno-error=unqualified-std-cast-call)
 endif()
 endif()
+
+# cmake-format: off
+target_link_libraries(
+  obs-studio
+  PRIVATE "$<LINK_LIBRARY:FRAMEWORK,AppKit.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,ApplicationServices.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,AVFoundation.framework>")
+# cmake-format: on

+ 7 - 5
UI/frontend-plugins/aja-output-ui/CMakeLists.txt

@@ -68,11 +68,13 @@ if(OS_WINDOWS)
     APPEND
     APPEND
     PROPERTY AUTORCC_OPTIONS --format-version 1)
     PROPERTY AUTORCC_OPTIONS --format-version 1)
 elseif(OS_MACOS)
 elseif(OS_MACOS)
-  find_library(IOKIT_FRAMEWORK Iokit)
-  find_library(COREFOUNDATION_LIBRARY CoreFoundation)
-  find_library(APPKIT_FRAMEWORK AppKit)
-
-  target_link_libraries(aja-output-ui PRIVATE ${IOKIT} ${COREFOUNDATION} ${APPKIT})
+  # cmake-format: off
+  target_link_libraries(
+    aja-output-ui
+    PRIVATE "$<LINK_LIBRARY:FRAMEWORK,AppKit.framework>"
+            "$<LINK_LIBRARY:FRAMEWORK,CoreFoundation.framework>"
+            "$<LINK_LIBRARY:FRAMEWORK,IOKit.framework>")
+  # cmake-format: on
   target_compile_options(aja-output-ui PRIVATE -Wno-error=deprecated-declarations
   target_compile_options(aja-output-ui PRIVATE -Wno-error=deprecated-declarations
                                                -Wno-quoted-include-in-framework-header)
                                                -Wno-quoted-include-in-framework-header)
 elseif(OS_LINUX OR OS_FREEBSD)
 elseif(OS_LINUX OR OS_FREEBSD)

+ 1 - 3
UI/frontend-plugins/decklink-captions/CMakeLists.txt

@@ -24,10 +24,8 @@ if(OS_WINDOWS)
     APPEND
     APPEND
     PROPERTY AUTORCC_OPTIONS --format-version 1)
     PROPERTY AUTORCC_OPTIONS --format-version 1)
 elseif(OS_MACOS)
 elseif(OS_MACOS)
-  find_library(COCOA Cocoa)
-  mark_as_advanced(COCOA)
-  target_link_libraries(decklink-captions PRIVATE ${COCOA})
   target_compile_options(decklink-captions PRIVATE -Wno-quoted-include-in-framework-header -Wno-comma)
   target_compile_options(decklink-captions PRIVATE -Wno-quoted-include-in-framework-header -Wno-comma)
+  target_link_libraries(decklink-captions PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>")
 elseif(OS_LINUX OR OS_FREEBSD)
 elseif(OS_LINUX OR OS_FREEBSD)
   find_package(X11 REQUIRED)
   find_package(X11 REQUIRED)
   mark_as_advanced(X11)
   mark_as_advanced(X11)

+ 7 - 24
libobs/cmake/os-macos.cmake

@@ -1,29 +1,12 @@
-find_library(COCOA Cocoa)
-find_library(COREAUDIO CoreAudio)
-find_library(AUDIOTOOLBOX AudioToolbox)
-find_library(AUDIOUNIT AudioUnit)
-find_library(APPKIT AppKit)
-find_library(IOKIT IOKit)
-find_library(CARBON Carbon)
-
-mark_as_advanced(
-  COCOA
-  COREAUDIO
-  AUDIOTOOLBOX
-  AUDIOUNIT
-  APPKIT
-  IOKIT
-  CARBON)
-
 target_link_libraries(
 target_link_libraries(
   libobs
   libobs
-  PRIVATE ${COCOA}
-          ${COREAUDIO}
-          ${AUDIOTOOLBOX}
-          ${AUDIOUNIT}
-          ${APPKIT}
-          ${IOKIT}
-          ${CARBON})
+  PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreAudio.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,AudioToolbox.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,AudioUnit.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,AppKit.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,IOKit.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,Carbon.framework>")
 
 
 target_sources(
 target_sources(
   libobs
   libobs

+ 7 - 7
plugins/coreaudio-encoder/CMakeLists.txt

@@ -23,13 +23,13 @@ if(OS_WINDOWS)
 
 
   target_sources(coreaudio-encoder PRIVATE coreaudio-encoder.rc windows-imports.h)
   target_sources(coreaudio-encoder PRIVATE coreaudio-encoder.rc windows-imports.h)
 elseif(OS_MACOS)
 elseif(OS_MACOS)
-  find_library(COREFOUNDATION CoreFoundation)
-  find_library(COREAUDIO CoreAudio)
-  find_library(AUDIOTOOLBOX AudioToolbox)
-  mark_as_advanced(AUDIOTOOLBOX COREAUDIO COREFOUNDATION)
-
-  target_link_libraries(coreaudio-encoder PRIVATE ${COREFOUNDATION} ${COREAUDIO} ${AUDIOTOOLBOX})
-
+  # cmake-format: off
+  target_link_libraries(
+    coreaudio-encoder
+    PRIVATE "$<LINK_LIBRARY:FRAMEWORK,CoreFoundation.framework>"
+            "$<LINK_LIBRARY:FRAMEWORK,CoreAudio.framework>"
+            "$<LINK_LIBRARY:FRAMEWORK,AudioToolbox.framework>")
+  # cmake-format: on
 endif()
 endif()
 
 
 set_target_properties_obs(coreaudio-encoder PROPERTIES FOLDER plugins PREFIX "")
 set_target_properties_obs(coreaudio-encoder PROPERTIES FOLDER plugins PREFIX "")

+ 7 - 15
plugins/mac-avcapture/CMakeLists.txt

@@ -1,12 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
-
-find_library(AVFOUNDATION AVFoundation)
-find_library(COCOA Cocoa)
-find_library(COREFOUNDATION CoreFoundation)
-find_library(COREMEDIA CoreMedia)
-find_library(COREVIDEO CoreVideo)
-find_library(COREMEDIAIO CoreMediaIO)
-mark_as_advanced(AVFOUNDATION COCOA COREFOUNDATION COREMEDIA COREMEDIAIO COREVIDEO)
+cmake_minimum_required(VERSION 3.24...3.25)
 
 
 add_library(mac-avcapture MODULE)
 add_library(mac-avcapture MODULE)
 add_library(OBS::avcapture ALIAS mac-avcapture)
 add_library(OBS::avcapture ALIAS mac-avcapture)
@@ -20,12 +12,12 @@ endif()
 target_link_libraries(
 target_link_libraries(
   mac-avcapture
   mac-avcapture
   PRIVATE OBS::libobs
   PRIVATE OBS::libobs
-          ${AVFOUNDATION}
-          ${COCOA}
-          ${COREFOUNDATION}
-          ${COREMEDIA}
-          ${COREVIDEO}
-          ${COREMEDIAIO})
+          "$<LINK_LIBRARY:FRAMEWORK,AVFoundation.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreFoundation.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreMedia.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreVideo.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreMediaIO.framework>")
 
 
 set_target_properties_obs(
 set_target_properties_obs(
   mac-avcapture
   mac-avcapture

+ 14 - 16
plugins/mac-capture/CMakeLists.txt

@@ -1,13 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
-
-find_library(COREAUDIO CoreAudio)
-find_library(AUDIOUNIT AudioUnit)
-find_library(COREFOUNDATION CoreFoundation)
-find_library(IOSURF IOSurface)
-find_library(COCOA Cocoa)
-find_library(COREVIDEO CoreVideo)
-find_library(COREMEDIA CoreMedia)
-find_library(SCREENCAPTUREKIT ScreenCaptureKit)
+cmake_minimum_required(VERSION 3.24...3.25)
 
 
 add_library(mac-capture MODULE)
 add_library(mac-capture MODULE)
 add_library(OBS::capture ALIAS mac-capture)
 add_library(OBS::capture ALIAS mac-capture)
@@ -26,12 +17,18 @@ target_sources(
           window-utils.h
           window-utils.h
           window-utils.m)
           window-utils.m)
 
 
-target_link_libraries(mac-capture PRIVATE OBS::libobs ${COREAUDIO} ${AUDIOUNIT} ${COREFOUNDATION} ${IOSURF} ${COCOA})
-
-if(SCREENCAPTUREKIT)
-  target_link_libraries(mac-capture PRIVATE OBS::libobs ${COREVIDEO} ${COREMEDIA}
-                                            "$<LINK_LIBRARY:WEAK_FRAMEWORK,${SCREENCAPTUREKIT}>")
-endif()
+# cmake-format: off
+target_link_libraries(
+  mac-capture
+  PRIVATE OBS::libobs
+          "$<LINK_LIBRARY:FRAMEWORK,AudioUnit.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreAudio.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreFoundation.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreMedia.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreVideo.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,IOSurface.framework>"
+          "$<LINK_LIBRARY:WEAK_FRAMEWORK,ScreenCaptureKit.framework>")
 
 
 set_target_properties_obs(
 set_target_properties_obs(
   mac-capture
   mac-capture
@@ -39,6 +36,7 @@ set_target_properties_obs(
              PREFIX ""
              PREFIX ""
              XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION YES
              XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION YES
              XCODE_ATTRIBUTE_GCC_WARN_SHADOW YES)
              XCODE_ATTRIBUTE_GCC_WARN_SHADOW YES)
+# cmake-format: on
 
 
 if(CMAKE_VERSION VERSION_LESS_EQUAL 3.25.0)
 if(CMAKE_VERSION VERSION_LESS_EQUAL 3.25.0)
   set_property(TARGET mac-capture PROPERTY XCODE_LINK_BUILD_PHASE_MODE BUILT_ONLY)
   set_property(TARGET mac-capture PROPERTY XCODE_LINK_BUILD_PHASE_MODE BUILT_ONLY)

+ 9 - 3
plugins/mac-syphon/CMakeLists.txt

@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.24...3.25)
 
 
 option(ENABLE_SYPHON "Enable Syphon sharing support" ON)
 option(ENABLE_SYPHON "Enable Syphon sharing support" ON)
 if(NOT ENABLE_SYPHON)
 if(NOT ENABLE_SYPHON)
@@ -18,10 +18,15 @@ add_library(OBS::syphon ALIAS mac-syphon)
 target_sources(mac-syphon PRIVATE syphon.m plugin-main.c SyphonOBSClient.h SyphonOBSClient.m)
 target_sources(mac-syphon PRIVATE syphon.m plugin-main.c SyphonOBSClient.h SyphonOBSClient.m)
 
 
 target_compile_options(mac-syphon PRIVATE -fobjc-arc)
 target_compile_options(mac-syphon PRIVATE -fobjc-arc)
+
+# cmake-format: off
 target_link_libraries(
 target_link_libraries(
   mac-syphon
   mac-syphon
-  PRIVATE OBS::libobs "$<LINK_LIBRARY:FRAMEWORK,AppKit.framework>" "$<LINK_LIBRARY:FRAMEWORK,IOSurface.framework>"
-          "$<LINK_LIBRARY:FRAMEWORK,ScriptingBridge.framework>" "$<LINK_LIBRARY:FRAMEWORK,${SYPHON}>")
+  PRIVATE OBS::libobs
+          "$<LINK_LIBRARY:FRAMEWORK,AppKit.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,IOSurface.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,ScriptingBridge.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,${SYPHON}>")
 
 
 set_target_properties_obs(
 set_target_properties_obs(
   mac-syphon
   mac-syphon
@@ -29,3 +34,4 @@ set_target_properties_obs(
              PREFIX ""
              PREFIX ""
              XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION YES
              XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION YES
              XCODE_ATTRIBUTE_GCC_WARN_SHADOW YES)
              XCODE_ATTRIBUTE_GCC_WARN_SHADOW YES)
+# cmake-format: on

+ 9 - 16
plugins/mac-videotoolbox/CMakeLists.txt

@@ -1,28 +1,20 @@
-cmake_minimum_required(VERSION 3.22...3.25)
-
-find_library(AVFOUNDATION AVFoundation)
-find_library(COCOA Cocoa)
-find_library(COREFOUNDATION CoreFoundation)
-find_library(COREVIDEO CoreVideo)
-find_library(VIDEOTOOLBOX VideoToolbox)
-find_library(COREMEDIA CoreMedia)
-
-mark_as_advanced(AVFOUNDATION COCOA COREFOUNDATION COREVIDEO VIDEOTOOLBOX COREMEDIA)
+cmake_minimum_required(VERSION 3.24...3.25)
 
 
 add_library(mac-videotoolbox MODULE)
 add_library(mac-videotoolbox MODULE)
 add_library(OBS::mac-videotoolbox ALIAS mac-videotoolbox)
 add_library(OBS::mac-videotoolbox ALIAS mac-videotoolbox)
 
 
 target_sources(mac-videotoolbox PRIVATE encoder.c)
 target_sources(mac-videotoolbox PRIVATE encoder.c)
 
 
+# cmake-format: off
 target_link_libraries(
 target_link_libraries(
   mac-videotoolbox
   mac-videotoolbox
   PRIVATE OBS::libobs
   PRIVATE OBS::libobs
-          ${AVFOUNDATION}
-          ${COCOA}
-          ${COREFOUNDATION}
-          ${COREVIDEO}
-          ${VIDEOTOOLBOX}
-          ${COREMEDIA})
+          "$<LINK_LIBRARY:FRAMEWORK,AVFoundation.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreFoundation.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreMedia.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreVideo.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,VideoToolbox.framework>")
 
 
 set_target_properties_obs(
 set_target_properties_obs(
   mac-videotoolbox
   mac-videotoolbox
@@ -30,3 +22,4 @@ set_target_properties_obs(
              PREFIX ""
              PREFIX ""
              XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION YES
              XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION YES
              XCODE_ATTRIBUTE_GCC_WARN_SHADOW YES)
              XCODE_ATTRIBUTE_GCC_WARN_SHADOW YES)
+# cmake-format: on

+ 1 - 1
plugins/mac-virtualcam/CMakeLists.txt

@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.24...3.25)
 
 
 option(ENABLE_VIRTUALCAM "Build OBS Virtualcam" ON)
 option(ENABLE_VIRTUALCAM "Build OBS Virtualcam" ON)
 
 

+ 11 - 10
plugins/mac-virtualcam/src/dal-plugin/CMakeLists.txt

@@ -1,11 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
-
-find_library(COCOA Cocoa)
-find_library(COREMEDIA CoreMedia)
-find_library(COREMEDIAIO CoreMediaIO)
-find_library(COREVIDEO CoreVideo)
-find_library(IOSURFACE IOSurface)
-mark_as_advanced(COCOA COREMEDIA COREMEDIAIO COREVIDEO IOSURFACE)
+cmake_minimum_required(VERSION 3.24...3.25)
 
 
 add_library(obs-dal-plugin MODULE)
 add_library(obs-dal-plugin MODULE)
 add_library(OBS::dal-plugin ALIAS obs-dal-plugin)
 add_library(OBS::dal-plugin ALIAS obs-dal-plugin)
@@ -39,8 +32,16 @@ set(_placeholder_location "${CMAKE_CURRENT_SOURCE_DIR}/../common/data/placeholde
 set_property(SOURCE "${_placeholder_location}" PROPERTY MACOSX_PACKAGE_LOCATION "Resources")
 set_property(SOURCE "${_placeholder_location}" PROPERTY MACOSX_PACKAGE_LOCATION "Resources")
 source_group("Resources" FILES "${_placeholder_location}")
 source_group("Resources" FILES "${_placeholder_location}")
 
 
-target_link_libraries(obs-dal-plugin PRIVATE OBS::mach-protocol ${COCOA} ${COREMEDIA} ${COREMEDIAIO} ${COREVIDEO}
-                                             ${IOSURFACE})
+# cmake-format: off
+target_link_libraries(
+  obs-dal-plugin
+  PRIVATE OBS::mach-protocol
+          "$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreMedia.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreMediaIO.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,CoreVideo.framework>"
+          "$<LINK_LIBRARY:FRAMEWORK,IOSurface.framework>")
+# cmake-format: on
 
 
 set_target_properties_obs(
 set_target_properties_obs(
   obs-dal-plugin
   obs-dal-plugin

+ 1 - 1
plugins/mac-virtualcam/src/obs-plugin/CMakeLists.txt

@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.24...3.25)
 
 
 add_library(mac-virtualcam MODULE)
 add_library(mac-virtualcam MODULE)
 add_library(OBS::virtualcam ALIAS mac-virtualcam)
 add_library(OBS::virtualcam ALIAS mac-virtualcam)

+ 6 - 5
plugins/obs-outputs/CMakeLists.txt

@@ -56,12 +56,13 @@ if(OS_WINDOWS)
 
 
   target_sources(obs-outputs PRIVATE obs-outputs.rc)
   target_sources(obs-outputs PRIVATE obs-outputs.rc)
 elseif(OS_MACOS)
 elseif(OS_MACOS)
-  find_library(FOUNDATION_FRAMEWORK Foundation)
-  find_library(SECURITY_FRAMEWORK Security)
-  mark_as_advanced(FOUNDATION_FRAMEWORK SECURITY_FRAMEWORK)
-
   target_compile_options(obs-outputs PRIVATE -Wno-comma)
   target_compile_options(obs-outputs PRIVATE -Wno-comma)
-  target_link_libraries(obs-outputs PRIVATE ${FOUNDATION_FRAMEWORK} ${SECURITY_FRAMEWORK})
+  # cmake-format: off
+  target_link_libraries(
+    obs-outputs
+    PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation.framework>"
+            "$<LINK_LIBRARY:FRAMEWORK,Security.framework>")
+  # cmake-format: on
 endif()
 endif()
 
 
 include(cmake/ftl.cmake)
 include(cmake/ftl.cmake)

+ 8 - 7
plugins/obs-vst/CMakeLists.txt

@@ -28,13 +28,14 @@ target_include_directories(obs-vst PRIVATE vst_header)
 target_link_libraries(obs-vst PRIVATE OBS::libobs Qt::Widgets)
 target_link_libraries(obs-vst PRIVATE OBS::libobs Qt::Widgets)
 
 
 if(OS_MACOS)
 if(OS_MACOS)
-  find_library(FOUNDATION Foundation)
-  find_library(COCOA Cocoa)
-  mark_as_advanced(COCOA FOUNDATION)
-
-  target_sources(obs-vst PRIVATE mac/VSTPlugin-osx.mm mac/EditorWidget-osx.mm)
-  target_link_libraries(obs-vst PRIVATE ${COCOA} ${FOUNDATION})
-
+  target_sources(obs-vst PRIVATE mac/EditorWidget-osx.mm mac/VSTPlugin-osx.mm)
+
+  # cmake-format: off
+  target_link_libraries(
+    obs-vst
+    PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>"
+            "$<LINK_LIBRARY:FRAMEWORK,Foundation.framework>")
+  # cmake-format: on
 elseif(OS_WINDOWS)
 elseif(OS_WINDOWS)
   target_sources(obs-vst PRIVATE win/VSTPlugin-win.cpp win/EditorWidget-win.cpp)
   target_sources(obs-vst PRIVATE win/VSTPlugin-win.cpp win/EditorWidget-win.cpp)
 
 

+ 1 - 3
plugins/text-freetype2/CMakeLists.txt

@@ -24,11 +24,9 @@ if(OS_WINDOWS)
   target_link_options(text-freetype2 PRIVATE /IGNORE:4098 /IGNORE:4099)
   target_link_options(text-freetype2 PRIVATE /IGNORE:4098 /IGNORE:4099)
 elseif(OS_MACOS)
 elseif(OS_MACOS)
   find_package(Iconv REQUIRED)
   find_package(Iconv REQUIRED)
-  find_library(COCOA Cocoa)
-  mark_as_advanced(COCOA)
 
 
   target_sources(text-freetype2 PRIVATE find-font.c find-font-cocoa.m find-font-iconv.c)
   target_sources(text-freetype2 PRIVATE find-font.c find-font-cocoa.m find-font-iconv.c)
-  target_link_libraries(text-freetype2 PRIVATE Iconv::Iconv ${COCOA})
+  target_link_libraries(text-freetype2 PRIVATE Iconv::Iconv "$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>")
 elseif(OS_LINUX OR OS_FREEBSD)
 elseif(OS_LINUX OR OS_FREEBSD)
   find_package(Fontconfig REQUIRED)
   find_package(Fontconfig REQUIRED)