Ref https://github.com/raspberrypi/rpi-imager/issues/924 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 247e1d03..3001405a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -155,27 +155,26 @@ set(BUILD_TESTING OFF CACHE BOOL "" FORCE) set(BUILD_STATIC_LIBS ON) set(BUILD_SHARED_LIBS OFF) -include(FetchContent) -include(dependencies/fetch-vendor.cmake) +find_package(PkgConfig REQUIRED) # Bundled liblzma -include(dependencies/xz.cmake) +pkg_check_modules(LibLZMA REQUIRED IMPORTED_TARGET liblzma) # Bundled zstd -include(dependencies/zstd.cmake) +pkg_check_modules(ZSTD REQUIRED IMPORTED_TARGET libzstd) # Remote nghttp2 -include(dependencies/nghttp2.cmake) +pkg_check_modules(NGHTTP2 REQUIRED IMPORTED_TARGET libnghttp2) # Bundled yescrypt include(dependencies/yescrypt.cmake) # Bundled zlib -include(dependencies/zlib.cmake) +pkg_check_modules(ZLIB REQUIRED IMPORTED_TARGET zlib) # Bundled libarchive -include(dependencies/libarchive.cmake) +pkg_check_modules(LibArchive REQUIRED IMPORTED_TARGET libarchive) # libcurl if(APPLE) @@ -189,12 +188,12 @@ if(APPLE) # Note: No need to find OpenSSL on macOS - we use native Security.framework # for RSA operations and CommonCrypto for hashing else() - include(dependencies/curl.cmake) + pkg_check_modules(CURL REQUIRED IMPORTED_TARGET libcurl) endif() # Bundled libusb (for rpiboot Compute Module support) -include(dependencies/libusb.cmake) +pkg_check_modules(LIBUSB REQUIRED IMPORTED_TARGET libusb-1.0) # Add dependencies if (APPLE) @@ -540,12 +539,12 @@ else() include(linux/PlatformPackaging.cmake) endif() -add_dependencies(${PROJECT_NAME} zlibstatic yescrypt usb-1.0-static) -include_directories(${CURL_INCLUDE_DIR} ${LibArchive_INCLUDE_DIR} ${LIBLZMA_INCLUDE_DIRS} ${LIBDRM_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ${ZSTD_INCLUDE_DIR} ${YESCRYPT_INCLUDE_DIR} ${LIBUSB_INCLUDE_DIR}) +add_dependencies(${PROJECT_NAME} yescrypt) +include_directories(${LIBDRM_INCLUDE_DIRS} ${YESCRYPT_INCLUDE_DIR}) # Link different Qt components based on build type # rpiboot link libraries (libusb) -set(RPIBOOT_LIBS ${LIBUSB_LIBRARIES}) +set(RPIBOOT_LIBS PkgConfig::LIBUSB) if(BUILD_CLI_ONLY) # CLI-only build: link Core, Network and essential libraries @@ -555,7 +554,7 @@ else() # DBus on Linux for suspend inhibitor, portal file dialogs and URI handler; # excluded for embedded (no session bus on the netboot image). if(UNIX AND NOT APPLE AND NOT BUILD_EMBEDDED) - target_link_libraries(${PROJECT_NAME} PRIVATE ${QT}::Core ${QT}::Gui ${QT}::Quick ${QT}::Svg ${QT}::Network ${QT}::DBus ${CURL_LIBRARIES} ${LibArchive_LIBRARIES} ${ZSTD_LIBRARIES} ${LIBLZMA_LIBRARIES} ${ZLIB_LIBRARIES} ${YESCRYPT_LIBRARIES} ${LIBDRM_LIBRARIES} ${ATOMIC_LIBRARY} ${RPIBOOT_LIBS} ${EXTRALIBS}) + target_link_libraries(${PROJECT_NAME} PRIVATE ${QT}::Core ${QT}::Gui ${QT}::Quick ${QT}::Svg ${QT}::Network ${QT}::DBus PkgConfig::CURL PkgConfig::LibArchive PkgConfig::ZSTD PkgConfig::LibLZMA PkgConfig::ZLIB ${YESCRYPT_LIBRARIES} ${LIBDRM_LIBRARIES} ${ATOMIC_LIBRARY} ${RPIBOOT_LIBS} ${EXTRALIBS}) else() target_link_libraries(${PROJECT_NAME} PRIVATE ${QT}::Core ${QT}::Gui ${QT}::Quick ${QT}::Svg ${QT}::Network ${CURL_LIBRARIES} ${LibArchive_LIBRARIES} ${ZSTD_LIBRARIES} ${LIBLZMA_LIBRARIES} ${ZLIB_LIBRARIES} ${YESCRYPT_LIBRARIES} ${LIBDRM_LIBRARIES} ${ATOMIC_LIBRARY} ${RPIBOOT_LIBS} ${EXTRALIBS}) endif()