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()