mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-04-05 07:14:53 -04:00
macOS builds should only use dependencies built via the obs-deps build scripts. Default variants of the same dependencies are not compatible with our app packaging requirements and thus will create issues when creating the app bundle. This is specifically an issue when MbedTLS is installed via Homebrew which ships a CMake package config by default and is picked up by our code ever since we switched to prefer CMake packages.
52 lines
1.8 KiB
CMake
52 lines
1.8 KiB
CMake
# OBS CMake macOS defaults module
|
|
|
|
include_guard(GLOBAL)
|
|
|
|
# Set empty codesigning team if not specified as cache variable
|
|
if(NOT OBS_CODESIGN_TEAM)
|
|
set(OBS_CODESIGN_TEAM "" CACHE STRING "OBS code signing team for macOS" FORCE)
|
|
|
|
# Set ad-hoc codesigning identity if not specified as cache variable
|
|
if(NOT OBS_CODESIGN_IDENTITY)
|
|
set(OBS_CODESIGN_IDENTITY "-" CACHE STRING "OBS code signing identity for macOS" FORCE)
|
|
endif()
|
|
endif()
|
|
|
|
include(xcode)
|
|
|
|
include(buildspec)
|
|
|
|
# SWIG hard codes the directory to its library directory at compile time. As obs-deps need to be relocatable, we need to
|
|
# force SWIG to look for its files in a directory relative to the PREFIX_PATH. The best way to ensure this is to set the
|
|
# SWIG_LIB environment variable.
|
|
foreach(path IN LISTS CMAKE_PREFIX_PATH)
|
|
if(NOT DEFINED ENV{SWIG_LIB} AND EXISTS "${path}/bin/swig")
|
|
set(ENV{SWIG_LIB} "${path}/share/swig/CURRENT")
|
|
break()
|
|
endif()
|
|
endforeach()
|
|
|
|
# Enable find_package targets to become globally available targets
|
|
set(CMAKE_FIND_PACKAGE_TARGETS_GLOBAL TRUE)
|
|
# Enable RPATH support for generated binaries
|
|
set(CMAKE_MACOSX_RPATH TRUE)
|
|
# Use RPATHs from build tree _in_ the build tree
|
|
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
|
# Do not add default linker search paths to RPATH
|
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
|
|
# Use common bundle-relative RPATH for installed targets
|
|
set(CMAKE_INSTALL_RPATH "@executable_path/../Frameworks")
|
|
# Ignore any dependent packages installed via Homebrew
|
|
list(APPEND CMAKE_IGNORE_PREFIX_PATH "/opt/homebrew" "/usr/local")
|
|
|
|
# Used for library exports only (obs-frontend-api)
|
|
set(OBS_LIBRARY_DESTINATION "lib")
|
|
set(OBS_INCLUDE_DESTINATION "include/obs")
|
|
set(OBS_CMAKE_DESTINATION "lib/cmake")
|
|
|
|
configure_file(
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/macos/resources/package.applescript"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/package.applescript"
|
|
@ONLY
|
|
)
|