mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 13:08:50 +02:00
0dca4318b2
This commit adds the ability to select a background color for a scene-item, whether it's a custom color or one of eight presets. As this is an initial implementation, it lacks theme customizability, and it also lacks the ability for the user to set their own preset colors, so only the hard-coded 8 are available.
312 lines
7.2 KiB
CMake
312 lines
7.2 KiB
CMake
if(DISABLE_UI)
|
|
message(STATUS "UI disabled")
|
|
return()
|
|
elseif(ENABLE_UI)
|
|
set(FIND_MODE REQUIRED)
|
|
else()
|
|
set(FIND_MODE QUIET)
|
|
endif()
|
|
|
|
add_subdirectory(obs-frontend-api)
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
project(obs)
|
|
|
|
set(DISABLE_UPDATE_MODULE TRUE CACHE BOOL "Disables building the update module")
|
|
|
|
if(DEFINED QTDIR${_lib_suffix})
|
|
list(APPEND CMAKE_PREFIX_PATH "${QTDIR${_lib_suffix}}")
|
|
elseif(DEFINED QTDIR)
|
|
list(APPEND CMAKE_PREFIX_PATH "${QTDIR}")
|
|
elseif(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(FFmpeg REQUIRED COMPONENTS avcodec avutil avformat)
|
|
|
|
if(APPLE)
|
|
find_package(Qt5MacExtras REQUIRED)
|
|
endif(APPLE)
|
|
|
|
if(NOT Qt5Widgets_FOUND)
|
|
if (ENABLE_UI)
|
|
message(FATAL_ERROR "Failed to find Qt5")
|
|
else()
|
|
message(STATUS "Qt5 not found - UI disabled")
|
|
return()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
include_directories(${FFMPEG_INCLUDE_DIRS})
|
|
include_directories(SYSTEM "obs-frontend-api")
|
|
include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/libobs")
|
|
include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/deps/libff")
|
|
include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/deps/json11")
|
|
include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/plugins/obs-browser/panel")
|
|
|
|
find_package(Libcurl REQUIRED)
|
|
include_directories(${LIBCURL_INCLUDE_DIRS})
|
|
add_definitions(${LIBCURL_DEFINITIONS})
|
|
|
|
if(WIN32)
|
|
include_directories(${OBS_JANSSON_INCLUDE_DIRS})
|
|
include_directories(${BLAKE2_INCLUDE_DIR})
|
|
|
|
set(obs_PLATFORM_SOURCES
|
|
platform-windows.cpp
|
|
win-update/update-window.cpp
|
|
win-update/win-update.cpp
|
|
win-update/win-update-helpers.cpp
|
|
obs.rc)
|
|
set(obs_PLATFORM_HEADERS
|
|
win-update/update-window.hpp
|
|
win-update/win-update.hpp
|
|
win-update/win-update-helpers.hpp)
|
|
set(obs_PLATFORM_LIBRARIES
|
|
crypt32
|
|
blake2
|
|
${OBS_JANSSON_IMPORT})
|
|
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)
|
|
|
|
set(obs_PLATFORM_LIBRARIES
|
|
Qt5::X11Extras)
|
|
endif()
|
|
|
|
set(obs_libffutil_SOURCES
|
|
../deps/libff/libff/ff-util.c
|
|
)
|
|
set(obs_libffutil_HEADERS
|
|
../deps/libff/libff/ff-util.h
|
|
)
|
|
|
|
if(MSVC)
|
|
set_source_files_properties(
|
|
../deps/libff/libff/ff-util.c
|
|
PROPERTIES COMPILE_FLAGS -Dinline=__inline
|
|
)
|
|
endif()
|
|
|
|
set(obs_SOURCES
|
|
${obs_PLATFORM_SOURCES}
|
|
${obs_libffutil_SOURCES}
|
|
../deps/json11/json11.cpp
|
|
obs-app.cpp
|
|
api-interface.cpp
|
|
window-basic-main.cpp
|
|
window-basic-stats.cpp
|
|
window-basic-filters.cpp
|
|
window-basic-settings.cpp
|
|
window-basic-interaction.cpp
|
|
window-basic-properties.cpp
|
|
window-basic-auto-config.cpp
|
|
window-basic-main-outputs.cpp
|
|
window-basic-source-select.cpp
|
|
window-basic-auto-config-test.cpp
|
|
window-basic-main-scene-collections.cpp
|
|
window-basic-main-transitions.cpp
|
|
window-basic-main-dropfiles.cpp
|
|
window-basic-main-profiles.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
|
|
source-tree.cpp
|
|
properties-view.cpp
|
|
focus-list.cpp
|
|
menu-button.cpp
|
|
double-slider.cpp
|
|
volume-control.cpp
|
|
adv-audio-control.cpp
|
|
item-widget-helpers.cpp
|
|
visibility-checkbox.cpp
|
|
locked-checkbox.cpp
|
|
horizontal-scroll-area.cpp
|
|
vertical-scroll-area.cpp
|
|
visibility-item-widget.cpp
|
|
slider-absoluteset-style.cpp
|
|
source-list-widget.cpp
|
|
qt-display.cpp
|
|
crash-report.cpp
|
|
hotkey-edit.cpp
|
|
source-label.cpp
|
|
remote-text.cpp
|
|
audio-encoders.cpp
|
|
qt-wrappers.cpp)
|
|
|
|
set(obs_HEADERS
|
|
${obs_PLATFORM_HEADERS}
|
|
${obs_libffutil_HEADERS}
|
|
../deps/json11/json11.hpp
|
|
obs-app.hpp
|
|
platform.hpp
|
|
window-main.hpp
|
|
window-basic-main.hpp
|
|
window-basic-stats.hpp
|
|
window-basic-filters.hpp
|
|
window-basic-settings.hpp
|
|
window-basic-interaction.hpp
|
|
window-basic-properties.hpp
|
|
window-basic-auto-config.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
|
|
source-tree.hpp
|
|
properties-view.hpp
|
|
properties-view.moc.hpp
|
|
display-helpers.hpp
|
|
double-slider.hpp
|
|
focus-list.hpp
|
|
menu-button.hpp
|
|
mute-checkbox.hpp
|
|
volume-control.hpp
|
|
adv-audio-control.hpp
|
|
item-widget-helpers.hpp
|
|
visibility-checkbox.hpp
|
|
locked-checkbox.hpp
|
|
horizontal-scroll-area.hpp
|
|
expand-checkbox.hpp
|
|
vertical-scroll-area.hpp
|
|
visibility-item-widget.hpp
|
|
slider-absoluteset-style.hpp
|
|
source-list-widget.hpp
|
|
qt-display.hpp
|
|
crash-report.hpp
|
|
hotkey-edit.hpp
|
|
source-label.hpp
|
|
remote-text.hpp
|
|
audio-encoders.hpp
|
|
qt-wrappers.hpp)
|
|
|
|
set(obs_UI
|
|
forms/NameDialog.ui
|
|
forms/AutoConfigStartPage.ui
|
|
forms/AutoConfigVideoPage.ui
|
|
forms/AutoConfigStreamPage.ui
|
|
forms/AutoConfigTestPage.ui
|
|
forms/ColorSelect.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/OBSUpdate.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
|
|
Qt5::Widgets
|
|
obs-frontend-api
|
|
${FFMPEG_LIBRARIES}
|
|
${LIBCURL_LIBRARIES}
|
|
${obs_PLATFORM_LIBRARIES})
|
|
|
|
if (APPLE)
|
|
target_link_libraries(obs
|
|
Qt5::MacExtras)
|
|
set_target_properties(obs PROPERTIES LINK_FLAGS "-pagezero_size 10000 -image_base 100000000")
|
|
set_property(
|
|
TARGET obs
|
|
APPEND
|
|
PROPERTY INSTALL_RPATH
|
|
"/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/"
|
|
"/Library/Frameworks/Python.framework/Versions/3.6/lib/"
|
|
"/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/"
|
|
)
|
|
endif()
|
|
|
|
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 ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications)
|
|
install(FILES forms/images/obs.png
|
|
DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/icons/hicolor/256x256/apps)
|
|
endif()
|
|
|
|
add_subdirectory(frontend-plugins)
|
|
if(WIN32)
|
|
add_subdirectory(win-update/updater)
|
|
endif()
|