Files
Barış Keser 2a1eecf1e0 Derleme betiklerini onar ve bağımlılıkları ayır
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).
2026-08-03 10:12:54 +03:00

33 lines
1.4 KiB
PowerShell
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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."