cmake_minimum_required(VERSION 3.26) project(video_call) set(CMAKE_CXX_STANDARD 17) add_compile_options(-std=c++17) # 预编译宏 add_definitions(-DWEBRTC_POSIX -DWEBRTC_MAC) # -DWEBRTC_LINUX # 系统库文件 find_package(PkgConfig REQUIRED) pkg_check_modules(GTK3 REQUIRED gtk+-3.0) pkg_check_modules(JSONCPP REQUIRED jsoncpp) pkg_check_modules(FFMPEG REQUIRED IMPORTED_TARGET libavcodec libswresample libavdevice libavfilter libavformat libavutil libpostproc libswscale ) #find_package(GTK3 REQUIRED) #find_package(JSONCPP REQUIRED) # macos sdk find_library(COCOA_LIBRARY Cocoa) find_library(CORE_AUDIO_LIBRARY CoreAudio) find_library(CORE_VIDEO_LIBRARY CoreVideo) find_library(AUDIO_TOOLBOX_LIBRARY AudioToolbox) find_library(AUDIO_TOOLBOX_UNIT AudioUnit) find_library(CORE_MEDIA_LIBRARY CoreMedia) find_library(AVFOUNDATION_LIBRARY AVFoundation) # 系统库文件 include_directories(/opt/homebrew/include) include_directories(/opt/homebrew/include/cairo) include_directories(/opt/homebrew/include/gdk-pixbuf-2.0) include_directories(/opt/homebrew/include/gtk-3.0) include_directories(/opt/homebrew/include/gtk) include_directories(/opt/homebrew/include/pango-1.0) include_directories(/opt/homebrew/include/glib-2.0) include_directories(/opt/homebrew/include/glib-2.0/glib) include_directories(/opt/homebrew/include/atk-1.0) #include_directories(/opt/homebrew/Cellar/ffmpeg/6.1.1_3/include) #include_directories(${JSONCPP_INCLUDE_DIRS}) include_directories(${GTK3_INCLUDE_DIRS}) # 项目内 include_directories(${CMAKE_SOURCE_DIR}/include) include_directories(${CMAKE_SOURCE_DIR}/include/absl) include_directories(${CMAKE_SOURCE_DIR}/include/webrtc_cxx_sdk) #include_directories(${CMAKE_SOURCE_DIR}/include/webrtc_cxx_sdk/third_party/ffmpeg) #include_directories(/Users/dongl/tools/ffmpeg/ffmpeg_build/include) include_directories(${CMAKE_SOURCE_DIR}/include/webrtc_cxx_sdk/third_party/harfbuzz-ng/src/src) include_directories(${CMAKE_SOURCE_DIR}/include/webrtc_cxx_sdk/third_party/libyuv/include) # 打印路径 message( ${GTK3_LIBRARY_DIRS}) message( ${JSONCPP_LIBRARY_DIRS}) message( ${COCOA_LIBRARY}) message( ${CORE_AUDIO_LIBRARY}) message( ${AUDIO_TOOLBOX_LIBRARY}) message( ${AUDIO_TOOLBOX_UNIT}) message( ${CORE_MEDIA_LIBRARY}) message( ${AVFOUNDATION_LIBRARY}) # 链接库 link_directories(${CMAKE_SOURCE_DIR}/lib/arm_macos) link_directories(/opt/homebrew/lib) #link_directories(/opt/homebrew/Cellar/ffmpeg/6.1.1_3/lib) #link_directories(/Users/dongl/tools/ffmpeg/ffmpeg_build/lib) add_subdirectory(src/client) add_subdirectory(src/server) add_subdirectory(src/test)