diff --git a/CMakeLists.txt b/CMakeLists.txt index ba1c572..0a0ccdd 100644 --- a/QtScrcpy/QtScrcpyCore/CMakeLists.txt +++ b/QtScrcpy/QtScrcpyCore/CMakeLists.txt @@ -162,87 +162,8 @@ target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DI target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/device/recorder) target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/devicemanage) -# -# plantform deps -# +find_package(PkgConfig REQUIRED) +pkg_check_modules(FFMPEG REQUIRED libavcodec libavformat libavutil libswscale) -# windows -if(CMAKE_SYSTEM_NAME STREQUAL "Windows") - # ffmpeg - # include - target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/ffmpeg/include) - # link - set(FFMPEG_LIB_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/ffmpeg/lib/${QSC_CPU_ARCH}") - target_link_directories(${QSC_PROJECT_NAME} PUBLIC ${FFMPEG_LIB_PATH}) - target_link_libraries(${QSC_PROJECT_NAME} PRIVATE - avformat - avcodec - avutil - swscale - ) - # copy - set(THIRD_PARTY_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party") - set(FFMPEG_BIN_PATH "${THIRD_PARTY_PATH}/ffmpeg/bin/${QSC_CPU_ARCH}") - add_custom_command(TARGET ${QSC_PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_BIN_PATH}/avcodec-58.dll" "${QSC_DEPLOY_PATH}" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_BIN_PATH}/avformat-58.dll" "${QSC_DEPLOY_PATH}" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_BIN_PATH}/avutil-56.dll" "${QSC_DEPLOY_PATH}" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_BIN_PATH}/swscale-5.dll" "${QSC_DEPLOY_PATH}" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_BIN_PATH}/swresample-3.dll" "${QSC_DEPLOY_PATH}" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${THIRD_PARTY_PATH}/adb/win/adb.exe" "${QSC_DEPLOY_PATH}" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${THIRD_PARTY_PATH}/adb/win/AdbWinApi.dll" "${QSC_DEPLOY_PATH}" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${THIRD_PARTY_PATH}/adb/win/AdbWinUsbApi.dll" "${QSC_DEPLOY_PATH}" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${THIRD_PARTY_PATH}/scrcpy-server" "${QSC_DEPLOY_PATH}" - ) -endif() - -# MacOS -if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - # ffmpeg - # include - target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/ffmpeg/include) - # link - set(FFMPEG_LIB_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/ffmpeg/lib/${QSC_CPU_ARCH}") - target_link_directories(${QSC_PROJECT_NAME} PUBLIC ${FFMPEG_LIB_PATH}) - target_link_libraries(${QSC_PROJECT_NAME} PRIVATE - avformat.58 - avcodec.58 - avutil.56 - swscale.5 - ) - - # copy bundle file - add_custom_command(TARGET ${QSC_PROJECT_NAME} POST_BUILD - # dylib,scrcpy-server,adb copy to Contents/MacOS - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_LIB_PATH}/libavcodec.58.dylib" "${QSC_DEPLOY_PATH}/MacOS" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_LIB_PATH}/libavformat.58.dylib" "${QSC_DEPLOY_PATH}/MacOS" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_LIB_PATH}/libavutil.56.dylib" "${QSC_DEPLOY_PATH}/MacOS" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_LIB_PATH}/libswscale.5.dylib" "${QSC_DEPLOY_PATH}/MacOS" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_LIB_PATH}/libswresample.3.dylib" "${QSC_DEPLOY_PATH}/MacOS" - - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/scrcpy-server" "${QSC_DEPLOY_PATH}/MacOS" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/adb/mac/adb" "${QSC_DEPLOY_PATH}/MacOS" - ) -endif() - -# Linux -if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - # include - target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/ffmpeg/include) - # link - set(FFMPEG_LIB_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/ffmpeg/lib") - target_link_directories(${QSC_PROJECT_NAME} PUBLIC ${FFMPEG_LIB_PATH}) - target_link_libraries(${QSC_PROJECT_NAME} PRIVATE - # ffmpeg - avformat - avcodec - avutil - swscale - z - ) - - add_custom_command(TARGET ${QSC_PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/adb/linux/adb" "${QSC_DEPLOY_PATH}" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/scrcpy-server" "${QSC_DEPLOY_PATH}" - ) -endif() +target_link_libraries(${QSC_PROJECT_NAME} PRIVATE ${FFMPEG_LIBRARIES}) +target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${FFMPEG_INCLUDE_DIRS})