mirror of
https://github.com/barkeser2002/VMD-Motion-Optimizer.git
synced 2026-09-25 01:10:14 +03:00
build_exe.ps1 hiç çalışmıyordu. PowerShell, native bir çalıştırılabiliri çağırırken STRING değişkenleri kelime kelime ayırmaz; her değişken tek bir argüman olur. PyInstaller "--noconfirm --clean --name VMDOptimizer" ifadesini tek argüman olarak alıp "unrecognized arguments" ile çıkıyordu. Doğrulandı: eski biçim 2 argüman, dizi + @ splat 6 argüman gönderiyor. release.yml zaten doğru biçimi kullanıyordu; betik artık onunla aynı. Ayrıca $PSScriptRoot'a geçiliyor ve $LASTEXITCODE kontrol ediliyor. pyinstaller ve pytest requirements-dev.txt'ye taşındı - bir CLI kullanıcısı requirements.txt için ~30 MB derleme aracı indirmemeli. peek_bytes.py: argüman yoksa IndexError traceback'i yerine kullanım mesajı, ve VMD 1.0 dosyalarında doğru ofsetler (önceden v2 düzenini varsayıp yanlış bone_count yazdırıyordu).
33 lines
1.4 KiB
PowerShell
33 lines
1.4 KiB
PowerShell
# Requires: pyinstaller, PyQt6
|
||
# Kullanım: PowerShell'de bu dosyayla aynı klasörde:
|
||
# powershell -ExecutionPolicy Bypass -File build_exe.ps1
|
||
|
||
$ErrorActionPreference = 'Stop'
|
||
|
||
# Betiğin bulunduğu klasöre geç: göreli yollar cwd'ye bağlı kalmasın
|
||
Set-Location -Path $PSScriptRoot
|
||
|
||
# Sanal ortam oluştur (taşınabilir derleme için önerilir)
|
||
if (-not (Test-Path .venv)) {
|
||
py -3 -m venv .venv
|
||
}
|
||
|
||
$python = Join-Path (Get-Location) '.venv\Scripts\python.exe'
|
||
& $python -m pip install --upgrade pip
|
||
& $python -m pip install -r requirements.txt -r requirements-dev.txt
|
||
|
||
# PowerShell native komutlara STRING değişkenleri kelime kelime AYIRMAZ; her
|
||
# değişken tek bir argüman olur. Bu yüzden seçenekler dizi olmalı ve @ ile
|
||
# splat edilmelidir - aksi halde PyInstaller
|
||
# "--noconfirm --clean --name VMDOptimizer" ifadesini tek bir argüman sanar ve
|
||
# "unrecognized arguments" ile çıkar.
|
||
$opts = @('--noconfirm', '--clean', '--name', 'VMDOptimizer', '--onedir', '--windowed')
|
||
$extra = @('--add-data', 'scripts;scripts', '--add-data', 'version.txt;.')
|
||
if (Test-Path 'logo.png') { $extra += @('--add-data', 'logo.png;.') }
|
||
if (Test-Path 'icon.ico') { $extra += @('--add-data', 'icon.ico;.', '--icon', 'icon.ico') }
|
||
|
||
& $python -m PyInstaller @opts @extra scripts\app.py
|
||
if ($LASTEXITCODE -ne 0) { throw "PyInstaller $LASTEXITCODE koduyla başarısız oldu" }
|
||
|
||
Write-Host "Derleme tamamlandı. dist/VMDOptimizer klasörünü taşıyıp portable çalıştırabilirsiniz."
|