From 0e58a15f2886af71ebe79ed9b7ec511cf3166b19 Mon Sep 17 00:00:00 2001 From: gusadmin Date: Tue, 14 Jul 2026 14:58:12 +0300 Subject: [PATCH] =?UTF-8?q?LLVM=2015=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE=20(VS=20=D0=B1=D0=B5=D0=B7=20libclang),=20ro?= =?UTF-8?q?bust=20LIBCLANG=5FPATH,=20bash-=D0=BF=D1=83=D1=82=D1=8C=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=B2=D0=B0=D1=80=D0=B4-=D1=81=D0=BB=D1=8D?= =?UTF-8?q?=D1=88=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- docs/CODEMAP.md | 5 +++-- scripts/build-windows.ps1 | 10 +++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/CODEMAP.md b/docs/CODEMAP.md index 2a6f96e..b6bba31 100644 --- a/docs/CODEMAP.md +++ b/docs/CODEMAP.md @@ -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). ## Тулчейн (фактические пути на GUSIK-PC) -Flutter: `S:\dev\flutter` · vcpkg: `S:\dev\vcpkg` (VCPKG_ROOT) · libclang: из VS BuildTools -`...\VC\Tools\Llvm\x64\bin` · Rust 1.75 (rustup override в клоне) · MSVC 14.44 из vcvars64. +Flutter: `S:\dev\flutter` · vcpkg: `S:\dev\vcpkg` (VCPKG_ROOT) · **LLVM 15.0.6: `S:\dev\LLVM`** +(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) `RUSTDESK_SERVER`, `RUSTDESK_PUB_KEY`, (опц.) `RUSTDESK_API_SERVER`. Префикс имён — не `GITHUB_`/`GITEA_` diff --git a/scripts/build-windows.ps1 b/scripts/build-windows.ps1 index a94d7af..f559fe4 100644 --- a/scripts/build-windows.ps1 +++ b/scripts/build-windows.ps1 @@ -53,7 +53,9 @@ foreach ($p in 'HTTP_PROXY','HTTPS_PROXY','NO_PROXY','ALL_PROXY','http_proxy','h # --- env тулчейна на сессию --- $env:VCPKG_ROOT = $VcpkgRoot $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" # --- 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 '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 '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." } # --- клон/сброс до пина --- @@ -84,7 +86,9 @@ Push-Location $src; rustup override set $pins['RUST_VERSION'] | Out-Null; Pop-Lo # --- preconfigure: вшить сервер+ключ --- 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 ($SkipBuild) { Write-Host "SkipBuild — стоп после preconfigure." -ForegroundColor Yellow; return }