mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-15 17:30:27 +08:00
51 lines
1.9 KiB
CMake
51 lines
1.9 KiB
CMake
function(download_and_decompress url filename sha256_checksum decompress_dir)
|
|
if(EXISTS ${filename})
|
|
file(SHA256 ${filename} CHECKSUM_VARIABLE)
|
|
endif()
|
|
if(NOT EXISTS ${filename} OR NOT CHECKSUM_VARIABLE STREQUAL sha256_checksum)
|
|
message("Downloading file from ${url} to ${filename} ...")
|
|
file(DOWNLOAD ${url} "${filename}.tmp" SHOW_PROGRESS EXPECTED_HASH SHA256=${sha256_checksum})
|
|
file(RENAME "${filename}.tmp" ${filename})
|
|
endif()
|
|
if(NOT EXISTS ${decompress_dir})
|
|
file(MAKE_DIRECTORY ${decompress_dir})
|
|
endif()
|
|
message("Decompress file ${filename} ...")
|
|
execute_process(COMMAND ${CMAKE_COMMAND} -E tar -xf ${filename} WORKING_DIRECTORY ${decompress_dir})
|
|
endfunction()
|
|
|
|
function(get_osx_architecture)
|
|
if (CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
|
|
set(CURRENT_OSX_ARCH "arm64" PARENT_SCOPE)
|
|
elseif(CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64")
|
|
set(CURRENT_OSX_ARCH "x86_64" PARENT_SCOPE)
|
|
else()
|
|
set(CURRENT_OSX_ARCH ${CMAKE_HOST_SYSTEM_PROCESSOR} PARENT_SCOPE)
|
|
endif()
|
|
endfunction()
|
|
|
|
function(detect_host_triplet outvar)
|
|
string(TOLOWER "${CMAKE_HOST_SYSTEM_NAME}" host_triplet_system)
|
|
string(TOLOWER "${CMAKE_HOST_SYSTEM_PROCESSOR}" host_triplet_arch)
|
|
if(host_triplet_system STREQUAL "darwin")
|
|
set(host_triplet_system "osx")
|
|
endif()
|
|
message("host_triplet_system: ${host_triplet_system}")
|
|
message("host_triplet_arch: ${host_triplet_arch}")
|
|
if(host_triplet_arch MATCHES "(amd64|x86_64)")
|
|
set(host_triplet_arch "x64")
|
|
elseif(host_triplet_arch MATCHES "i[3456]86")
|
|
set(host_triplet_arch "x86")
|
|
elseif(host_triplet_arch MATCHES "(aarch64|armv8l|arm64)")
|
|
set(host_triplet_arch "arm64")
|
|
else()
|
|
message(FATAL_ERROR "Unrecognized CMAKE_HOST_SYSTEM_PROCESSOR: ${CMAKE_HOST_SYSTEM_PROCESSOR}")
|
|
endif()
|
|
set(${outvar} "${host_triplet_arch}-${host_triplet_system}" PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
if (APPLE)
|
|
set(CMAKE_OSX_DEPLOYMENT_TARGET 12.0)
|
|
get_osx_architecture()
|
|
endif (APPLE)
|