| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 | 
							- project(obs)
 
- option(ENABLE_UI "Enables the OBS user interfaces" ON)
 
- if(DISABLE_UI)
 
- 	message(STATUS "UI disabled")
 
- 	return()
 
- elseif(ENABLE_UI)
 
- 	set(FIND_MODE REQUIRED)
 
- else()
 
- 	set(FIND_MODE QUIET)
 
- endif()
 
- if(DEFINED ENV{QTDIR${_lib_suffix}})
 
- 	list(APPEND CMAKE_PREFIX_PATH "$ENV{QTDIR${_lib_suffix}}")
 
- elseif(DEFINED ENV{QTDIR})
 
- 	list(APPEND CMAKE_PREFIX_PATH "$ENV{QTDIR}")
 
- endif()
 
- set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
 
- set(CMAKE_AUTOMOC TRUE)
 
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
 
- 	set(_lib_suffix 64)
 
- else()
 
- 	set(_lib_suffix 32)
 
- endif()
 
- find_package(Qt5Widgets ${FIND_MODE})
 
- find_package(Qt5Network ${FIND_MODE})
 
- if(NOT Qt5Widgets_FOUND OR NOT Qt5Network_FOUND)
 
- 	if (ENABLE_UI)
 
- 		message(FATAL_ERROR "Failed to find Qt5")
 
- 	else()
 
- 		message(STATUS "Qt5 not found - UI disabled")
 
- 		return()
 
- 	endif()
 
- endif()
 
- include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/libobs")
 
- if(WIN32)
 
- 	set(obs_PLATFORM_SOURCES
 
- 		platform-windows.cpp
 
- 		obs.rc)
 
- elseif(APPLE)
 
- 	set(obs_PLATFORM_SOURCES
 
- 		platform-osx.mm)
 
- 	find_package(AppKit REQUIRED)
 
- 	set(obs_PLATFORM_LIBRARIES ${APPKIT_LIBRARIES})
 
- 	add_definitions(-fobjc-arc)
 
- 	option(ENABLE_SPARKLE_UPDATER "Enables updates via the Sparkle framework (don't forget to update the Info.plist for your .app)" OFF)
 
- 	if(ENABLE_SPARKLE_UPDATER)
 
- 		find_library(SPARKLE Sparkle)
 
- 		include_directories(${SPARKLE})
 
- 		set(obs_PLATFORM_SOURCES
 
- 			${obs_PLATFORM_SOURCES}
 
- 			sparkle-updater.mm)
 
- 		set(obs_PLATFORM_LIBRARIES
 
- 			${obs_PLATFORM_LIBRARIES}
 
- 			${SPARKLE})
 
- 		add_definitions(-DUPDATE_SPARKLE=1)
 
- 	endif()
 
- elseif(UNIX)
 
-         find_package(Qt5X11Extras REQUIRED)
 
- 	set(obs_PLATFORM_SOURCES
 
- 		platform-x11.cpp)
 
- 	find_package(XCB COMPONENTS XCB REQUIRED RANDR REQUIRED XINERAMA REQUIRED)
 
- 	
 
- 	include_directories(
 
- 		${XCB_INCLUDE_DIRS}
 
- 		${X11_XCB_INCLUDE_DIRS})
 
- 		
 
- 	add_definitions(
 
- 		${XCB_DEFINITIONS}
 
- 		${X11_XCB_DEFINITIONS})
 
- 	set(obs_PLATFORM_LIBRARIES
 
- 		${XCB_LIBRARIES}
 
- 		${X11_XCB_LIBRARIES}
 
-                 Qt5::X11Extras)
 
- endif()
 
- set(obs_SOURCES
 
- 	${obs_PLATFORM_SOURCES}
 
- 	obs-app.cpp
 
- 	window-basic-main.cpp
 
- 	window-basic-filters.cpp
 
- 	window-basic-settings.cpp
 
- 	window-basic-interaction.cpp
 
- 	window-basic-properties.cpp
 
- 	window-basic-main-outputs.cpp
 
- 	window-basic-source-select.cpp
 
- 	window-license-agreement.cpp
 
- 	window-basic-status-bar.cpp
 
- 	window-basic-adv-audio.cpp
 
- 	window-basic-transform.cpp
 
- 	window-basic-preview.cpp
 
- 	window-namedialog.cpp
 
- 	window-log-reply.cpp
 
- 	window-projector.cpp
 
- 	window-remux.cpp
 
- 	properties-view.cpp
 
- 	focus-list.cpp
 
- 	double-slider.cpp
 
- 	volume-control.cpp
 
- 	adv-audio-control.cpp
 
- 	visibility-checkbox.cpp
 
- 	vertical-scroll-area.cpp
 
- 	visibility-item-widget.cpp
 
- 	slider-absoluteset-style.cpp
 
- 	source-list-widget.cpp
 
- 	crash-report.cpp
 
- 	qt-wrappers.cpp)
 
- set(obs_HEADERS
 
- 	obs-app.hpp
 
- 	platform.hpp
 
- 	window-main.hpp
 
- 	window-basic-main.hpp
 
- 	window-basic-filters.hpp
 
- 	window-basic-settings.hpp
 
- 	window-basic-interaction.hpp
 
- 	window-basic-properties.hpp
 
- 	window-basic-main-outputs.hpp
 
- 	window-basic-source-select.hpp
 
- 	window-license-agreement.hpp
 
- 	window-basic-status-bar.hpp
 
- 	window-basic-adv-audio.hpp
 
- 	window-basic-transform.hpp
 
- 	window-basic-preview.hpp
 
- 	window-namedialog.hpp
 
- 	window-log-reply.hpp
 
- 	window-projector.hpp
 
- 	window-remux.hpp
 
- 	properties-view.hpp
 
- 	display-helpers.hpp
 
- 	double-slider.hpp
 
- 	focus-list.hpp
 
- 	mute-checkbox.hpp
 
- 	volume-control.hpp
 
- 	adv-audio-control.hpp
 
- 	visibility-checkbox.hpp
 
- 	vertical-scroll-area.hpp
 
- 	visibility-item-widget.hpp
 
- 	slider-absoluteset-style.hpp
 
- 	source-list-widget.hpp
 
- 	qt-display.hpp
 
- 	crash-report.hpp
 
- 	qt-wrappers.hpp)
 
- set(obs_UI
 
- 	forms/NameDialog.ui
 
- 	forms/OBSLicenseAgreement.ui
 
- 	forms/OBSLogReply.ui
 
- 	forms/OBSBasic.ui
 
- 	forms/OBSBasicTransform.ui
 
- 	forms/OBSBasicFilters.ui
 
- 	forms/OBSBasicSettings.ui
 
- 	forms/OBSBasicSourceSelect.ui
 
- 	forms/OBSBasicInteraction.ui
 
- 	forms/OBSBasicProperties.ui
 
- 	forms/OBSRemux.ui)
 
- set(obs_QRC
 
- 	forms/obs.qrc)
 
- qt5_wrap_ui(obs_UI_HEADERS ${obs_UI})
 
- qt5_add_resources(obs_QRC_SOURCES ${obs_QRC})
 
- add_executable(obs WIN32
 
- 	${obs_SOURCES}
 
- 	${obs_HEADERS}
 
- 	${obs_UI_HEADERS}
 
- 	${obs_QRC_SOURCES})
 
- if(WIN32)
 
- 	if(CMAKE_SIZEOF_VOID_P EQUAL 8)
 
- 		set(_output_suffix "64")
 
- 	else()
 
- 		set(_output_suffix "32")
 
- 	endif()
 
- 	set_target_properties(obs
 
- 		PROPERTIES
 
- 			OUTPUT_NAME "obs${_output_suffix}")
 
- endif()
 
- target_link_libraries(obs
 
- 	libobs
 
- 	libff
 
- 	Qt5::Widgets
 
- 	Qt5::Network
 
- 	${obs_PLATFORM_LIBRARIES})
 
- define_graphic_modules(obs)
 
- install_obs_core(obs)
 
- install_obs_data(obs data obs-studio)
 
- if (UNIX AND UNIX_STRUCTURE AND NOT APPLE)
 
- 	install(FILES dist/obs.desktop DESTINATION share/applications)
 
- 	install(FILES forms/images/obs.png
 
- 		DESTINATION share/icons/hicolor/256x256/apps)
 
- endif()
 
 
  |