LLVM 15 отдельно (VS без libclang), robust LIBCLANG_PATH, bash-путь форвард-слэшами

VS BuildTools содержит только clang-format/tidy без libclang.dll ->
ставим LLVM 15.0.6 в S:\dev\LLVM; LIBCLANG_PATH выбирается из кандидатов.
preconfigure получает POSIX-путь (git-bash не любит backslash).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 14:58:12 +03:00
parent df40e79c0c
commit 0e58a15f28
2 changed files with 10 additions and 5 deletions
+3 -2
View File
@@ -57,8 +57,9 @@ Flutter 3.24.5, NDK r28c, cargo-ndk 3.1.2, Rust android-таргеты, vcpkg an
vcpkg.exe тоже качали вручную через IWR (bootstrap не смог) — лежит в `S:\dev\vcpkg\vcpkg.exe` (tool 2025-07-21). vcpkg.exe тоже качали вручную через IWR (bootstrap не смог) — лежит в `S:\dev\vcpkg\vcpkg.exe` (tool 2025-07-21).
## Тулчейн (фактические пути на GUSIK-PC) ## Тулчейн (фактические пути на GUSIK-PC)
Flutter: `S:\dev\flutter` · vcpkg: `S:\dev\vcpkg` (VCPKG_ROOT) · libclang: из VS BuildTools Flutter: `S:\dev\flutter` · vcpkg: `S:\dev\vcpkg` (VCPKG_ROOT) · **LLVM 15.0.6: `S:\dev\LLVM`**
`...\VC\Tools\Llvm\x64\bin` · Rust 1.75 (rustup override в клоне) · MSVC 14.44 из vcvars64. (VS-бандл содержит только clang-format/tidy, БЕЗ libclang.dll — ставили LLVM отдельно, LIBCLANG_PATH=`S:\dev\LLVM\bin`) ·
Rust 1.75 (rustup override в клоне) · MSVC 14.44 из vcvars64.
## Секреты в CI (gitea Actions) ## Секреты в CI (gitea Actions)
`RUSTDESK_SERVER`, `RUSTDESK_PUB_KEY`, (опц.) `RUSTDESK_API_SERVER`. Префикс имён — не `GITHUB_`/`GITEA_` `RUSTDESK_SERVER`, `RUSTDESK_PUB_KEY`, (опц.) `RUSTDESK_API_SERVER`. Префикс имён — не `GITHUB_`/`GITEA_`
+7 -3
View File
@@ -53,7 +53,9 @@ foreach ($p in 'HTTP_PROXY','HTTPS_PROXY','NO_PROXY','ALL_PROXY','http_proxy','h
# --- env тулчейна на сессию --- # --- env тулчейна на сессию ---
$env:VCPKG_ROOT = $VcpkgRoot $env:VCPKG_ROOT = $VcpkgRoot
$env:VCPKGRS_TRIPLET = $TRIPLET # для vcpkg-rs крейтов (статик-триплет) $env:VCPKGRS_TRIPLET = $TRIPLET # для vcpkg-rs крейтов (статик-триплет)
$env:LIBCLANG_PATH = Join-Path $vsPath 'VC\Tools\Llvm\x64\bin' # bindgen (libclang из VS) # libclang для bindgen: VS-бандл его НЕ содержит -> ставим LLVM отдельно (S:\dev\LLVM).
$clangCands = @('S:\dev\LLVM\bin','C:\Program Files\LLVM\bin', (Join-Path $vsPath 'VC\Tools\Llvm\x64\bin'))
$env:LIBCLANG_PATH = ($clangCands | Where-Object { Test-Path (Join-Path $_ 'libclang.dll') } | Select-Object -First 1)
$env:PATH = "$FlutterHome\bin;$VcpkgRoot;$env:PATH" $env:PATH = "$FlutterHome\bin;$VcpkgRoot;$env:PATH"
# --- preflight --- # --- preflight ---
@@ -67,7 +69,7 @@ $all = (Check "rust $($pins['RUST_VERSION'])" ([bool]((rustup toolchain list) -m
$all = (Check 'flutter' (Test-Path "$FlutterHome\bin\flutter.bat") "Flutter в $FlutterHome") -and $all $all = (Check 'flutter' (Test-Path "$FlutterHome\bin\flutter.bat") "Flutter в $FlutterHome") -and $all
$all = (Check 'vcpkg' (Test-Path "$VcpkgRoot\vcpkg.exe") "vcpkg в $VcpkgRoot") -and $all $all = (Check 'vcpkg' (Test-Path "$VcpkgRoot\vcpkg.exe") "vcpkg в $VcpkgRoot") -and $all
$all = (Check 'cl.exe' ([bool](Get-Command cl.exe -EA SilentlyContinue)) 'MSVC из vcvars') -and $all $all = (Check 'cl.exe' ([bool](Get-Command cl.exe -EA SilentlyContinue)) 'MSVC из vcvars') -and $all
$all = (Check 'libclang' (Test-Path (Join-Path $env:LIBCLANG_PATH 'libclang.dll')) "нет libclang.dll в $($env:LIBCLANG_PATH)") -and $all $all = (Check 'libclang' ([bool]$env:LIBCLANG_PATH -and (Test-Path (Join-Path $env:LIBCLANG_PATH 'libclang.dll'))) 'нет libclang.dll — установи LLVM 15 в S:\dev\LLVM') -and $all
if (-not $all) { throw "Тулчейн неполный — см. docs\CODEMAP.md." } if (-not $all) { throw "Тулчейн неполный — см. docs\CODEMAP.md." }
# --- клон/сброс до пина --- # --- клон/сброс до пина ---
@@ -84,7 +86,9 @@ Push-Location $src; rustup override set $pins['RUST_VERSION'] | Out-Null; Pop-Lo
# --- preconfigure: вшить сервер+ключ --- # --- preconfigure: вшить сервер+ключ ---
Write-Host "Preconfigure (сервер+ключ)..." -ForegroundColor Cyan Write-Host "Preconfigure (сервер+ключ)..." -ForegroundColor Cyan
& $BashExe "$root/scripts/preconfigure.sh" "$src" $srcBash = $src -replace '\\','/' # git-bash не любит backslash в [ -f ... ]
$preBash = ("$root/scripts/preconfigure.sh") -replace '\\','/'
& $BashExe $preBash $srcBash
if ($LASTEXITCODE) { throw "preconfigure.sh упал ($LASTEXITCODE)" } if ($LASTEXITCODE) { throw "preconfigure.sh упал ($LASTEXITCODE)" }
if ($SkipBuild) { Write-Host "SkipBuild — стоп после preconfigure." -ForegroundColor Yellow; return } if ($SkipBuild) { Write-Host "SkipBuild — стоп после preconfigure." -ForegroundColor Yellow; return }