chore(build): support build lua-tiktoken on Windows (#128)

Signed-off-by: Hanchin Hsieh <me@yuchanns.xyz>
This commit is contained in:
Hanchin Hsieh 2024-08-21 21:59:13 +08:00 committed by GitHub
parent 2e48d387a9
commit 83d067695e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 46 additions and 1 deletions

32
Build-LuaTiktoken.ps1 Normal file
View File

@ -0,0 +1,32 @@
param (
[string]$Version = "luajit"
)
$BuildDir = "build"
$BuildFromSource = $true
function Build-FromSource($feature) {
if (-not (Test-Path $BuildDir)) {
New-Item -ItemType Directory -Path $BuildDir | Out-Null
}
$tempDir = Join-Path $BuildDir "lua-tiktoken-temp"
git clone https://github.com/gptlang/lua-tiktoken.git $tempDir
Push-Location $tempDir
cargo build --features=$feature
Pop-Location
$targetFile = "tiktoken_core.dll"
Copy-Item (Join-Path $tempDir "target\debug\tiktoken_core.dll") (Join-Path $BuildDir $targetFile)
Remove-Item -Recurse -Force $tempDir
}
function Main {
Write-Host "Building for $Version..."
Build-FromSource $Version
}
# Run the main function
Main

View File

@ -51,6 +51,17 @@ Install `avante.nvim` using [lazy.nvim](https://github.com/folke/lazy.nvim):
}
```
For Windows users, change the build command to the following:
```lua
{
"yetone/avante.nvim",
event = "VeryLazy",
build = "powershell -ExecutionPolicy Bypass -File Build-LuaTiktoken.ps1",
-- rest of the config
}
```
> [!IMPORTANT]
>
> `avante.nvim` is currently only compatible with Neovim 0.10.0 or later. Please ensure that your Neovim version meets these requirements before proceeding.

View File

@ -7,6 +7,8 @@ H.get_os_name = function()
return "linux"
elseif os_name == "Darwin" then
return "macOS"
elseif os_name == "Windows_NT" then
return "windows"
else
error("Unsupported operating system: " .. os_name)
end
@ -14,7 +16,7 @@ end
H.library_path = function()
local os_name = H.get_os_name()
local ext = os_name == "linux" and "so" or "dylib"
local ext = os_name == "linux" and "so" or (os_name == "macOS" and "dylib" or "dll")
local dirname = string.sub(debug.getinfo(1).source, 2, #"/tiktoken_lib.lua" * -1)
return dirname .. ("../build/?.%s"):format(ext)
end