mirror of
https://dev.lirent.ru/Vatrog/vm-vgpu-streamer.git
synced 2026-06-18 02:16:38 +03:00
Initial commit: win32 vGPU stream capture module
Capture backends (NvFBC/DDA/GDI), cursor/region/present helpers, publish API, vendor NvFBC headers; CMake build with mingw-w64 toolchain.
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(vgpu-streamer C)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_C_EXTENSIONS OFF) # strict c11; shim uses __asm__/__atomic_* — ok
|
||||
|
||||
add_library(vgpustream STATIC
|
||||
src/stream/publish.c
|
||||
src/stream/win32/region.c
|
||||
src/stream/win32/present.c
|
||||
src/stream/win32/cursor.c
|
||||
src/stream/win32/capture.c
|
||||
src/stream/win32/capture_nvfbc.c
|
||||
src/stream/win32/capture_dda.c
|
||||
src/stream/win32/capture_gdi.c)
|
||||
target_include_directories(vgpustream
|
||||
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/stream/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/stream/win32
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party) # vendor NvFBC + Windows.h shim
|
||||
target_compile_definitions(vgpustream PRIVATE CINTERFACE WIN32_LEAN_AND_MEAN=)
|
||||
target_compile_options(vgpustream PRIVATE
|
||||
$<$<C_COMPILER_ID:GNU>:-O2;-Wall;-Wextra>
|
||||
$<$<C_COMPILER_ID:MSVC>:/O2;/W3>)
|
||||
target_link_libraries(vgpustream PRIVATE d3d11 dxgi dxguid uuid user32 gdi32)
|
||||
|
||||
add_executable(vgpu-streamer src/stream/win32/main.c)
|
||||
set_target_properties(vgpu-streamer PROPERTIES OUTPUT_NAME vgpu-streamer)
|
||||
target_include_directories(vgpu-streamer
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/stream/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/stream/win32)
|
||||
target_link_libraries(vgpu-streamer PRIVATE vgpustream)
|
||||
target_link_options(vgpu-streamer PRIVATE $<$<C_COMPILER_ID:GNU>:-static;-s>)
|
||||
Reference in New Issue
Block a user