CMakeLists.txt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. project(obs)
  2. include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/libobs")
  3. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  4. set(_lib_suffix 64)
  5. else()
  6. set(_lib_suffix 32)
  7. endif()
  8. if(DEFINED ENV{QTDIR${_lib_suffix}})
  9. list(APPEND CMAKE_PREFIX_PATH "$ENV{QTDIR${_lib_suffix}}")
  10. elseif(DEFINED ENV{QTDIR})
  11. list(APPEND CMAKE_PREFIX_PATH "$ENV{QTDIR}")
  12. endif()
  13. set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
  14. set(CMAKE_AUTOMOC TRUE)
  15. find_package(Qt5Widgets REQUIRED)
  16. find_package(Qt5Network REQUIRED)
  17. if(WIN32)
  18. set(obs_PLATFORM_SOURCES
  19. platform-windows.cpp)
  20. elseif(APPLE)
  21. set(obs_PLATFORM_SOURCES
  22. platform-osx.mm)
  23. find_package(AppKit REQUIRED)
  24. set(obs_PLATFORM_LIBRARIES ${APPKIT_LIBRARIES})
  25. add_definitions(-fobjc-arc)
  26. elseif(UNIX)
  27. find_package(Qt5X11Extras REQUIRED)
  28. set(obs_PLATFORM_SOURCES
  29. platform-x11.cpp)
  30. find_package(X11)
  31. include_directories(${X11_INCLUDE_DIRS} ${X11_Xinerama_INCLUDE_PATH})
  32. if(NOT X11_Xinerama_FOUND)
  33. message(FATAL_ERROR "Xinerama not found!")
  34. endif()
  35. set(obs_PLATFORM_LIBRARIES
  36. ${X11_LIBRARIES}
  37. ${X11_Xinerama_LIB}
  38. Qt5::X11Extras)
  39. endif()
  40. set(obs_SOURCES
  41. ${obs_PLATFORM_SOURCES}
  42. obs-app.cpp
  43. window-basic-main.cpp
  44. window-basic-settings.cpp
  45. window-basic-properties.cpp
  46. window-basic-source-select.cpp
  47. window-license-agreement.cpp
  48. window-basic-status-bar.cpp
  49. window-basic-transform.cpp
  50. window-basic-preview.cpp
  51. window-namedialog.cpp
  52. window-log-reply.cpp
  53. properties-view.cpp
  54. volume-control.cpp
  55. qt-wrappers.cpp)
  56. set(obs_HEADERS
  57. obs-app.hpp
  58. platform.hpp
  59. window-main.hpp
  60. window-basic-main.hpp
  61. window-basic-settings.hpp
  62. window-basic-properties.hpp
  63. window-basic-source-select.hpp
  64. window-license-agreement.hpp
  65. window-basic-status-bar.hpp
  66. window-basic-transform.hpp
  67. window-basic-preview.hpp
  68. window-namedialog.hpp
  69. window-log-reply.hpp
  70. properties-view.hpp
  71. display-helpers.hpp
  72. volume-control.hpp
  73. qt-display.hpp
  74. qt-wrappers.hpp)
  75. set(obs_UI
  76. forms/NameDialog.ui
  77. forms/OBSLicenseAgreement.ui
  78. forms/OBSLogReply.ui
  79. forms/OBSBasic.ui
  80. forms/OBSBasicTransform.ui
  81. forms/OBSBasicSettings.ui
  82. forms/OBSBasicSourceSelect.ui
  83. forms/OBSBasicProperties.ui)
  84. set(obs_QRC
  85. forms/obs.qrc)
  86. qt5_wrap_ui(obs_UI_HEADERS ${obs_UI})
  87. qt5_add_resources(obs_QRC_SOURCES ${obs_QRC})
  88. add_executable(obs WIN32
  89. ${obs_SOURCES}
  90. ${obs_HEADERS}
  91. ${obs_UI_HEADERS}
  92. ${obs_QRC_SOURCES})
  93. if(WIN32)
  94. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  95. set(_output_suffix "64")
  96. else()
  97. set(_output_suffix "32")
  98. endif()
  99. set_target_properties(obs
  100. PROPERTIES
  101. OUTPUT_NAME "obs${_output_suffix}")
  102. endif()
  103. target_link_libraries(obs
  104. libobs
  105. Qt5::Widgets
  106. Qt5::Network
  107. ${obs_PLATFORM_LIBRARIES})
  108. install_obs_core(obs)
  109. install_obs_data(obs data obs-studio)
  110. if (UNIX AND UNIX_STRUCTURE AND NOT APPLE)
  111. install(FILES dist/obs.desktop DESTINATION share/applications)
  112. install(FILES forms/images/obs.png
  113. DESTINATION share/icons/hicolor/256x256/apps)
  114. endif()