d5f207424b
e2e Tests / e2e (macos-latest) (push) Waiting to run
Nix CI / check (push) Waiting to run
Python CI / Python bindings (macos-latest) (push) Waiting to run
e2e Tests / e2e (windows-latest) (push) Waiting to run
Python CI / Python bindings (windows-latest) (push) Waiting to run
Build & Publish / Build Neovim aarch64-apple-darwin (push) Waiting to run
Build & Publish / Build Neovim aarch64-pc-windows-msvc (push) Waiting to run
Build & Publish / Build Neovim x86_64-apple-darwin (push) Waiting to run
Build & Publish / Build Neovim x86_64-pc-windows-msvc (push) Waiting to run
Build & Publish / Build C FFI aarch64-apple-darwin (push) Waiting to run
Build & Publish / Build C FFI aarch64-pc-windows-msvc (push) Waiting to run
Build & Publish / Build C FFI x86_64-apple-darwin (push) Waiting to run
Build & Publish / Build C FFI x86_64-pc-windows-msvc (push) Waiting to run
Build & Publish / Build MCP aarch64-apple-darwin (push) Waiting to run
Build & Publish / Build MCP aarch64-pc-windows-msvc (push) Waiting to run
Build & Publish / Build MCP x86_64-apple-darwin (push) Waiting to run
Build & Publish / Build MCP x86_64-pc-windows-msvc (push) Waiting to run
Build & Publish / Build Python wheels aarch64 (macos-latest) (push) Waiting to run
Build & Publish / Build Python wheels x86_64 (macos-latest) (push) Waiting to run
Build & Publish / Build Python wheels x86_64 (windows-latest) (push) Waiting to run
Build & Publish / Release (push) Blocked by required conditions
Build & Publish / Publish Python wheels to PyPI (push) Blocked by required conditions
Build & Publish / Publish Rust crates (push) Blocked by required conditions
Build & Publish / Publish npm packages (push) Blocked by required conditions
Rust CI / Fuzz Tests (windows-latest) (push) Waiting to run
Rust CI / Test (macos-latest) (push) Waiting to run
Rust CI / Test (windows-latest) (push) Waiting to run
Rust CI / Fuzz Tests (macos-latest) (push) Waiting to run
Python CI / Python bindings (ubuntu-latest) (push) Failing after 0s
Build & Publish / Build Neovim aarch64-linux-android (push) Failing after 0s
Build & Publish / Build Neovim aarch64-unknown-linux-gnu (push) Failing after 0s
Build & Publish / Build MCP x86_64-unknown-linux-musl (push) Failing after 1s
Build & Publish / Build Python wheels aarch64 (ubuntu-latest) (push) Failing after 0s
Build & Publish / Build Python wheels x86_64 (ubuntu-latest) (push) Failing after 1s
Build & Publish / Build Python sdist (push) Failing after 1s
Rust CI / Fuzz Tests (ubuntu-latest) (push) Failing after 1s
Rust CI / Build i686-unknown-linux-gnu (push) Failing after 0s
Rust CI / cargo clippy (push) Failing after 1s
e2e Tests / e2e (ubuntu-latest) (push) Failing after 1s
Lua CI / luacheck lint (push) Failing after 1s
Build & Publish / Build Neovim aarch64-unknown-linux-musl (push) Failing after 1s
Build & Publish / Build Neovim x86_64-unknown-linux-gnu (push) Failing after 0s
Build & Publish / Build Neovim x86_64-unknown-linux-musl (push) Failing after 1s
Build & Publish / Build C FFI aarch64-linux-android (push) Failing after 0s
Build & Publish / Build C FFI aarch64-unknown-linux-gnu (push) Failing after 0s
Build & Publish / Build C FFI aarch64-unknown-linux-musl (push) Failing after 1s
Build & Publish / Build C FFI x86_64-unknown-linux-gnu (push) Failing after 0s
Build & Publish / Build C FFI x86_64-unknown-linux-musl (push) Failing after 1s
Build & Publish / Build MCP aarch64-unknown-linux-gnu (push) Failing after 1s
Build & Publish / Build MCP aarch64-unknown-linux-musl (push) Failing after 0s
Build & Publish / Build MCP x86_64-unknown-linux-gnu (push) Failing after 1s
Spelling / Spell Check with Typos (push) Failing after 0s
Rust CI / Test (ubuntu-latest) (push) Failing after 0s
Rust CI / cargo fmt (push) Failing after 0s
Stylua / Check lua files using Stylua (push) Failing after 1s
Lua CI / lua-language-server type check (push) Failing after 12m29s
e2e Tests / e2e (alpine-musl) (push) Successful in 57m31s
62 lines
1.7 KiB
Lua
62 lines
1.7 KiB
Lua
local M = {}
|
|
|
|
local uv = vim and vim.uv or require('luv')
|
|
|
|
-- Get the system triple (target triple for the current platform)
|
|
function M.get_triple()
|
|
local os_name = uv.os_uname().sysname:lower()
|
|
local arch = uv.os_uname().machine:lower()
|
|
|
|
-- Normalize OS name
|
|
if os_name == 'darwin' then
|
|
os_name = 'apple-darwin'
|
|
elseif os_name == 'linux' then
|
|
-- Detect Android/Termux before checking musl/glibc.
|
|
-- Termux uses Bionic libc (not glibc or musl) and has no ldd.
|
|
if os.getenv('TERMUX_VERSION') or os.getenv('ANDROID_ROOT') then
|
|
os_name = 'linux-android'
|
|
else
|
|
-- Detect if we're on musl or glibc
|
|
local handle = io.popen('ldd --version 2>&1')
|
|
if handle then
|
|
local output = handle:read('*a')
|
|
handle:close()
|
|
if output and output:match('musl') then
|
|
os_name = 'unknown-linux-musl'
|
|
else
|
|
os_name = 'unknown-linux-gnu'
|
|
end
|
|
else
|
|
os_name = 'unknown-linux-gnu'
|
|
end
|
|
end
|
|
elseif os_name:match('windows') or os_name:match('mingw') or os_name:match('msys') then
|
|
os_name = 'pc-windows-msvc'
|
|
end
|
|
|
|
-- Normalize architecture
|
|
if arch == 'x86_64' or arch == 'amd64' then
|
|
arch = 'x86_64'
|
|
elseif arch == 'aarch64' or arch == 'arm64' then
|
|
arch = 'aarch64'
|
|
elseif arch:match('^arm') then
|
|
arch = 'arm'
|
|
end
|
|
|
|
return arch .. '-' .. os_name
|
|
end
|
|
|
|
-- Get the library extension for the current platform
|
|
function M.get_lib_extension()
|
|
local os_name = uv.os_uname().sysname:lower()
|
|
if os_name == 'darwin' then
|
|
return 'dylib'
|
|
elseif os_name:match('windows') or os_name:match('mingw') or os_name:match('msys') then
|
|
return 'dll'
|
|
else
|
|
return 'so'
|
|
end
|
|
end
|
|
|
|
return M
|