CMakeLists.txt 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. cmake_minimum_required(VERSION 2.8.12)
  2. project(obslua)
  3. if(POLICY CMP0078)
  4. # UseSWIG generates standard target names.
  5. cmake_policy(SET CMP0078 OLD)
  6. endif()
  7. if(POLICY CMP0086)
  8. # UseSWIG honors SWIG_MODULE_NAME via -module flag.
  9. cmake_policy(SET CMP0086 OLD)
  10. endif()
  11. find_package(SWIG 2 REQUIRED)
  12. include(${SWIG_USE_FILE})
  13. add_definitions(-DSWIG_TYPE_TABLE=obslua -DSWIG_LUA_INTERPRETER_NO_DEBUG)
  14. if(MSVC)
  15. add_compile_options("/wd4054")
  16. add_compile_options("/wd4197")
  17. add_compile_options("/wd4244")
  18. add_compile_options("/wd4267")
  19. endif()
  20. include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/libobs")
  21. include_directories(${CMAKE_CURRENT_SOURCE_DIR})
  22. if(CMAKE_VERSION VERSION_GREATER 3.7.2)
  23. SWIG_ADD_LIBRARY(obslua
  24. LANGUAGE lua
  25. TYPE MODULE
  26. SOURCES obslua.i ../cstrcache.cpp ../cstrcache.h)
  27. else()
  28. SWIG_ADD_MODULE(obslua lua obslua.i ../cstrcache.cpp ../cstrcache.h)
  29. endif()
  30. SWIG_LINK_LIBRARIES(obslua obs-scripting libobs ${LUA_LIBRARIES} ${EXTRA_LIBS})
  31. set_target_properties(obslua PROPERTIES FOLDER "scripting")
  32. function(install_plugin_bin_swig target additional_target)
  33. if(APPLE)
  34. set(_bit_suffix "")
  35. elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
  36. set(_bit_suffix "64bit/")
  37. else()
  38. set(_bit_suffix "32bit/")
  39. endif()
  40. set_target_properties(${additional_target} PROPERTIES
  41. PREFIX "")
  42. install(TARGETS "${additional_target}"
  43. LIBRARY DESTINATION "${OBS_SCRIPT_PLUGIN_DESTINATION}")
  44. add_custom_command(TARGET ${additional_target} POST_BUILD
  45. COMMAND "${CMAKE_COMMAND}" -E copy
  46. "$<TARGET_FILE:${additional_target}>"
  47. "${OBS_OUTPUT_DIR}/$<CONFIGURATION>/data/obs-scripting/${_bit_suffix}$<TARGET_FILE_NAME:${additional_target}>"
  48. VERBATIM)
  49. endfunction()
  50. install_plugin_bin_swig(obs-scripting obslua)