cmake: Update Framework link definition for macOS builds

This commit is contained in:
PatTheMav
2023-04-24 18:31:26 +02:00
committed by Ryan Foster
parent 9805b706d1
commit 59904a66a3
16 changed files with 100 additions and 127 deletions
+2 -2
View File
@@ -1,10 +1,10 @@
if(SPARKLE_APPCAST_URL AND SPARKLE_PUBLIC_KEY)
find_library(SPARKLE Sparkle)
mark_as_advanced(SPARKLE)
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)
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)
set(SPARKLE_UPDATE_INTERVAL 3600) # 1 hour
+10 -10
View File
@@ -2,21 +2,21 @@ if(NOT XCODE)
target_add_resource(obs-studio "${CMAKE_CURRENT_SOURCE_DIR}/cmake/macos/Assets.xcassets")
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)
set_source_files_properties(platform-osx.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
target_link_libraries(obs-studio PRIVATE ${APPKIT} ${AVFOUNDATION} ${APPLICATIONSERVICES})
target_compile_options(
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)
set_source_files_properties(platform-osx.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0.3)
target_compile_options(obs-studio PRIVATE -Wno-error=unqualified-std-cast-call)
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
@@ -68,11 +68,13 @@ if(OS_WINDOWS)
APPEND
PROPERTY AUTORCC_OPTIONS --format-version 1)
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
-Wno-quoted-include-in-framework-header)
elseif(OS_LINUX OR OS_FREEBSD)
@@ -24,10 +24,8 @@ if(OS_WINDOWS)
APPEND
PROPERTY AUTORCC_OPTIONS --format-version 1)
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_link_libraries(decklink-captions PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>")
elseif(OS_LINUX OR OS_FREEBSD)
find_package(X11 REQUIRED)
mark_as_advanced(X11)
+7 -24
View File
@@ -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(
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(
libobs
+7 -7
View File
@@ -23,13 +23,13 @@ if(OS_WINDOWS)
target_sources(coreaudio-encoder PRIVATE coreaudio-encoder.rc windows-imports.h)
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()
set_target_properties_obs(coreaudio-encoder PROPERTIES FOLDER plugins PREFIX "")
+7 -15
View File
@@ -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(OBS::avcapture ALIAS mac-avcapture)
@@ -20,12 +12,12 @@ endif()
target_link_libraries(
mac-avcapture
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(
mac-avcapture
+14 -16
View File
@@ -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(OBS::capture ALIAS mac-capture)
@@ -26,12 +17,18 @@ target_sources(
window-utils.h
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(
mac-capture
@@ -39,6 +36,7 @@ set_target_properties_obs(
PREFIX ""
XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION YES
XCODE_ATTRIBUTE_GCC_WARN_SHADOW YES)
# cmake-format: on
if(CMAKE_VERSION VERSION_LESS_EQUAL 3.25.0)
set_property(TARGET mac-capture PROPERTY XCODE_LINK_BUILD_PHASE_MODE BUILT_ONLY)
+9 -3
View File
@@ -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)
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_compile_options(mac-syphon PRIVATE -fobjc-arc)
# cmake-format: off
target_link_libraries(
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(
mac-syphon
@@ -29,3 +34,4 @@ set_target_properties_obs(
PREFIX ""
XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION YES
XCODE_ATTRIBUTE_GCC_WARN_SHADOW YES)
# cmake-format: on
+9 -16
View File
@@ -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(OBS::mac-videotoolbox ALIAS mac-videotoolbox)
target_sources(mac-videotoolbox PRIVATE encoder.c)
# cmake-format: off
target_link_libraries(
mac-videotoolbox
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(
mac-videotoolbox
@@ -30,3 +22,4 @@ set_target_properties_obs(
PREFIX ""
XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION YES
XCODE_ATTRIBUTE_GCC_WARN_SHADOW YES)
# cmake-format: on
+1 -1
View File
@@ -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)
@@ -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 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")
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(
obs-dal-plugin
@@ -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(OBS::virtualcam ALIAS mac-virtualcam)
+6 -5
View File
@@ -56,12 +56,13 @@ if(OS_WINDOWS)
target_sources(obs-outputs PRIVATE obs-outputs.rc)
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_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()
include(cmake/ftl.cmake)
+7 -6
View File
@@ -28,13 +28,14 @@ target_include_directories(obs-vst PRIVATE vst_header)
target_link_libraries(obs-vst PRIVATE OBS::libobs Qt::Widgets)
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)
target_sources(obs-vst PRIVATE win/VSTPlugin-win.cpp win/EditorWidget-win.cpp)
+1 -3
View File
@@ -24,11 +24,9 @@ if(OS_WINDOWS)
target_link_options(text-freetype2 PRIVATE /IGNORE:4098 /IGNORE:4099)
elseif(OS_MACOS)
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_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)
find_package(Fontconfig REQUIRED)