0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
obs-studio/plugins/obs-qsv11/CMakeLists.txt
PatTheMav aae3a6a466 cmake: Fix diverging prefix padding for OBS status outputs
Status output related to OBS configuration is prefixed with the string
"OBS" and added padding for enabled and disabled features. This padding
was not aligned between platforms.

By moving the padding and prefix decoration into its own function,
both elements are controlled in a single place. CMake scripts were
changed to use this new function `obs_status` instead of using CMake's
`message` function directly.
2022-03-26 09:44:23 -04:00

130 lines
4.4 KiB
CMake

option(ENABLE_QSV11 "Build Intel QSV11 Hardware Encoder." TRUE)
if(NOT ENABLE_QSV11)
obs_status(DISABLED "obs-qsv11")
return()
endif()
project(obs-qsv11)
add_library(obs-qsv11 MODULE)
add_library(OBS::qsv11 ALIAS obs-qsv11)
add_library(libmfx INTERFACE)
add_library(OBS::libmfx ALIAS libmfx)
target_sources(
libmfx
INTERFACE libmfx/src/main.cpp
libmfx/src/mfx_critical_section.cpp
libmfx/src/mfx_dispatcher.cpp
libmfx/src/mfx_dispatcher_log.cpp
libmfx/src/mfx_driver_store_loader.cpp
libmfx/src/mfx_dxva2_device.cpp
libmfx/src/mfx_function_table.cpp
libmfx/src/mfx_library_iterator.cpp
libmfx/src/mfx_load_dll.cpp
libmfx/src/mfx_load_plugin.cpp
libmfx/src/mfx_plugin_hive.cpp
libmfx/src/mfx_win_reg_key.cpp
libmfx/include/msdk/include/mfxadapter.h
libmfx/include/msdk/include/mfxastructures.h
libmfx/include/msdk/include/mfxaudio.h
libmfx/include/msdk/include/mfxaudio++.h
libmfx/include/msdk/include/mfxcommon.h
libmfx/include/msdk/include/mfxdefs.h
libmfx/include/msdk/include/mfxjpeg.h
libmfx/include/msdk/include/mfxmvc.h
libmfx/include/msdk/include/mfxplugin.h
libmfx/include/msdk/include/mfxplugin++.h
libmfx/include/msdk/include/mfxsession.h
libmfx/include/msdk/include/mfxstructures.h
libmfx/include/msdk/include/mfxvideo.h
libmfx/include/msdk/include/mfxvideo++.h
libmfx/include/msdk/include/mfxvstructures.h
libmfx/include/mfx_critical_section.h
libmfx/include/mfx_dispatcher.h
libmfx/include/mfx_dispatcher_defs.h
libmfx/include/mfx_dispatcher_log.h
libmfx/include/mfx_driver_store_loader.h
libmfx/include/mfx_dxva2_device.h
libmfx/include/mfx_exposed_functions_list.h
libmfx/include/mfx_library_iterator.h
libmfx/include/mfx_load_dll.h
libmfx/include/mfx_load_plugin.h
libmfx/include/mfx_plugin_hive.h
libmfx/include/mfx_vector.h
libmfx/include/mfx_win_reg_key.h
libmfx/include/mfxaudio_exposed_functions_list.h)
target_include_directories(
libmfx INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/libmfx/include/msdk/include
${CMAKE_CURRENT_SOURCE_DIR}/libmfx/include)
target_sources(
obs-qsv11
PRIVATE obs-qsv11.c
obs-qsv11-plugin-main.c
common_directx9.cpp
common_directx9.h
common_directx11.cpp
common_directx11.h
common_utils.cpp
common_utils.h
common_utils_windows.cpp
device_directx9.cpp
device_directx9.h
QSV_Encoder.cpp
QSV_Encoder.h
QSV_Encoder_Internal.cpp
QSV_Encoder_Internal.h
bits/linux_defs.h
bits/windows_defs.h)
target_link_libraries(
obs-qsv11
PRIVATE OBS::libobs
OBS::libmfx
d3d9
d3d11
dxva2
dxgi
dxguid)
target_compile_definitions(obs-qsv11 PRIVATE DX11_D3D)
if(OS_WINDOWS)
set(MODULE_DESCRIPTION "OBS QSV encoder")
configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in
obs-qsv11.rc)
target_sources(obs-qsv11 PRIVATE obs-qsv11.rc)
target_compile_definitions(
obs-qsv11 PRIVATE UNICODE _UNICODE _CRT_SECURE_NO_WARNINGS
_CRT_NONSTDC_NO_WARNINGS)
endif()
set_target_properties(obs-qsv11 PROPERTIES FOLDER "plugins")
file(GLOB _OBS_QSV11_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.c
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
file(GLOB _OBS_QSV11_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h
${CMAKE_CURRENT_SOURCE_DIR}/*.hpp)
source_group("obs-qsv11\\Source Files" FILES ${_OBS_QSV11_SOURCE_FILES})
source_group("obs-qsv11\\Header Files" FILES ${_OBS_QSV11_HEADER_FILES})
get_target_property(_LIBMFX_SOURCES OBS::libmfx INTERFACE_SOURCES)
foreach(_LIBMFX_SOURCE ${_LIBMFX_SOURCES})
get_filename_component(_EXT ${_LIBMFX_SOURCE} EXT)
if(${_EXT} STREQUAL "hpp" OR ${_EXT} STREQUAL "h")
source_group("libmfx\\Header Files" FILES ${_LIBMFX_SOURCE})
elseif(${_EXT} STREQUAL "cpp" OR ${_EXT} STREQUAL "c")
source_group("libmfx\\Source Files" FILES ${_LIBMFX_SOURCE})
endif()
endforeach()
setup_plugin_target(obs-qsv11)