lua.cmake 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. cmake_minimum_required(VERSION 3.22...3.25)
  2. option(ENABLE_SCRIPTING_LUA "Enable Lua scripting support" ON)
  3. if(ENABLE_SCRIPTING_LUA)
  4. add_subdirectory(obslua)
  5. find_package(Luajit REQUIRED)
  6. add_custom_command(
  7. OUTPUT swig/swigluarun.h
  8. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  9. PRE_BUILD
  10. COMMAND ${CMAKE_COMMAND} -E make_directory swig
  11. COMMAND ${CMAKE_COMMAND} -E env "SWIG_LIB=${SWIG_DIR}" ${SWIG_EXECUTABLE} -lua -external-runtime swig/swigluarun.h
  12. COMMENT "obs-scripting - generating Luajit SWIG interface headers"
  13. )
  14. set_source_files_properties(swig/swigluarun.h PROPERTIES GENERATED TRUE)
  15. target_sources(
  16. obs-scripting
  17. PRIVATE
  18. $<$<BOOL:${ENABLE_UI}>:obs-scripting-lua-frontend.c>
  19. obs-scripting-lua-source.c
  20. obs-scripting-lua.c
  21. obs-scripting-lua.h
  22. swig/swigluarun.h
  23. )
  24. target_compile_definitions(obs-scripting PUBLIC LUAJIT_FOUND)
  25. set_source_files_properties(
  26. obs-scripting-lua.c
  27. obs-scripting-lua-source.c
  28. PROPERTIES COMPILE_OPTIONS $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-error=shorten-64-to-32>
  29. )
  30. target_link_libraries(obs-scripting PRIVATE Luajit::Luajit)
  31. else()
  32. target_disable_feature(obs-scripting "Lua scripting support")
  33. endif()