Ref https://github.com/raspberrypi/rpi-imager/issues/924 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -39,126 +39,13 @@ endif(APPLE) set(BUILD_TESTING OFF) # Bundled liblzma -set(XZ_MICROLZMA_DECODER OFF) -set(XZ_MICROLZMA_ENCODER OFF) -set(XZ_LZIP_DECODER OFF) -set(XZ_ENABLE_SANDBOX OFF) -set(XZ_BUILD_SHARED_LIBS OFF) -set(XZ_ENABLE_DOXYGEN OFF) -set(XZ_DECODERS - lzma1 - lzma2 - delta -) -set(XZ_ENCODERS "") -set(CREATE_LZMA_SYMLINKS OFF) -set(CREATE_XZ_SYMLINKS OFF) -add_subdirectory(dependencies/xz-5.6.2) -set(LIBLZMA_FOUND true) -set(LIBLZMA_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies/xz-5.6.2/src/liblzma/api FORCE) -set(LIBLZMA_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/dependencies/xz-5.6.2/src/liblzma/api FORCE) -set(LIBLZMA_LIBRARY liblzma) -set(LIBLZMA_LIBRARIES liblzma) - -# Bundled zstd -set(ZSTD_BUILD_PROGRAMS OFF CACHE BOOL "" FORCE) -set(ZSTD_BUILD_SHARED OFF CACHE BOOL "" FORCE) -set(ZSTD_BUILD_TESTS OFF CACHE BOOL "" FORCE) -set(ZSTD_BUILD_DICTBUILDER OFF CACHE BOOL "" FORCE) -add_subdirectory(dependencies/zstd-1.5.6/build/cmake) -set(Zstd_FOUND true) -set(ZSTD_FOUND true) -set(Zstd_VERSION "1.5.6") -set(ZSTD_VERSION "1.5.6") -set(Zstd_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies/zstd-1.5.6/lib) -set(ZSTD_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies/zstd-1.5.6/lib) -set(Zstd_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/dependencies/zstd-1.5.6/lib) -set(ZSTD_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/dependencies/zstd-1.5.6/lib) -set(Zstd_LIBRARIES libzstd_static) -set(ZSTD_LIBRARIES libzstd_static) - -# Bundled zlib -set(ZLIB_BUILD_EXAMPLES OFF) -add_subdirectory(dependencies/zlib-1.3.1) -set(ZLIB_FOUND TRUE) -set(ZLIB_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies/zlib-1.3.1 CACHE PATH "zlib include dir") -set(ZLIB_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/dependencies/zlib-1.3.1 CACHE PATH "zlib include dir") -set(ZLIB_LIBRARY zlibstatic) -set(ZLIB_LIBRARIES zlibstatic) +find_package(LibLZMA REQUIRED) # Bundled libarchive -set(ARCHIVE_ENABLE_WERROR OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_INSTALL OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_TEST OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_CNG OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_MBEDTLS OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_NETTLE OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_OPENSSL OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_BZip2 OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_LZ4 OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_LZO OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_LIBB2 OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_LIBXML2 OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_EXPAT OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_PCREPOSIX OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_PCRE2POSIX OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_LIBGCC OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_TAR OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_CPIO OFF CACHE BOOL "") -set(ARCHIVE_ENABLE_CAT OFF CACHE BOOL "") -set(ARCHIVE_BUILD_SHARED_LIBS OFF CACHE BOOL "") -add_subdirectory(dependencies/libarchive-3.7.4) -set(LibArchive_FOUND true) -set(LibArchive_LIBRARIES archive_static) -set(LibArchive_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies/libarchive-3.7.4/libarchive) +find_package(LibArchive REQUIRED) # Bundled libcurl -set(CMAKE_CURL_INCLUDES) -set(BUILD_STATIC_CURL true) -set(BUILD_CURL_EXE OFF CACHE BOOL "" FORCE) -set(BUILD_LIBCURL_DOCS OFF CACHE BOOL "" FORCE) -set(ENABLE_CURL_MANUAL OFF CACHE BOOL "" FORCE) -set(CURL_DISABLE_ALTSVC ON) -set(CURL_DISABLE_KERBEROS_AUTH ON) -set(CURL_DISABLE_DICT ON) -set(CURL_DISABLE_DISABLE_FORM_API ON) -set(CURL_DISABLE_FTP ON) -set(CURL_DISABLE_GOPHER ON) -set(CURL_DISABLE_IMAP ON) -set(CURL_DISABLE_LDAP ON) -set(CURL_DISABLE_LDAPS ON) -set(CURL_DISABLE_MQTT ON) -set(CURL_DISABLE_NETRC ON) -set(CURL_DISABLE_POP3 ON) -set(CURL_DISABLE_RTSP ON) -set(CURL_DISABLE_SMTP ON) -set(CURL_DISABLE_TELNET ON) -set(CURL_DISABLE_TFTP ON) -set(CURL_ZSTD ON) -set(CURL_ENABLE_EXPORT_TARGET OFF CACHE BOOL "" FORCE) -if (APPLE) - # TODO: SecureTransport is a deprecated API in macOS, supporting - # only up to TLS v1.2. cURL has not implemented the replacement, - # Network.framework, and so we will need to select an alternative. - # Best recommendation: Libressl, as used by Apple in the curl binary - # on macOS. - set(CURL_USE_SECTRANSP ON) - set(CURL_DEFAULT_SSL_BACKEND "secure-transport") -else() - if (WIN32) - set(CURL_USE_SCHANNEL ON) - set(CURL_DEFAULT_SSL_BACKEND "schannel") - else () - set(CURL_USE_GNUTLS ON) - set(CURL_DEFAULT_SSL_BACKEND "gnutls") - endif(WIN32) -endif(APPLE) - -add_subdirectory(dependencies/curl-8.8.0) -set(CURL_FOUND true) -set(CURL_LIBRARIES libcurl_static) -set(CURL_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies/curl-8.8.0/include) -set(CURL_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/dependencies/curl-8.8.0/include) +find_package(CURL REQUIRED) # Adding headers explicity so they are displayed in Qt Creator set(HEADERS config.h imagewriter.h networkaccessmanagerfactory.h nan.h drivelistitem.h drivelistmodel.h drivelistmodelpollthread.h driveformatthread.h powersaveblocker.h cli.h