ObsHelpers.cmake 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. set(OBS_OUTPUT_DIR "${CMAKE_BINARY_DIR}/rundir")
  2. set(OBS_EXECUTABLE_DESTINATION "bin")
  3. set(OBS_LIBRARY_DESTINATION "lib")
  4. set(OBS_PLUGIN_DESTINATION "lib/obs-plugins")
  5. set(OBS_DATA_DESTINATION "share/obs")
  6. if(WIN32 OR APPLE)
  7. set(_struct_def FALSE)
  8. else()
  9. set(_struct_def TRUE)
  10. endif()
  11. option(UNIX_STRUCTURE "Build with standard unix filesystem structure" ${_struct_def})
  12. if(NOT UNIX_STRUCTURE)
  13. set(OBS_EXECUTABLE_DESTINATION ".")
  14. set(OBS_LIBRARY_DESTINATION ".")
  15. set(OBS_PLUGIN_DESTINATION "obs-plugins")
  16. set(OBS_DATA_DESTINATION "data")
  17. else()
  18. add_definitions(-DOBS_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}/")
  19. endif()
  20. add_definitions(-DOBS_DATA_PATH="${OBS_DATA_DESTINATION}")
  21. function(obs_install_additional)
  22. set(addfdir "${CMAKE_SOURCE_DIR}/additional_install_files")
  23. if(DEFINED ENV{obsAdditionalInstallFiles})
  24. set(addfdir "$ENV{obsAdditionalInstallFiles}")
  25. endif()
  26. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  27. set(_lib_suffix 64)
  28. else()
  29. set(_lib_suffix 32)
  30. endif()
  31. install(DIRECTORY "${addfdir}/misc/"
  32. DESTINATION "."
  33. USE_SOURCE_PERMISSIONS)
  34. install(DIRECTORY "${addfdir}/data/"
  35. DESTINATION "${OBS_DATA_DESTINATION}"
  36. USE_SOURCE_PERMISSIONS)
  37. install(DIRECTORY "${addfdir}/libs${_lib_suffix}/"
  38. DESTINATION "${OBS_LIBRARY_DESTINATION}"
  39. USE_SOURCE_PERMISSIONS)
  40. install(DIRECTORY "${addfdir}/exec${_lib_suffix}/"
  41. DESTINATION "${OBS_EXECUTABLE_DESTINATION}"
  42. USE_SOURCE_PERMISSIONS)
  43. endfunction()
  44. macro(install_obs_core target)
  45. install(TARGETS ${target}
  46. LIBRARY DESTINATION "${OBS_LIBRARY_DESTINATION}"
  47. RUNTIME DESTINATION "${OBS_EXECUTABLE_DESTINATION}")
  48. add_custom_command(TARGET ${target} POST_BUILD
  49. COMMAND ${CMAKE_COMMAND} -E copy
  50. "$<TARGET_FILE:${target}>" "${OBS_OUTPUT_DIR}/$<CONFIGURATION>/$<TARGET_FILE_NAME:${target}>"
  51. VERBATIM)
  52. endmacro()
  53. macro(install_obs_plugin target)
  54. install(TARGETS ${target}
  55. LIBRARY DESTINATION "${OBS_PLUGIN_DESTINATION}"
  56. RUNTIME DESTINATION "${OBS_PLUGIN_DESTINATION}")
  57. add_custom_command(TARGET ${target} POST_BUILD
  58. COMMAND ${CMAKE_COMMAND} -E copy
  59. "$<TARGET_FILE:${target}>" "${OBS_OUTPUT_DIR}/$<CONFIGURATION>/obs-plugins/$<TARGET_FILE_NAME:${target}>"
  60. VERBATIM)
  61. endmacro()
  62. macro(install_obs_data target datadir datadest)
  63. install(DIRECTORY ${datadir}/
  64. DESTINATION "${OBS_DATA_DESTINATION}/${datadest}"
  65. USE_SOURCE_PERMISSIONS)
  66. add_custom_command(TARGET ${target} POST_BUILD
  67. COMMAND ${CMAKE_COMMAND} -E copy_directory
  68. "${CMAKE_CURRENT_SOURCE_DIR}/${datadir}" "${OBS_OUTPUT_DIR}/$<CONFIGURATION>/data/${datadest}"
  69. VERBATIM)
  70. endmacro()
  71. macro(install_obs_plugin_data target datadir)
  72. install_obs_plugin(${target})
  73. install_obs_data(${target} "${datadir}" "obs-plugins/${target}")
  74. endmacro()