CMakeLists.txt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. cmake_minimum_required(VERSION 3.28...3.30)
  2. if(NOT ENABLE_SCRIPTING)
  3. target_disable_feature(obs-scripting "Scripting support")
  4. return()
  5. endif()
  6. include(cmake/cstrcache.cmake)
  7. find_package(SWIG 4 REQUIRED)
  8. add_library(obs-scripting SHARED)
  9. add_library(OBS::scripting ALIAS obs-scripting)
  10. include(cmake/lua.cmake)
  11. include(cmake/python.cmake)
  12. if(NOT ENABLE_SCRIPTING_LUA AND NOT ENABLE_SCRIPTING_PYTHON)
  13. target_disable_feature(obs-scripting "Scripting support")
  14. return()
  15. else()
  16. target_enable_feature(obs-scripting "Scripting support")
  17. endif()
  18. target_sources(
  19. obs-scripting
  20. PUBLIC obs-scripting.h
  21. PRIVATE obs-scripting-callback.h obs-scripting-logging.c obs-scripting.c
  22. )
  23. target_compile_definitions(
  24. obs-scripting
  25. PRIVATE SCRIPT_DIR="${OBS_SCRIPT_PLUGIN_PATH}" $<$<BOOL:${ENABLE_UI}>:ENABLE_UI>
  26. )
  27. target_include_directories(obs-scripting PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
  28. target_link_libraries(
  29. obs-scripting
  30. PRIVATE
  31. OBS::libobs
  32. OBS::cstrcache
  33. $<$<BOOL:${ENABLE_UI}>:OBS::frontend-api>
  34. $<$<PLATFORM_ID:Windows>:OBS::w32-pthreads>
  35. $<$<PLATFORM_ID:Darwin>:objc>
  36. )
  37. if(OS_WINDOWS)
  38. configure_file(cmake/windows/obs-module.rc.in obs-scripting.rc)
  39. target_sources(obs-scripting PRIVATE obs-scripting.rc)
  40. endif()
  41. set_target_properties_obs(obs-scripting PROPERTIES FOLDER scripting)
  42. if(OS_WINDOWS OR OS_MACOS)
  43. set_property(TARGET obs-scripting PROPERTY PREFIX "")
  44. endif()