2023-08-03 19:22:24 -04:00
|
|
|
cmake_minimum_required(VERSION 3.22...3.25)
|
2023-03-26 03:55:25 +02:00
|
|
|
|
|
|
|
|
legacy_check()
|
2017-12-25 14:09:11 -08:00
|
|
|
|
2019-08-16 12:23:53 -04:00
|
|
|
if(POLICY CMP0078)
|
2022-02-14 18:46:40 +01:00
|
|
|
cmake_policy(SET CMP0078 NEW)
|
2019-10-15 21:08:30 -07:00
|
|
|
endif()
|
2019-08-16 12:23:53 -04:00
|
|
|
|
2023-03-26 03:55:25 +02:00
|
|
|
if(POLICY CMP0086)
|
|
|
|
|
cmake_policy(SET CMP0086 NEW)
|
|
|
|
|
endif()
|
2017-12-25 14:09:11 -08:00
|
|
|
|
2022-02-14 18:46:40 +01:00
|
|
|
find_package(Luajit REQUIRED)
|
2023-03-26 03:55:25 +02:00
|
|
|
find_package(SWIG 4 REQUIRED)
|
2017-12-25 14:09:11 -08:00
|
|
|
|
2023-03-26 03:55:25 +02:00
|
|
|
include(UseSWIG)
|
2017-12-25 14:09:11 -08:00
|
|
|
|
2023-03-26 03:55:25 +02:00
|
|
|
set_source_files_properties(obslua.i PROPERTIES USE_TARGET_INCLUDE_DIRECTORIES TRUE)
|
2023-10-02 22:41:59 +02:00
|
|
|
|
2023-03-26 03:55:25 +02:00
|
|
|
swig_add_library(obslua LANGUAGE lua TYPE MODULE SOURCES obslua.i)
|
2022-02-14 18:46:40 +01:00
|
|
|
|
2023-03-26 03:55:25 +02:00
|
|
|
add_library(OBS::lua ALIAS obslua)
|
2017-12-25 14:09:11 -08:00
|
|
|
|
2023-10-02 22:41:59 +02:00
|
|
|
target_compile_options(
|
|
|
|
|
obslua
|
|
|
|
|
PRIVATE
|
|
|
|
|
$<$<PLATFORM_ID:Windows>:/wd4054>
|
|
|
|
|
$<$<PLATFORM_ID:Windows>:/wd4197>
|
|
|
|
|
$<$<PLATFORM_ID:Windows>:/wd4244>
|
|
|
|
|
$<$<PLATFORM_ID:Windows>:/wd4267>
|
|
|
|
|
$<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-shorten-64-to-32>
|
|
|
|
|
$<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-unreachable-code>
|
|
|
|
|
$<$<COMPILE_LANG_AND_ID:C,GNU>:-Wno-maybe-uninitialized>
|
|
|
|
|
)
|
2024-03-26 21:28:00 +01:00
|
|
|
|
2023-03-26 03:55:25 +02:00
|
|
|
target_compile_definitions(
|
|
|
|
|
obslua
|
|
|
|
|
PRIVATE SWIG_TYPE_TABLE=obslua SWIG_LUA_INTERPRETER_NO_DEBUG $<$<BOOL:${ENABLE_UI}>:ENABLE_UI>
|
|
|
|
|
)
|
2020-05-13 06:37:01 -07:00
|
|
|
|
2023-10-02 22:41:59 +02:00
|
|
|
target_link_libraries(
|
|
|
|
|
obslua
|
|
|
|
|
PRIVATE OBS::cstrcache OBS::libobs OBS::scripting Luajit::Luajit $<$<BOOL:${ENABLE_UI}>:OBS::frontend-api>
|
|
|
|
|
)
|
2022-07-18 14:56:04 +02:00
|
|
|
|
2023-03-26 03:55:25 +02:00
|
|
|
set_property(
|
|
|
|
|
TARGET obslua
|
|
|
|
|
APPEND
|
|
|
|
|
PROPERTY
|
|
|
|
|
SWIG_COMPILE_DEFINITIONS
|
|
|
|
|
"SWIG_TYPE_TABLE=obslua"
|
|
|
|
|
"SWIG_LUA_INTERPRETER_NO_DEBUG"
|
|
|
|
|
"$<$<BOOL:${ENABLE_UI}>:ENABLE_UI>"
|
|
|
|
|
)
|
|
|
|
|
|
2023-10-02 22:41:59 +02:00
|
|
|
set_target_properties_obs(obslua PROPERTIES FOLDER scripting XCODE_ATTRIBUTE_STRIP_STYLE non-global)
|