mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-24 23:31:36 +08:00
deps/obs-scripting: Use less automagic for Lua/Python detection
This adds build-time options for disabling the Lua and/or Python scripting support in cases where users do not wish to build it, but have the required libraries installed.
This commit is contained in:
Vendored
+45
-28
@@ -1,6 +1,7 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
if(NOT ENABLE_SCRIPTING)
|
||||
message(STATUS "Scripting plugin disabled")
|
||||
return()
|
||||
endif()
|
||||
|
||||
@@ -11,44 +12,60 @@ if(MSVC)
|
||||
w32-pthreads)
|
||||
endif()
|
||||
|
||||
find_package(Luajit QUIET)
|
||||
find_package(PythonDeps QUIET)
|
||||
find_package(SwigDeps QUIET 2)
|
||||
option(DISABLE_LUA "Disable Lua scripting support" OFF)
|
||||
option(DISABLE_PYTHON "Disable Python scripting support" OFF)
|
||||
|
||||
set(COMPILE_PYTHON FALSE CACHE BOOL "" FORCE)
|
||||
set(COMPILE_LUA FALSE CACHE BOOL "" FORCE)
|
||||
|
||||
if(NOT DISABLE_LUA)
|
||||
find_package(Luajit QUIET)
|
||||
|
||||
if(NOT DISABLE_LUA AND NOT LUAJIT_FOUND)
|
||||
message(STATUS "Luajit support not found.")
|
||||
set(LUAJIT_FOUND FALSE)
|
||||
else()
|
||||
message(STATUS "Scripting: Luajit supported")
|
||||
set(COMPILE_LUA TRUE CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "Scripting: Luajit support disabled")
|
||||
set(LUAJIT_FOUND FALSE)
|
||||
endif()
|
||||
|
||||
if(NOT DISABLE_PYTHON)
|
||||
find_package(PythonDeps QUIET)
|
||||
|
||||
if(NOT DISABLE_PYTHON AND NOT PYTHONLIBS_FOUND)
|
||||
message(STATUS "Python support not found.")
|
||||
set(PYTHON_FOUND FALSE)
|
||||
set(PYTHONLIBS_FOUND FALSE)
|
||||
else()
|
||||
message(STATUS "Scripting: Python 3 supported")
|
||||
set(PYTHON_FOUND TRUE)
|
||||
set(COMPILE_PYTHON TRUE CACHE BOOL "" FORCE)
|
||||
|
||||
get_filename_component(PYTHON_LIB "${PYTHON_LIBRARIES}" NAME)
|
||||
string(REGEX REPLACE "\\.[^.]*$" "" PYTHON_LIB ${PYTHON_LIB})
|
||||
|
||||
if(WIN32)
|
||||
string(REGEX REPLACE "_d" "" PYTHON_LIB "${PYTHON_LIB}")
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "Scripting: Python 3 support disabled")
|
||||
set(PYTHON_FOUND FALSE)
|
||||
set(PYTHONLIBS_FOUND FALSE)
|
||||
endif()
|
||||
|
||||
find_package(SwigDeps QUIET 2)
|
||||
|
||||
if(NOT SWIG_FOUND)
|
||||
message(STATUS "Scripting: SWIG not found; scripting disabled")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(NOT PYTHONLIBS_FOUND AND NOT LUAJIT_FOUND)
|
||||
message(STATUS "Scripting: Neither Python 3 nor Luajit was found; scripting plugin disabled")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(NOT LUAJIT_FOUND)
|
||||
message(STATUS "Scripting: Luajit not found; Luajit support disabled")
|
||||
else()
|
||||
message(STATUS "Scripting: Luajit supported")
|
||||
set(COMPILE_LUA TRUE CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
|
||||
if(NOT PYTHONLIBS_FOUND)
|
||||
message(STATUS "Scripting: Python 3 not found; Python support disabled")
|
||||
set(PYTHON_FOUND FALSE)
|
||||
set(PYTHONLIBS_FOUND FALSE)
|
||||
else()
|
||||
message(STATUS "Scripting: Python 3 supported")
|
||||
set(PYTHON_FOUND TRUE)
|
||||
set(COMPILE_PYTHON TRUE CACHE BOOL "" FORCE)
|
||||
|
||||
get_filename_component(PYTHON_LIB "${PYTHON_LIBRARIES}" NAME)
|
||||
string(REGEX REPLACE "\\.[^.]*$" "" PYTHON_LIB ${PYTHON_LIB})
|
||||
if(WIN32)
|
||||
string(REGEX REPLACE "_d" "" PYTHON_LIB "${PYTHON_LIB}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(SCRIPTING_ENABLED ON CACHE BOOL "Interal global cmake variable" FORCE)
|
||||
|
||||
Reference in New Issue
Block a user