mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-06-11 09:19:22 -04:00
The actual frontend provided an "ENABLE_FRONTEND" build flag, whereas the global project still provided an "ENABLE_UI" flag, which itself was only read and respected by the scripting module. This change retains the global flag and makes both the actual frontend as well as the scripting module respect its value.
55 lines
1.8 KiB
CMake
55 lines
1.8 KiB
CMake
option(ENABLE_SCRIPTING_PYTHON "Enable Python scripting support" ON)
|
|
|
|
if(ENABLE_SCRIPTING_PYTHON)
|
|
add_subdirectory(obspython)
|
|
|
|
if(OS_WINDOWS)
|
|
find_package(Python 3.8...<3.11 REQUIRED Interpreter Development)
|
|
elseif(OS_LINUX OR OS_FREEBSD OR OS_OPENBSD)
|
|
find_package(Python 3.8 REQUIRED Interpreter Development)
|
|
else()
|
|
find_package(Python 3.8...<3.12 REQUIRED Interpreter Development)
|
|
endif()
|
|
|
|
add_custom_command(
|
|
OUTPUT swig/swigpyrun.h
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
PRE_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory swig
|
|
COMMAND
|
|
${CMAKE_COMMAND} -E env "SWIG_LIB=${SWIG_DIR}" ${SWIG_EXECUTABLE} -python
|
|
$<$<PLATFORM_ID:Windows,Darwin>:-py3-stable-abi> -external-runtime swig/swigpyrun.h
|
|
COMMENT "obs-scripting - generating Python 3 SWIG interface headers"
|
|
)
|
|
|
|
set_source_files_properties(swig/swigpyrun.h PROPERTIES GENERATED TRUE)
|
|
|
|
target_sources(
|
|
obs-scripting
|
|
PRIVATE
|
|
$<$<BOOL:${ENABLE_FRONTEND}>:obs-scripting-python-frontend.c>
|
|
$<$<PLATFORM_ID:Windows,Darwin>:obs-scripting-python-import.c>
|
|
obs-scripting-python-import.h
|
|
obs-scripting-python.c
|
|
obs-scripting-python.h
|
|
swig/swigpyrun.h
|
|
)
|
|
|
|
target_compile_definitions(
|
|
obs-scripting
|
|
PRIVATE ENABLE_SCRIPTING PYTHON_LIB="$<TARGET_LINKER_FILE_NAME:Python::Python>"
|
|
PUBLIC Python_FOUND
|
|
)
|
|
|
|
target_include_directories(
|
|
obs-scripting
|
|
PRIVATE "$<$<PLATFORM_ID:Windows,Darwin>:$<TARGET_PROPERTY:Python::Python,INTERFACE_INCLUDE_DIRECTORIES>>"
|
|
)
|
|
|
|
target_link_libraries(obs-scripting PRIVATE $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:Python::Python>)
|
|
|
|
target_link_options(obs-scripting PRIVATE $<$<PLATFORM_ID:Darwin>:LINKER:-undefined,dynamic_lookup>)
|
|
else()
|
|
target_disable_feature(obs-scripting "Python scripting support")
|
|
endif()
|