代码拉取完成,页面将自动刷新
function(kmpkg_extract_archive)
cmake_parse_arguments(PARSE_ARGV 0 "arg"
""
"ARCHIVE;DESTINATION"
""
)
foreach(arg_name IN ITEMS ARCHIVE DESTINATION)
if(NOT DEFINED "arg_${arg_name}")
message(FATAL_ERROR "${arg_name} is required.")
endif()
endforeach()
if(DEFINED arg_UNPARSED_ARGUMENTS)
message(FATAL_ERROR "Unrecognized arguments: ${arg_UNPARSED_ARGUMENTS}")
endif()
if(EXISTS "${arg_DESTINATION}")
message(FATAL_ERROR "${arg_DESTINATION} was an extraction target, but it already exists.")
endif()
file(MAKE_DIRECTORY "${arg_DESTINATION}")
cmake_path(GET arg_ARCHIVE EXTENSION archive_extension)
string(TOLOWER "${archive_extension}" archive_extension)
if("${archive_extension}" MATCHES [[\.msi$]])
cmake_path(NATIVE_PATH arg_ARCHIVE archive_native_path)
cmake_path(NATIVE_PATH arg_DESTINATION destination_native_path)
cmake_path(GET arg_ARCHIVE PARENT_PATH archive_directory)
kmpkg_execute_in_download_mode(
COMMAND msiexec
/a "${archive_native_path}"
/qn "TARGETDIR=${destination_native_path}"
WORKING_DIRECTORY "${archive_directory}"
)
elseif("${archive_extension}" MATCHES [[\.7z\.exe$]])
kmpkg_find_acquire_program(7Z)
kmpkg_execute_in_download_mode(
COMMAND ${7Z} x
"${arg_ARCHIVE}"
"-o${arg_DESTINATION}"
-y -bso0 -bsp0
WORKING_DIRECTORY "${arg_DESTINATION}"
)
else()
kmpkg_execute_in_download_mode(
COMMAND "${CMAKE_COMMAND}" -E tar xzf "${arg_ARCHIVE}"
WORKING_DIRECTORY "${arg_DESTINATION}"
)
endif()
endfunction()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。