diff --git a/scripts/cmake/vcpkg_extract_archive.cmake b/scripts/cmake/vcpkg_extract_archive.cmake index 51a425752cc4a3..cddeaf5d033588 100644 --- a/scripts/cmake/vcpkg_extract_archive.cmake +++ b/scripts/cmake/vcpkg_extract_archive.cmake @@ -34,10 +34,14 @@ function(vcpkg_extract_archive) WORKING_DIRECTORY "${archive_directory}" ) elseif("${archive_extension}" MATCHES [[\.7z\.exe$]]) + vcpkg_find_acquire_program(7Z) vcpkg_execute_in_download_mode( - COMMAND "$ENV{VCPKG_COMMAND}" z-extract "${arg_ARCHIVE}" "${arg_DESTINATION}" - WORKING_DIRECTORY "${arg_DESTINATION}" - ) + COMMAND ${7Z} x + "${arg_ARCHIVE}" + "-o${arg_DESTINATION}" + -y -bso0 -bsp0 + WORKING_DIRECTORY "${arg_DESTINATION}" + ) else() vcpkg_execute_in_download_mode( COMMAND "${CMAKE_COMMAND}" -E tar xzf "${arg_ARCHIVE}" diff --git a/scripts/cmake/vcpkg_find_acquire_program(7Z).cmake b/scripts/cmake/vcpkg_find_acquire_program(7Z).cmake index 23ca4431d78ca3..6a4dd6fc2a3de4 100644 --- a/scripts/cmake/vcpkg_find_acquire_program(7Z).cmake +++ b/scripts/cmake/vcpkg_find_acquire_program(7Z).cmake @@ -1,9 +1,8 @@ set(program_name 7z) if(CMAKE_HOST_WIN32) - set(tool_subdirectory "24.08") - set(paths_to_search "${DOWNLOADS}/tools/7z/${tool_subdirectory}/7z2408/SourceDir/Files/7-Zip") - set(download_urls "https://github.com/ip7z/7zip/releases/download/24.08/7z2408.exe") - set(download_filename "7z2408.7z.exe") - set(search_names "7z.exe") - set(download_sha512 7f6c46c780fcb5fc10cc5405221179ddecbbb871c578ca3d9e3a74141271b383bd83e8f9d75c98d7e9d406e9b935d52a6b04913d654169e0b30f0719225e7dd9) + set(paths_to_search "${DOWNLOADS}/tools/7zip_msi-${tool_subdirectory}-windows/Files/7-Zip") # vcpkg fetch 7zip_msi path + list(APPEND paths_to_search "${DOWNLOADS}/tools/7z/${tool_subdirectory}/Files/7-Zip") + set(download_urls "https://github.com/ip7z/7zip/releases/download/24.08/7z2408.msi" "https://7-zip.org/a/7z2408.msi") + set(download_filename "7z2408.msi") + set(download_sha512 0bc88c99ad921a6f828d9ed9b8391510d1d0c2f8ecb7ad2921838c97c20f215e2ab03198009d159e2d1859bb20f157010f492288ce61c86544df06742cebbc34) endif()