obs-scripting: Update CMakeLists.txt for scripting modules

This commit is contained in:
PatTheMav
2022-03-16 23:11:08 +01:00
parent dba1041034
commit dbdf5c7f7a
9 changed files with 379 additions and 387 deletions
+51 -52
View File
@@ -1,62 +1,61 @@
cmake_minimum_required(VERSION 2.8.12)
project(obslua)
if(POLICY CMP0086)
cmake_policy(SET CMP0086 NEW)
endif()
if(POLICY CMP0078)
# UseSWIG generates standard target names.
cmake_policy(SET CMP0078 OLD)
endif()
if(POLICY CMP0086)
# UseSWIG honors SWIG_MODULE_NAME via -module flag.
cmake_policy(SET CMP0086 OLD)
cmake_policy(SET CMP0078 NEW)
endif()
find_package(SWIG 2 REQUIRED)
include(${SWIG_USE_FILE})
project(obslua)
add_definitions(-DSWIG_TYPE_TABLE=obslua -DSWIG_LUA_INTERPRETER_NO_DEBUG)
find_package(Luajit REQUIRED)
if(MSVC)
add_compile_options("/wd4054")
add_compile_options("/wd4197")
add_compile_options("/wd4244")
add_compile_options("/wd4267")
if(OS_MACOS)
find_package(SWIG 4 REQUIRED)
elseif(OS_POSIX)
find_package(SWIG 3 REQUIRED)
elseif(OS_WINDOWS)
find_package(SwigWindows 3 REQUIRED)
endif()
include(UseSWIG)
set_source_files_properties(obslua.i PROPERTIES USE_TARGET_INCLUDE_DIRECTORIES
TRUE)
swig_add_library(
obslua
LANGUAGE lua
TYPE MODULE
SOURCES obslua.i ../cstrcache.cpp ../cstrcache.h)
target_link_libraries(obslua PRIVATE OBS::scripting OBS::libobs Luajit::Luajit)
set_target_properties(
obslua PROPERTIES SWIG_COMPILE_DEFINITIONS
"SWIG_TYPE_TABLE=obslua;SWIG_LUA_INTERPRETER_NO_DEBUG")
set_target_properties(
obslua
PROPERTIES FOLDER "scripting"
VERSION "${OBS_VERSION_MAJOR}"
SOVERSION "${OBS_VERSION_CANONICAL}")
target_compile_definitions(obslua PRIVATE SWIG_TYPE_TABLE=obslua
SWIG_LUA_INTERPRETER_NO_DEBUG)
if(ENABLE_UI)
target_link_libraries(obslua PRIVATE OBS::frontend-api)
target_compile_definitions(obslua PRIVATE ENABLE_UI)
endif()
include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/libobs")
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
if(CMAKE_VERSION VERSION_GREATER 3.7.2)
SWIG_ADD_LIBRARY(obslua
LANGUAGE lua
TYPE MODULE
SOURCES obslua.i ../cstrcache.cpp ../cstrcache.h)
else()
SWIG_ADD_MODULE(obslua lua obslua.i ../cstrcache.cpp ../cstrcache.h)
if(OS_WINDOWS)
if(MSVC)
target_compile_options(obslua PRIVATE /wd4054 /wd4197 /wd4244 /wd4267)
endif()
elseif(OS_MACOS)
set_target_properties(obslua PROPERTIES MACHO_CURRENT_VERSION 0
MACHO_COMPATIBILITY_VERSION 0)
endif()
SWIG_LINK_LIBRARIES(obslua obs-scripting libobs ${LUA_LIBRARIES} ${EXTRA_LIBS})
set_target_properties(obslua PROPERTIES FOLDER "scripting")
function(install_plugin_bin_swig target additional_target)
if(APPLE)
set(_bit_suffix "")
elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_bit_suffix "64bit/")
else()
set(_bit_suffix "32bit/")
endif()
set_target_properties(${additional_target} PROPERTIES
PREFIX "")
install(TARGETS "${additional_target}"
LIBRARY DESTINATION "${OBS_SCRIPT_PLUGIN_DESTINATION}")
add_custom_command(TARGET ${additional_target} POST_BUILD
COMMAND "${CMAKE_COMMAND}" -E copy
"$<TARGET_FILE:${additional_target}>"
"${OBS_OUTPUT_DIR}/$<CONFIGURATION>/data/obs-scripting/${_bit_suffix}$<TARGET_FILE_NAME:${additional_target}>"
VERBATIM)
endfunction()
install_plugin_bin_swig(obs-scripting obslua)
setup_script_plugin_target(obslua)
+2 -2
View File
@@ -26,7 +26,7 @@
#include "obs-scripting-config.h"
#include <util/platform.h>
#if UI_ENABLED
#if defined(ENABLE_UI)
#include "obs-frontend-api.h"
#endif
@@ -104,6 +104,6 @@ static inline void wrap_blog(int log_level, const char *message)
%include "util/base.h"
%include "util/platform.h"
#if UI_ENABLED
#if defined(ENABLE_UI)
%include "obs-frontend-api.h"
#endif