36 lines
923 B
PowerShell
36 lines
923 B
PowerShell
param(
|
|
[ValidateSet("debug", "release", "size")]
|
|
[string]$mode = "size",
|
|
|
|
[ValidateSet("native", "c", "js_node", "go")]
|
|
[string]$target = "c",
|
|
|
|
[ValidateSet("build", "run")]
|
|
[string]$action = "build"
|
|
)
|
|
|
|
if (-not (Test-Path "build")) {
|
|
New-Item -ItemType Directory -Path "build" | Out-Null
|
|
}
|
|
|
|
if ($mode -eq "debug") {
|
|
v -g -cg -b $target -enable-globals -o build/nude_bug .
|
|
}
|
|
elseif ($mode -eq "release") {
|
|
v -prod -cflags "-O3" -Wfatal-errors -enable-globals -q -skip-unused -b $target -o build/nude_release .
|
|
}
|
|
elseif ($mode -eq "size") {
|
|
v -prod -cflags "-Os -s" -Wfatal-errors -enable-globals -q -skip-unused -b $target -o build/nude_optimized .
|
|
}
|
|
|
|
$exe = switch ($mode) {
|
|
"debug" { "nude_bug.exe" }
|
|
"release" { "nude_release.exe" }
|
|
"size" { "nude_optimized.exe" }
|
|
}
|
|
|
|
$v_output = Join-Path -Path "build" -ChildPath $exe
|
|
|
|
if ($action -eq "run") {
|
|
& $v_output
|
|
} |