62 lines
1.5 KiB
CMake
62 lines
1.5 KiB
CMake
if(POLICY CMP0086)
|
|
cmake_policy(SET CMP0086 NEW)
|
|
endif()
|
|
|
|
if(POLICY CMP0078)
|
|
cmake_policy(SET CMP0078 NEW)
|
|
endif()
|
|
|
|
project(obslua)
|
|
|
|
find_package(Luajit REQUIRED)
|
|
|
|
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()
|
|
|
|
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()
|
|
|
|
setup_script_plugin_target(obslua)
|