CMakeLists.txt 1.4 KB

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