add_library(libflv libflv/source/amf0.c libflv/source/avswg-avs3.c libflv/source/flv-header.c libflv/source/flv-reader.c libflv/source/hevc-mp4toannexb.c libflv/source/mpeg4-aac.c libflv/source/mpeg4-hevc.c libflv/source/opus-head.c libflv/source/vvc-mp4toannexb.c libflv/source/amf3.c libflv/source/flv-demuxer-script.c libflv/source/flv-muxer.c libflv/source/flv-writer.c libflv/source/mp3-header.c libflv/source/mpeg4-annexbtomp4.c libflv/source/mpeg4-mp4toannexb.c libflv/source/riff-acm.c libflv/source/webm-vpx.c libflv/source/aom-av1.c libflv/source/flv-demuxer.c libflv/source/flv-parser.c libflv/source/hevc-annexbtomp4.c libflv/source/mpeg4-aac-asc.c libflv/source/mpeg4-avc.c libflv/source/mpeg4-vvc.c libflv/source/vvc-annexbtomp4.c ) target_include_directories(libflv PUBLIC libflv/include ) add_library(libmov libmov/source/fmp4-reader.c libmov/source/mov-dinf.c libmov/source/mov-ftyp.c libmov/source/mov-leva.c libmov/source/mov-mfhd.c libmov/source/mov-opus.c libmov/source/mov-stco.c libmov/source/mov-stss.c libmov/source/mov-tag.c libmov/source/mov-tfra.c libmov/source/mov-trex.c libmov/source/mov-udta.c libmov/source/fmp4-writer.c libmov/source/mov-elst.c libmov/source/mov-hdlr.c libmov/source/mov-iods.c libmov/source/mov-mdhd.c libmov/source/mov-minf.c libmov/source/mov-reader.c libmov/source/mov-stsc.c libmov/source/mov-stsz.c libmov/source/mov-tfdt.c libmov/source/mov-tkhd.c libmov/source/mov-trun.c libmov/source/mov-vpcc.c libmov/source/mov-avc1.c libmov/source/mov-esds.c libmov/source/mov-hdr.c libmov/source/mov-mehd.c libmov/source/mov-mvhd.c libmov/source/mov-sidx.c libmov/source/mov-stsd.c libmov/source/mov-stts.c libmov/source/mov-tfhd.c libmov/source/mov-track.c libmov/source/mov-tx3g.c libmov/source/mov-writer.c ) target_include_directories(libmov PUBLIC libmov/include ) add_library(libmpeg libmpeg/source/mpeg-crc32.c libmpeg/source/mpeg-muxer.c libmpeg/source/mpeg-packet.c libmpeg/source/mpeg-pmt.c libmpeg/source/mpeg-ps-enc.c libmpeg/source/mpeg-psd.c libmpeg/source/mpeg-sdt.c libmpeg/source/mpeg-ts-dec.c libmpeg/source/mpeg-ts-h264.c libmpeg/source/mpeg-ts-h266.c libmpeg/source/mpeg-element-descriptor.c libmpeg/source/mpeg-pack-header.c libmpeg/source/mpeg-pat.c libmpeg/source/mpeg-pes.c libmpeg/source/mpeg-ps-dec.c libmpeg/source/mpeg-psm.c libmpeg/source/mpeg-system-header.c libmpeg/source/mpeg-ts-enc.c libmpeg/source/mpeg-ts-h265.c libmpeg/source/mpeg-util.c ) target_include_directories(libmpeg PUBLIC libmpeg/include ) add_library(MediaServer Common/config.h Common/config.cpp Common/macros.h Common/macros.cpp Common/MediaSink.h Common/MediaSink.cpp Common/MediaSource.h Common/MediaSource.cpp Common/MultiMediaSourceMuxer.h Common/MultiMediaSourceMuxer.cpp Common/Parser.h Common/Parser.cpp Common/Stamp.h Common/Stamp.cpp Common/strCoding.h Common/strCoding.cpp ext-codec/AAC.h ext-codec/AAC.cpp ext-codec/AACRtmp.h ext-codec/AACRtmp.cpp ext-codec/G711Rtp.h ext-codec/G711Rtp.cpp ext-codec/H264.h ext-codec/H264.cpp ext-codec/H264Rtp.h ext-codec/H264Rtp.cpp ext-codec/H265.h ext-codec/H265.cpp ext-codec/H265Rtp.h ext-codec/H265Rtp.cpp ext-codec/JPEG.h ext-codec/JPEG.cpp ext-codec/L16.h ext-codec/L16.cpp ext-codec/Opus.h ext-codec/Opus.cpp ext-codec/AACRtp.h ext-codec/AACRtp.cpp ext-codec/G711.h ext-codec/G711.cpp ext-codec/H264Rtmp.h ext-codec/H264Rtmp.cpp ext-codec/H265Rtmp.h ext-codec/H265Rtmp.cpp ext-codec/JPEGRtp.h ext-codec/JPEGRtp.cpp ext-codec/SPSParser.h ext-codec/SPSParser.c Extension/Frame.h Extension/Frame.cpp Extension/CommonRtmp.h Extension/CommonRtmp.cpp Extension/CommonRtp.h Extension/CommonRtp.cpp Extension/Factory.h Extension/Factory.cpp Http/HlsParser.h Http/HlsParser.cpp Http/HttpBody.h Http/HttpBody.cpp Http/HttpClientImp.h Http/HttpClientImp.cpp Http/HttpCookie.h Http/HttpCookie.cpp Http/HttpFileManager.h Http/HttpFileManager.cpp Http/HttpRequester.h Http/HttpRequester.cpp Http/TsPlayer.h Http/TsPlayer.cpp Http/WebSocketSession.h Http/HttpChunkedSplitter.h Http/HttpChunkedSplitter.cpp Http/HttpCookieManager.h Http/HttpCookieManager.cpp Http/HttpSession.h Http/HttpSession.cpp Http/WebSocketSplitter.h Http/WebSocketSplitter.cpp Http/HlsPlayer.h Http/HlsPlayer.cpp Http/HttpConst.h Http/HttpConst.cpp Http/HttpRequestSplitter.h Http/HttpRequestSplitter.cpp Http/TsPlayerImp.h Http/TsplayerImp.cpp Http/HttpClient.h Http/HttpClient.cpp Http/HttpDownloader.h Http/HttpDownloader.cpp Http/HttpTSPlayer.h Http/HttpTSPlayer.cpp Http/WebSocketClient.h Player/MediaPlayer.h Player/MediaPlayer.cpp Player/PlayerBase.h Player/PlayerBase.cpp Player/PlayerProxy.h Player/PlayerProxy.cpp Pusher/MediaPusher.h Pusher/MediaPusher.cpp Pusher/PusherBase.h Pusher/PusherBase.cpp Pusher/PusherProxy.h Pusher/PusherProxy.cpp Record/HlsMaker.h Record/HlsMaker.cpp Record/HlsMakerImp.h Record/HlsMakerImp.cpp Record/HlsMediaSource.h Record/HlsMediaSource.cpp Record/HlsRecorder.h Record/MP4.h Record/MP4.cpp Record/MP4Demuxer.h Record/MP4Demuxer.cpp Record/MP4Muxer.h Record/MP4Muxer.cpp Record/MP4Reader.h Record/MP4Reader.cpp Record/MP4Recorder.h Record/MP4Recorder.cpp Record/MPEG.h Record/MPEG.cpp Record/Recorder.h Record/Recorder.cpp Rtcp/Rtcp.h Rtcp/Rtcp.cpp Rtcp/RtcpContext.h Rtcp/RtcpContext.cpp Rtcp/RtcpFCI.h Rtcp/RtcpFCI.cpp Rtmp/FlvMuxer.h Rtmp/FlvMuxer.cpp Rtmp/FlvPlayer.h Rtmp/FlvPlayer.cpp Rtmp/Rtmp.h Rtmp/Rtmp.cpp Rtmp/RtmpDemuxer.h Rtmp/RtmpDemuxer.cpp Rtmp/RtmpMediaSourceImp.h Rtmp/RtmpMediaSourceImp.cpp Rtmp/RtmpMuxer.h Rtmp/RtmpMuxer.cpp Rtmp/RtmpPlayer.h Rtmp/RtmpPlayer.cpp Rtmp/RtmpSession.h Rtmp/RtmpSession.cpp Rtmp/amf.h Rtmp/amf.cpp Rtmp/FlvSplitter.h Rtmp/FlvSplitter.cpp Rtmp/RtmpPlayerImp.h Rtmp/RtmpPusher.h Rtmp/RtmpPusher.cpp Rtmp/utils.h Rtmp/utils.cpp Rtmp/RtmpCodec.h Rtmp/RtmpMediaSource.h Rtmp/RtmpMediaSourceMuxer.h Rtmp/RtmpProtocol.h Rtmp/RtmpProtocol.cpp Rtp/Decoder.h Rtp/Decoder.cpp Rtp/GB28181Process.h Rtp/GB28181Process.cpp Rtp/PSEncoder.h Rtp/PSEncoder.cpp Rtp/RawEncoder.h Rtp/RawEncoder.cpp Rtp/RtpCache.h Rtp/RtpCache.cpp Rtp/RtpSender.h Rtp/RtpSender.cpp Rtp/RtpServer.h Rtp/RtpServer.cpp Rtp/RtpSplitter.h Rtp/RtpSplitter.cpp Rtp/TSDecoder.h Rtp/TSDecoder.cpp Rtp/PSDecoder.h Rtp/PSDecoder.cpp Rtp/RtpProcess.h Rtp/RtpProcess.cpp Rtp/RtpSession.h Rtp/RtpSession.cpp Rtp/ProcessInterface.h Rtsp/RtpCodec.h Rtsp/RtpCodec.cpp Rtsp/RtpMultiCaster.h Rtsp/RtpMultiCaster.cpp Rtsp/RtpReceiver.h Rtsp/RtpReceiver.cpp Rtsp/Rtsp.h Rtsp/Rtsp.cpp Rtsp/RtspDemuxer.h Rtsp/RtspDemuxer.cpp Rtsp/RtspMediaSourceImp.h Rtsp/RtspMediaSourceImp.cpp Rtsp/RtspMuxer.h Rtsp/RtspMuxer.cpp Rtsp/RtspPlayerImp.h Rtsp/RtspSession.h Rtsp/RtspSession.cpp Rtsp/RtspSplitter.h Rtsp/RtspSplitter.cpp Rtsp/RtspMediaSource.h Rtsp/RtspMediaSourceMuxer.h Rtsp/RtspPlayer.h Rtsp/RtspPlayer.cpp Rtsp/RtspPusher.h Rtsp/RtspPusher.cpp Rtsp/UDPServer.h Rtsp/UDPServer.cpp MediaServer.h MediaServer.cpp ) target_compile_definitions(MediaServer PUBLIC ENABLE_HLS PUBLIC ENABLE_MP4 ) target_include_directories(MediaServer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE /opt/Libraries/ZLMediaKit/include ) target_link_directories(MediaServer PRIVATE /opt/Libraries/ZLMediaKit/lib ) target_link_libraries(MediaServer PUBLIC ToolKit PUBLIC Universal PRIVATE libflv PRIVATE libmov PRIVATE libmpeg )