diff --git a/QtScrcpy/CMakeLists.txt b/QtScrcpy/CMakeLists.txt index 0d55598..b70a7f8 100755 --- a/QtScrcpy/CMakeLists.txt +++ b/QtScrcpy/CMakeLists.txt @@ -198,16 +198,18 @@ if(WIN32) # ******************** Unix-like OSs ******************** elseif(UNIX) set(QS_LIB_PATH "${PROJECT_SOURCE_DIR}/third_party/ffmpeg/lib") - link_directories(${QS_LIB_PATH}) # ==================== macOS ==================== if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") message(STATUS "[QtScrcpy] Make for macOS.") + target_link_directories(${CMAKE_PROJECT_NAME} PRIVATE ${QS_LIB_PATH}) if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output/mac/debug") + set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output/mac/debug") else() - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output/mac/release") + set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output/mac/release") endif() # Icon file stored in Contents/Resources @@ -244,30 +246,33 @@ elseif(UNIX) # =============== Non-Mac OSs (Linux, BSD, etc.) =============== else() if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output/linux/debug") + set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output/linux/debug") else() - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output/linux/release") + set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output/linux/release") endif() find_package(Threads REQUIRED) - message(STATUS "[QtScrcpy] Make for non-Apple Unix-like OS.") + message(STATUS "[QtScrcpy] Make for non-Mac Unix-like OS.") set(INSTALLED_FFMPEG_FOUND false) find_package(PkgConfig) if(PkgConfig_FOUND) - pkg_check_modules(FFmpeg ffmpeg>=4) + pkg_check_modules(FFmpeg libavformat>=58 libavcodec>=58 libavutil>=56 libswscale>=5) if(FFmpeg_FOUND) set(INSTALLED_FFMPEG_FOUND true) - message(STATUS "[QtScrcpy] Development files of FFmpeg ${FFmpeg_VERSION} were detected in your OS and will be used.") - target_link_options(${CMAKE_PROJECT_NAME} "${FFmpeg_LIBRARIES}") - target_compile_options(${CMAKE_PROJECT_NAME} "${FFmpeg_CFLAGS}") - set(QS_EXTERNAL_LIBS_FFMPEG PkgConfig::FFmpeg) + message(STATUS "[QtScrcpy] Development files of FFmpeg were detected in your OS and will be used.") + target_link_options(${CMAKE_PROJECT_NAME} PRIVATE ${FFmpeg_LDFLAGS}) + target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE ${FFmpeg_CFLAGS}) + set(QS_EXTERNAL_LIBS_FFMPEG ${FFmpeg_LIBRARIES}) endif() endif() if(NOT INSTALLED_FFMPEG_FOUND) message(STATUS "[QtScrcpy] Development files of FFmpeg were not detected in your OS. Files within third_party/ffmpeg/ will be used.") + target_link_directories(${CMAKE_PROJECT_NAME} PRIVATE ${QS_LIB_PATH}) set(QS_EXTERNAL_LIBS_FFMPEG avformat avcodec @@ -308,7 +313,6 @@ target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE util ) - if(QT_VERSION_MAJOR EQUAL 6) qt_finalize_executable(${CMAKE_PROJECT_NAME}) endif()