65 lines
1.7 KiB
CMake
65 lines
1.7 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
project(WindowsSenderDemo)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
# Windows specific
|
|
if(WIN32)
|
|
add_definitions(-DUNICODE -D_UNICODE -DWIN32_LEAN_AND_MEAN -DNOMINMAX)
|
|
endif()
|
|
|
|
# Source files
|
|
set(SOURCES
|
|
main.cpp
|
|
ScreenCapture.cpp
|
|
ScreenCapture.h
|
|
VideoEncoder.cpp
|
|
VideoEncoder.h
|
|
NetworkSender.cpp
|
|
NetworkSender.h
|
|
IddBridge.cpp
|
|
IddBridge.h
|
|
TcpServer.cpp
|
|
TcpServer.h
|
|
FileTransferProtocol.h
|
|
)
|
|
|
|
add_executable(WindowsSenderDemo ${SOURCES})
|
|
|
|
# Libraries
|
|
# Media Foundation libraries are removed as we switch to FFmpeg
|
|
# target_link_libraries(WindowsSenderDemo d3d11 dxgi mf mfplat mfuuid ws2_32 mfreadwrite)
|
|
|
|
# Find FFmpeg
|
|
# You might need to set FFMPEG_ROOT to your FFmpeg installation path
|
|
# e.g. cmake .. -DFFMPEG_ROOT="C:/ffmpeg"
|
|
|
|
find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h PATHS ${FFMPEG_ROOT}/include)
|
|
find_library(AVCODEC_LIBRARY avcodec PATHS ${FFMPEG_ROOT}/lib)
|
|
find_library(AVFORMAT_LIBRARY avformat PATHS ${FFMPEG_ROOT}/lib)
|
|
find_library(AVUTIL_LIBRARY avutil PATHS ${FFMPEG_ROOT}/lib)
|
|
find_library(SWSCALE_LIBRARY swscale PATHS ${FFMPEG_ROOT}/lib)
|
|
|
|
if (AVCODEC_INCLUDE_DIR AND AVCODEC_LIBRARY)
|
|
include_directories(${AVCODEC_INCLUDE_DIR})
|
|
message(STATUS "Found FFmpeg: ${AVCODEC_INCLUDE_DIR}")
|
|
set(USE_FFMPEG 1)
|
|
else()
|
|
message(WARNING "FFmpeg not found. Building with NO_FFMPEG stub encoder.")
|
|
add_definitions(-DNO_FFMPEG)
|
|
endif()
|
|
|
|
target_link_libraries(WindowsSenderDemo
|
|
d3d11
|
|
dxgi
|
|
ws2_32
|
|
)
|
|
if (USE_FFMPEG)
|
|
target_link_libraries(WindowsSenderDemo
|
|
${AVCODEC_LIBRARY}
|
|
${AVFORMAT_LIBRARY}
|
|
${AVUTIL_LIBRARY}
|
|
${SWSCALE_LIBRARY}
|
|
)
|
|
endif()
|