mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-08-29 02:03:03 +08:00
cmake: Update Framework link definition for macOS builds
This commit is contained in:
@@ -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
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 "")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user