Browse Source

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.
Jimi Huotari 7 years ago
parent
commit
eee6541153
1 changed files with 45 additions and 28 deletions
  1. 45 28
      deps/obs-scripting/CMakeLists.txt

+ 45 - 28
deps/obs-scripting/CMakeLists.txt

@@ -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 SWIG_FOUND)
-	message(STATUS "Scripting: SWIG not found; scripting disabled")
-	return()
-endif()
+if(NOT DISABLE_LUA)
+	find_package(Luajit QUIET)
 
-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")
+	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 supported")
-	set(COMPILE_LUA TRUE CACHE BOOL "" FORCE)
+	message(STATUS "Scripting: Luajit support disabled")
+	set(LUAJIT_FOUND FALSE)
 endif()
 
-if(NOT PYTHONLIBS_FOUND)
-	message(STATUS "Scripting: Python 3 not found; Python support disabled")
+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)
-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()
+
+find_package(SwigDeps QUIET 2)
+
+if(NOT SWIG_FOUND)
+	message(STATUS "Scripting: SWIG not found; scripting disabled")
+endif()
+
+if(NOT PYTHONLIBS_FOUND AND NOT LUAJIT_FOUND)
+	message(STATUS "Scripting: Neither Python 3 nor Luajit was found; scripting plugin disabled")
 endif()
 
 set(SCRIPTING_ENABLED ON CACHE BOOL "Interal global cmake variable" FORCE)