obs-studio/cmake/macos/defaults.cmake

51 lines
1.7 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")
# 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)