CMakeLists.txt 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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. if(WIN32)
  17. set(obs_PLATFORM_SOURCES
  18. platform-windows.cpp)
  19. elseif(APPLE)
  20. set(obs_PLATFORM_SOURCES
  21. platform-osx.mm)
  22. find_package(AppKit REQUIRED)
  23. set(obs_PLATFORM_LIBRARIES ${AppKit_LIBRARIES})
  24. add_definitions(-fobjc-arc)
  25. elseif(UNIX)
  26. find_package(Qt5X11Extras REQUIRED)
  27. set(obs_PLATFORM_SOURCES
  28. platform-x11.cpp)
  29. find_package(X11)
  30. include_directories(${X11_INCLUDE_DIRS} ${X11_Xinerama_INCLUDE_PATH})
  31. if(NOT X11_Xinerama_FOUND)
  32. message(FATAL_ERROR "Xinerama not found!")
  33. endif()
  34. set(obs_PLATFORM_LIBRARIES
  35. ${X11_LIBRARIES}
  36. ${X11_Xinerama_LIB})
  37. set(obs_PLATFORM_QT_MODULES
  38. 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-namedialog.cpp
  47. properties-view.cpp
  48. qt-wrappers.cpp)
  49. set(obs_HEADERS
  50. obs-app.hpp
  51. platform.hpp
  52. window-main.hpp
  53. window-basic-main.hpp
  54. window-basic-settings.hpp
  55. window-basic-properties.hpp
  56. window-namedialog.hpp
  57. properties-view.hpp
  58. display-helpers.hpp
  59. qt-display.hpp
  60. qt-wrappers.hpp)
  61. set(obs_UI
  62. forms/NameDialog.ui
  63. forms/OBSBasic.ui
  64. forms/OBSBasicSettings.ui
  65. forms/OBSBasicProperties.ui)
  66. set(obs_QRC
  67. forms/obs.qrc)
  68. qt5_wrap_ui(obs_UI_HEADERS ${obs_UI})
  69. qt5_add_resources(obs_QRC_SOURCES ${obs_QRC})
  70. add_executable(obs WIN32
  71. ${obs_SOURCES}
  72. ${obs_HEADERS}
  73. ${obs_UI_HEADERS}
  74. ${obs_QRC_SOURCES})
  75. qt5_use_modules(obs Widgets ${obs_PLATFORM_QT_MODULES})
  76. if(WIN32)
  77. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  78. set(_output_suffix "64")
  79. else()
  80. set(_output_suffix "32")
  81. endif()
  82. set_target_properties(obs
  83. PROPERTIES
  84. OUTPUT_NAME "obs${_output_suffix}")
  85. endif()
  86. target_link_libraries(obs
  87. libobs
  88. ${obs_PLATFORM_LIBRARIES})
  89. install_obs_core(obs)
  90. install_obs_data(obs ../build/data/obs-studio obs-studio)