nvidia: Move into its own component

This component enables interactivity with NVIDIA libraries. Currently this is limited to NVIDIA Maxine only.
This commit is contained in:
Michael Fabian 'Xaymar' Dirks 2023-09-30 01:42:47 +02:00 committed by Xaymar
parent 090f49d3c8
commit 7c887c06e8
36 changed files with 44 additions and 105 deletions

View File

@ -434,48 +434,6 @@ else()
set(JSON_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/third-party/nlohmann-json/single_include")
endif()
#- NVIDIA Augmented Reality SDK
set(HAVE_NVIDIA_AR_SDK OFF)
if(REQUIRE_NVIDIA_AR_SDK AND D_PLATFORM_WINDOWS)
if(EXISTS "${PROJECT_SOURCE_DIR}/third-party/nvidia-maxine-ar-sdk/version.h")
set(HAVE_NVIDIA_AR_SDK ON)
endif()
if(NOT TARGET NVIDIA::AR)
add_library(NVIDIA::AR IMPORTED INTERFACE)
target_include_directories(NVIDIA::AR
INTERFACE
"${PROJECT_SOURCE_DIR}/third-party/nvidia-maxine-ar-sdk/nvar/include/"
"${PROJECT_SOURCE_DIR}/third-party/nvidia-maxine-ar-sdk/nvar/src/"
)
endif()
endif()
#- NVIDIA Video Effects SDK
set(HAVE_NVIDIA_VFX_SDK OFF)
if(REQUIRE_NVIDIA_VFX_SDK AND D_PLATFORM_WINDOWS)
if(EXISTS "${PROJECT_SOURCE_DIR}/third-party/nvidia-maxine-vfx-sdk/version.h")
set(HAVE_NVIDIA_VFX_SDK ON)
endif()
if(NOT TARGET NVIDIA::VFX)
add_library(NVIDIA::VFX IMPORTED INTERFACE)
target_include_directories(NVIDIA::VFX
INTERFACE
"${PROJECT_SOURCE_DIR}/third-party/nvidia-maxine-vfx-sdk/nvvfx/include/"
"${PROJECT_SOURCE_DIR}/third-party/nvidia-maxine-vfx-sdk/nvvfx/src/"
)
endif()
set(REQUIRE_NVIDIA_CUDA ON)
endif()
#- NVIDIA CUDA (Windows)
set(HAVE_NVIDIA_CUDA OFF)
if(REQUIRE_NVIDIA_CUDA AND D_PLATFORM_WINDOWS)
set(HAVE_NVIDIA_CUDA ON)
endif()
#- Qt 6
find_package("Qt6"
COMPONENTS Core Gui Widgets
@ -570,69 +528,6 @@ if(TRUE) # OpenGL
list(APPEND PROJECT_LIBRARIES khronos_glad)
endif()
if(HAVE_NVIDIA_VFX_SDK OR HAVE_NVIDIA_AR_SDK)
list(APPEND PROJECT_PRIVATE_SOURCE
"source/nvidia/cv/nvidia-cv.hpp"
"source/nvidia/cv/nvidia-cv.cpp"
"source/nvidia/cv/nvidia-cv-image.hpp"
"source/nvidia/cv/nvidia-cv-image.cpp"
"source/nvidia/cv/nvidia-cv-texture.hpp"
"source/nvidia/cv/nvidia-cv-texture.cpp"
)
endif()
if(HAVE_NVIDIA_AR_SDK)
list(APPEND PROJECT_PRIVATE_SOURCE
"source/nvidia/ar/nvidia-ar.hpp"
"source/nvidia/ar/nvidia-ar.cpp"
"source/nvidia/ar/nvidia-ar-feature.hpp"
"source/nvidia/ar/nvidia-ar-feature.cpp"
"source/nvidia/ar/nvidia-ar-facedetection.hpp"
"source/nvidia/ar/nvidia-ar-facedetection.cpp"
)
list(APPEND PROJECT_LIBRARIES
NVIDIA::AR
)
endif()
if(HAVE_NVIDIA_VFX_SDK)
list(APPEND PROJECT_PRIVATE_SOURCE
"source/nvidia/vfx/nvidia-vfx.hpp"
"source/nvidia/vfx/nvidia-vfx.cpp"
"source/nvidia/vfx/nvidia-vfx-denoising.hpp"
"source/nvidia/vfx/nvidia-vfx-denoising.cpp"
"source/nvidia/vfx/nvidia-vfx-effect.hpp"
"source/nvidia/vfx/nvidia-vfx-effect.cpp"
"source/nvidia/vfx/nvidia-vfx-greenscreen.hpp"
"source/nvidia/vfx/nvidia-vfx-greenscreen.cpp"
"source/nvidia/vfx/nvidia-vfx-superresolution.hpp"
"source/nvidia/vfx/nvidia-vfx-superresolution.cpp"
)
list(APPEND PROJECT_LIBRARIES
NVIDIA::VFX
)
endif()
if(HAVE_NVIDIA_CUDA)
list(APPEND PROJECT_PRIVATE_SOURCE
"source/nvidia/cuda/nvidia-cuda.hpp"
"source/nvidia/cuda/nvidia-cuda.cpp"
"source/nvidia/cuda/nvidia-cuda-obs.hpp"
"source/nvidia/cuda/nvidia-cuda-obs.cpp"
"source/nvidia/cuda/nvidia-cuda-context.hpp"
"source/nvidia/cuda/nvidia-cuda-context.cpp"
"source/nvidia/cuda/nvidia-cuda-gs-texture.hpp"
"source/nvidia/cuda/nvidia-cuda-gs-texture.cpp"
"source/nvidia/cuda/nvidia-cuda-memory.hpp"
"source/nvidia/cuda/nvidia-cuda-memory.cpp"
"source/nvidia/cuda/nvidia-cuda-stream.hpp"
"source/nvidia/cuda/nvidia-cuda-stream.cpp"
)
list(APPEND PROJECT_DEFINITIONS
ENABLE_NVIDIA_CUDA
)
endif()
list(APPEND PROJECT_LIBRARIES OBS::obs-frontend-api)
list(APPEND PROJECT_UI_SOURCE
"source/obs/browser/obs-browser-panel.hpp"

View File

@ -0,0 +1,44 @@
## AUTOGENERATED COPYRIGHT HEADER START
# Copyright (C) NaN-NaN undefined
# AUTOGENERATED COPYRIGHT HEADER END
cmake_minimum_required(VERSION 3.26)
project("NVIDIA")
list(APPEND CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}] ")
streamfx_add_component("NVIDIA")
#- NVIDIA Audio Effects SDK
if(NOT TARGET NVIDIA::AFX)
add_library(NVIDIA::AFX IMPORTED INTERFACE)
target_include_directories(NVIDIA::AFX
INTERFACE
"${StreamFX_SOURCE_DIR}/third-party/nvidia-maxine-afx-sdk/nvafx/include/"
)
endif()
#- NVIDIA Augmented Reality SDK
if(NOT TARGET NVIDIA::AR)
add_library(NVIDIA::AR IMPORTED INTERFACE)
target_include_directories(NVIDIA::AR
INTERFACE
"${StreamFX_SOURCE_DIR}/third-party/nvidia-maxine-ar-sdk/nvar/include/"
"${StreamFX_SOURCE_DIR}/third-party/nvidia-maxine-ar-sdk/nvar/src/"
)
endif()
#- NVIDIA Video Effects SDK
if(NOT TARGET NVIDIA::VFX)
add_library(NVIDIA::VFX IMPORTED INTERFACE)
target_include_directories(NVIDIA::VFX
INTERFACE
"${StreamFX_SOURCE_DIR}/third-party/nvidia-maxine-vfx-sdk/nvvfx/include/"
"${StreamFX_SOURCE_DIR}/third-party/nvidia-maxine-vfx-sdk/nvvfx/src/"
)
endif()
target_link_libraries(${COMPONENT_TARGET}
PRIVATE
NVIDIA::AFX
NVIDIA::AR
NVIDIA::VFX
)