mirror of
https://github.com/Ed94/WATL_Exercise.git
synced 2025-08-04 22:32:43 -07:00
49 lines
1.5 KiB
PowerShell
49 lines
1.5 KiB
PowerShell
$path_root = split-path -Path $PSScriptRoot -Parent
|
|
$path_build = join-path $path_root 'build'
|
|
$path_code = join-path $path_root 'code'
|
|
|
|
$path_source = join-path $PSScriptRoot 'build.odin.odin'
|
|
$exe = join-path $path_build 'build_win32.exe'
|
|
|
|
if ((test-path $path_build) -eq $false) {
|
|
new-item -itemtype directory -path $path_build
|
|
}
|
|
|
|
$odin = 'odin.exe'
|
|
|
|
$command_build = 'build'
|
|
|
|
$flag_debug = '-debug'
|
|
$flag_file = '-file'
|
|
$flag_dyn_map_calls = '-dynamic-map-calls'
|
|
$flag_no_bounds_check = '-no-bounds-check'
|
|
$flag_no_threaded_checker = '-no-threaded-checker'
|
|
$flag_no_type_assert = '-no-type-assert'
|
|
$flag_optimize_none = '-o:none'
|
|
$flag_output_path = '-out='
|
|
$flag_default_allocator_nil = '-default-to-nil-allocator'
|
|
|
|
$need_rebuild = $false
|
|
if (-not (test-path $exe)) { $need_rebuild = $true }
|
|
else {
|
|
$source_hash = (get-filehash $path_source -algorithm MD5).Hash
|
|
$exe_hash = (get-filehash $exe -algorithm MD5).Hash
|
|
if ($exe_hash -ne $source_hash) { $need_rebuild = $true }
|
|
}
|
|
push-location $path_root
|
|
$build_args = @()
|
|
$build_args += $command_build
|
|
$build_args += $path_source
|
|
$build_args += $flag_file
|
|
# $build_args += $flag_debug
|
|
$build_args += $flag_optimize_none
|
|
$build_args += $flag_no_bounds_check
|
|
$build_args += $flag_no_threaded_checker
|
|
$build_args += $flag_no_type_assert
|
|
$build_args += $flag_dyn_map_calls
|
|
$build_args += $flag_default_allocator_nil
|
|
$build_args += $flag_output_path + $exe
|
|
if ($need_rebuild) { & $odin $build_args }
|
|
pop-location
|
|
& $exe
|