2023-03-26 01:55:25 +00:00
|
|
|
cmake_minimum_required(VERSION 3.16...3.25)
|
|
|
|
|
|
|
|
legacy_check()
|
2018-01-24 04:57:48 +00:00
|
|
|
|
|
|
|
if(NOT ENABLE_SCRIPTING)
|
2023-03-26 01:55:25 +00:00
|
|
|
target_disable_feature(obs-scripting "Scripting support")
|
2022-02-14 17:46:40 +00:00
|
|
|
return()
|
2018-01-24 04:57:48 +00:00
|
|
|
endif()
|
|
|
|
|
2023-04-04 13:28:46 +00:00
|
|
|
add_library(obs-cstrcache INTERFACE)
|
2023-03-26 01:55:25 +00:00
|
|
|
add_library(OBS::cstrcache ALIAS obs-cstrcache)
|
2017-12-25 22:09:11 +00:00
|
|
|
|
2023-03-26 01:55:25 +00:00
|
|
|
target_sources(obs-cstrcache INTERFACE cstrcache.cpp cstrcache.h)
|
|
|
|
target_include_directories(obs-cstrcache INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
2022-02-14 17:46:40 +00:00
|
|
|
|
2023-03-26 01:55:25 +00:00
|
|
|
find_package(SWIG 4 REQUIRED)
|
2022-02-14 17:46:40 +00:00
|
|
|
|
2023-03-26 01:55:25 +00:00
|
|
|
add_library(obs-scripting SHARED)
|
|
|
|
add_library(OBS::scripting ALIAS obs-scripting)
|
2022-02-14 17:46:40 +00:00
|
|
|
|
2023-03-26 01:55:25 +00:00
|
|
|
include(cmake/lua.cmake)
|
|
|
|
include(cmake/python.cmake)
|
2019-10-16 04:08:30 +00:00
|
|
|
|
2023-03-26 01:55:25 +00:00
|
|
|
if(NOT ENABLE_SCRIPTING_LUA AND NOT ENABLE_SCRIPTING_PYTHON)
|
|
|
|
target_disable_feature(obs-scripting "Scripting support")
|
2022-02-14 17:46:40 +00:00
|
|
|
return()
|
2023-03-26 01:55:25 +00:00
|
|
|
else()
|
|
|
|
target_enable_feature(obs-scripting "Scripting support")
|
2017-12-25 22:09:11 +00:00
|
|
|
endif()
|
|
|
|
|
2022-02-14 17:46:40 +00:00
|
|
|
target_sources(
|
|
|
|
obs-scripting
|
|
|
|
PUBLIC obs-scripting.h
|
2023-03-26 01:55:25 +00:00
|
|
|
PRIVATE obs-scripting.c obs-scripting-logging.c obs-scripting-callback.h
|
|
|
|
$<$<BOOL:${ENABLE_UI}>:obs-scripting-python-frontend.c> $<$<BOOL:${ENABLE_UI}>:obs-scripting-lua-frontend.c>)
|
2017-12-25 22:09:11 +00:00
|
|
|
|
2023-03-26 01:55:25 +00:00
|
|
|
target_compile_definitions(obs-scripting PRIVATE SCRIPT_DIR="${OBS_SCRIPT_PLUGIN_PATH}"
|
|
|
|
$<$<BOOL:${ENABLE_UI}>:ENABLE_UI>)
|
2022-02-14 17:46:40 +00:00
|
|
|
target_compile_features(obs-scripting PRIVATE cxx_auto_type)
|
2023-03-26 01:55:25 +00:00
|
|
|
target_include_directories(obs-scripting PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
2017-12-25 22:09:11 +00:00
|
|
|
|
2023-03-26 01:55:25 +00:00
|
|
|
target_link_libraries(obs-scripting PRIVATE OBS::libobs OBS::cstrcache $<$<BOOL:${ENABLE_UI}>:OBS::frontend-api>
|
|
|
|
$<$<PLATFORM_ID:Windows>:OBS::w32-pthreads> $<$<PLATFORM_ID:Darwin>:objc>)
|
2018-07-08 23:20:10 +00:00
|
|
|
|
2022-02-14 17:46:40 +00:00
|
|
|
if(OS_WINDOWS)
|
2023-03-26 01:55:25 +00:00
|
|
|
configure_file(cmake/windows/obs-module.rc.in obs-scripting.rc)
|
2022-02-14 17:46:40 +00:00
|
|
|
target_sources(obs-scripting PRIVATE obs-scripting.rc)
|
2017-12-25 22:09:11 +00:00
|
|
|
endif()
|
|
|
|
|
2023-03-26 01:55:25 +00:00
|
|
|
set_target_properties_obs(obs-scripting PROPERTIES FOLDER scripting PREFIX "")
|