nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1diff --git a/CMakeLists.txt b/CMakeLists.txt
2index ba1c572..0a0ccdd 100644
3--- a/QtScrcpy/QtScrcpyCore/CMakeLists.txt
4+++ b/QtScrcpy/QtScrcpyCore/CMakeLists.txt
5@@ -162,87 +162,8 @@ target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DI
6 target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/device/recorder)
7 target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/devicemanage)
8
9-#
10-# plantform deps
11-#
12+find_package(PkgConfig REQUIRED)
13+pkg_check_modules(FFMPEG REQUIRED libavcodec libavformat libavutil libswscale)
14
15-# windows
16-if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
17- # ffmpeg
18- # include
19- target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/ffmpeg/include)
20- # link
21- set(FFMPEG_LIB_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/ffmpeg/lib/${QSC_CPU_ARCH}")
22- target_link_directories(${QSC_PROJECT_NAME} PUBLIC ${FFMPEG_LIB_PATH})
23- target_link_libraries(${QSC_PROJECT_NAME} PRIVATE
24- avformat
25- avcodec
26- avutil
27- swscale
28- )
29- # copy
30- set(THIRD_PARTY_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party")
31- set(FFMPEG_BIN_PATH "${THIRD_PARTY_PATH}/ffmpeg/bin/${QSC_CPU_ARCH}")
32- add_custom_command(TARGET ${QSC_PROJECT_NAME} POST_BUILD
33- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_BIN_PATH}/avcodec-58.dll" "${QSC_DEPLOY_PATH}"
34- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_BIN_PATH}/avformat-58.dll" "${QSC_DEPLOY_PATH}"
35- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_BIN_PATH}/avutil-56.dll" "${QSC_DEPLOY_PATH}"
36- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_BIN_PATH}/swscale-5.dll" "${QSC_DEPLOY_PATH}"
37- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_BIN_PATH}/swresample-3.dll" "${QSC_DEPLOY_PATH}"
38- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${THIRD_PARTY_PATH}/adb/win/adb.exe" "${QSC_DEPLOY_PATH}"
39- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${THIRD_PARTY_PATH}/adb/win/AdbWinApi.dll" "${QSC_DEPLOY_PATH}"
40- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${THIRD_PARTY_PATH}/adb/win/AdbWinUsbApi.dll" "${QSC_DEPLOY_PATH}"
41- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${THIRD_PARTY_PATH}/scrcpy-server" "${QSC_DEPLOY_PATH}"
42- )
43-endif()
44-
45-# MacOS
46-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
47- # ffmpeg
48- # include
49- target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/ffmpeg/include)
50- # link
51- set(FFMPEG_LIB_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/ffmpeg/lib/${QSC_CPU_ARCH}")
52- target_link_directories(${QSC_PROJECT_NAME} PUBLIC ${FFMPEG_LIB_PATH})
53- target_link_libraries(${QSC_PROJECT_NAME} PRIVATE
54- avformat.58
55- avcodec.58
56- avutil.56
57- swscale.5
58- )
59-
60- # copy bundle file
61- add_custom_command(TARGET ${QSC_PROJECT_NAME} POST_BUILD
62- # dylib,scrcpy-server,adb copy to Contents/MacOS
63- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_LIB_PATH}/libavcodec.58.dylib" "${QSC_DEPLOY_PATH}/MacOS"
64- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_LIB_PATH}/libavformat.58.dylib" "${QSC_DEPLOY_PATH}/MacOS"
65- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_LIB_PATH}/libavutil.56.dylib" "${QSC_DEPLOY_PATH}/MacOS"
66- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_LIB_PATH}/libswscale.5.dylib" "${QSC_DEPLOY_PATH}/MacOS"
67- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_LIB_PATH}/libswresample.3.dylib" "${QSC_DEPLOY_PATH}/MacOS"
68-
69- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/scrcpy-server" "${QSC_DEPLOY_PATH}/MacOS"
70- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/adb/mac/adb" "${QSC_DEPLOY_PATH}/MacOS"
71- )
72-endif()
73-
74-# Linux
75-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
76- # include
77- target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/ffmpeg/include)
78- # link
79- set(FFMPEG_LIB_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/ffmpeg/lib")
80- target_link_directories(${QSC_PROJECT_NAME} PUBLIC ${FFMPEG_LIB_PATH})
81- target_link_libraries(${QSC_PROJECT_NAME} PRIVATE
82- # ffmpeg
83- avformat
84- avcodec
85- avutil
86- swscale
87- z
88- )
89-
90- add_custom_command(TARGET ${QSC_PROJECT_NAME} POST_BUILD
91- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/adb/linux/adb" "${QSC_DEPLOY_PATH}"
92- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/scrcpy-server" "${QSC_DEPLOY_PATH}"
93- )
94-endif()
95+target_link_libraries(${QSC_PROJECT_NAME} PRIVATE ${FFMPEG_LIBRARIES})
96+target_include_directories(${QSC_PROJECT_NAME} PRIVATE ${FFMPEG_INCLUDE_DIRS})