CMakeLists.txt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. cmake_minimum_required(VERSION 2.8)
  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. function(install_plugin_bin_swig target additional_target)
  32. if(APPLE)
  33. set(_bit_suffix "")
  34. elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
  35. set(_bit_suffix "64bit/")
  36. else()
  37. set(_bit_suffix "32bit/")
  38. endif()
  39. set_target_properties(${additional_target} PROPERTIES
  40. PREFIX "")
  41. install(TARGETS "${additional_target}"
  42. LIBRARY DESTINATION "${OBS_SCRIPT_PLUGIN_DESTINATION}")
  43. add_custom_command(TARGET ${additional_target} POST_BUILD
  44. COMMAND "${CMAKE_COMMAND}" -E copy
  45. "$<TARGET_FILE:${additional_target}>"
  46. "${OBS_OUTPUT_DIR}/$<CONFIGURATION>/data/obs-scripting/${_bit_suffix}$<TARGET_FILE_NAME:${additional_target}>"
  47. VERBATIM)
  48. endfunction()
  49. install_plugin_bin_swig(obs-scripting obslua)