Warning, /acts/cmake/ActsEnsureUv.cmake is written in an unsupported language. File is not indexed.
0001 include_guard(GLOBAL)
0002
0003 find_program(uv_exe uv)
0004
0005 if(uv_exe STREQUAL "uv_exe-NOTFOUND")
0006 message(STATUS "uv not found, installing it")
0007
0008 set(_uv_version "0.7.19")
0009 set(_base_url
0010 "https://github.com/astral-sh/uv/releases/download/${_uv_version}"
0011 )
0012
0013 if(NOT APPLE AND NOT UNIX)
0014 message(FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}")
0015 endif()
0016
0017 if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
0018 if(APPLE)
0019 set(UV_URL "${_base_url}/uv-x86_64-apple-darwin.tar.gz")
0020 set(UV_HASH
0021 "SHA256=698d24883fd441960fb4bc153b7030b89517a295502017ff3fdbba2fb0a0aa67"
0022 )
0023 elseif(UNIX)
0024 set(UV_URL "${_base_url}/uv-x86_64-unknown-linux-musl.tar.gz")
0025 set(UV_HASH
0026 "SHA256=6236ed00a7442ab2c0f56f807d5a3331f3fb5c7640a357482fbc8492682641b2"
0027 )
0028 endif()
0029 elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(arm)|(ARM)|(aarch64)")
0030 if(APPLE)
0031 set(UV_URL "${_base_url}/uv-aarch64-apple-darwin.tar.gz")
0032 set(UV_HASH
0033 "SHA256=698d24883fd441960fb4bc153b7030b89517a295502017ff3fdbba2fb0a0aa67"
0034 )
0035 elseif(UNIX)
0036 set(UV_URL "${_base_url}/uv-aarch64-unknown-linux-musl.tar.gz")
0037 set(UV_HASH
0038 "SHA256=e83c7c6d86c8e7456078c736a72550ce20222df8083f9317fc58cd49422ce5eb"
0039 )
0040 endif()
0041 else()
0042 message(
0043 FATAL_ERROR
0044 "Unsupported architecture: ${CMAKE_SYSTEM_PROCESSOR}"
0045 )
0046 endif()
0047
0048 message(STATUS "Downloading uv from ${UV_URL}")
0049 set(UV_DIR "${CMAKE_BINARY_DIR}/uv")
0050 file(DOWNLOAD ${UV_URL} ${UV_DIR}/uv.tar.gz EXPECTED_HASH ${UV_HASH})
0051 file(ARCHIVE_EXTRACT INPUT ${UV_DIR}/uv.tar.gz DESTINATION ${UV_DIR})
0052 file(REMOVE ${UV_DIR}/uv.tar.gz)
0053
0054 file(GLOB uv_extracted ${UV_DIR}/uv*)
0055 message(STATUS "Extracted uv: ${uv_extracted}")
0056
0057 find_program(uv_exe uv PATHS ${uv_extracted} REQUIRED NO_DEFAULT_PATH)
0058 endif()
0059
0060 execute_process(
0061 COMMAND ${uv_exe} --version
0062 OUTPUT_VARIABLE _uv_version_str
0063 OUTPUT_STRIP_TRAILING_WHITESPACE
0064 )
0065 message(STATUS "Found uv ${_uv_version_str}: ${uv_exe}")