CMakeLists.txt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. cmake_minimum_required(VERSION 3.22...3.25)
  2. legacy_check()
  3. if(POLICY CMP0078)
  4. cmake_policy(SET CMP0078 NEW)
  5. endif()
  6. if(POLICY CMP0086)
  7. cmake_policy(SET CMP0086 NEW)
  8. endif()
  9. find_package(Luajit REQUIRED)
  10. find_package(SWIG 4 REQUIRED)
  11. include(UseSWIG)
  12. set_source_files_properties(obslua.i PROPERTIES USE_TARGET_INCLUDE_DIRECTORIES TRUE)
  13. swig_add_library(obslua LANGUAGE lua TYPE MODULE SOURCES obslua.i)
  14. add_library(OBS::lua ALIAS obslua)
  15. target_compile_options(
  16. obslua
  17. PRIVATE
  18. $<$<PLATFORM_ID:Windows>:/wd4054>
  19. $<$<PLATFORM_ID:Windows>:/wd4197>
  20. $<$<PLATFORM_ID:Windows>:/wd4244>
  21. $<$<PLATFORM_ID:Windows>:/wd4267>
  22. $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-shorten-64-to-32>
  23. $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-unreachable-code>
  24. $<$<COMPILE_LANG_AND_ID:C,GNU>:-Wno-maybe-uninitialized>
  25. )
  26. target_compile_definitions(
  27. obslua
  28. PRIVATE SWIG_TYPE_TABLE=obslua SWIG_LUA_INTERPRETER_NO_DEBUG $<$<BOOL:${ENABLE_UI}>:ENABLE_UI>
  29. )
  30. target_link_libraries(
  31. obslua
  32. PRIVATE OBS::cstrcache OBS::libobs OBS::scripting Luajit::Luajit $<$<BOOL:${ENABLE_UI}>:OBS::frontend-api>
  33. )
  34. set_property(
  35. TARGET obslua
  36. APPEND
  37. PROPERTY
  38. SWIG_COMPILE_DEFINITIONS
  39. "SWIG_TYPE_TABLE=obslua"
  40. "SWIG_LUA_INTERPRETER_NO_DEBUG"
  41. "$<$<BOOL:${ENABLE_UI}>:ENABLE_UI>"
  42. )
  43. set_target_properties_obs(obslua PROPERTIES FOLDER scripting XCODE_ATTRIBUTE_STRIP_STYLE non-global)