CMakeLists.txt 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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. set(obs_PLATFORM_SOURCES
  27. platform-x11.cpp)
  28. find_package(X11)
  29. include_directories(${X11_INCLUDE_DIRS} ${X11_Xinerama_INCLUDE_PATH})
  30. if(NOT X11_Xinerama_FOUND)
  31. message(FATAL_ERROR "Xinerama not found!")
  32. endif()
  33. set(obs_PLATFORM_LIBRARIES
  34. ${X11_LIBRARIES}
  35. ${X11_Xinerama_LIB})
  36. endif()
  37. set(obs_SOURCES
  38. ${obs_PLATFORM_SOURCES}
  39. obs-app.cpp
  40. window-basic-main.cpp
  41. window-basic-settings.cpp
  42. window-namedialog.cpp
  43. qt-wrappers.cpp)
  44. set(obs_HEADERS
  45. obs-app.hpp
  46. platform.hpp
  47. window-main.hpp
  48. window-basic-main.hpp
  49. window-basic-settings.hpp
  50. window-namedialog.hpp
  51. qt-display.hpp
  52. qt-wrappers.hpp)
  53. set(obs_UI
  54. forms/NameDialog.ui
  55. forms/OBSBasic.ui
  56. forms/OBSBasicSettings.ui)
  57. set(obs_QRC
  58. forms/obs.qrc)
  59. qt5_wrap_ui(obs_UI_HEADERS ${obs_UI})
  60. qt5_add_resources(obs_QRC_SOURCES ${obs_QRC})
  61. add_executable(obs WIN32
  62. ${obs_SOURCES}
  63. ${obs_HEADERS}
  64. ${obs_UI_HEADERS}
  65. ${obs_QRC_SOURCES})
  66. qt5_use_modules(obs Widgets)
  67. if(WIN32)
  68. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  69. set(_output_suffix "64")
  70. else()
  71. set(_output_suffix "32")
  72. endif()
  73. set_target_properties(obs
  74. PROPERTIES
  75. OUTPUT_NAME "obs${_output_suffix}")
  76. endif()
  77. target_link_libraries(obs
  78. libobs
  79. ${obs_PLATFORM_LIBRARIES})
  80. install_obs_core(obs)
  81. install_obs_data(obs ../build/data/obs-studio obs-studio)
  82. obs_fixup_install_target(obs TARGET Qt5::Widgets)
  83. obs_fixup_install_target(obs TARGET Qt5::Gui)
  84. obs_fixup_install_target(obs TARGET Qt5::Core)