From 78cdfcd7b395e820a86be82546e4acf0fff878c5 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Thu, 30 Mar 2023 19:43:44 -0400 Subject: [PATCH] Made a separate build script for CI. --- .github/workflows/main.yml | 2 +- scripts/build.ci.ps1 | 81 ++++++++++++++++++++++++++++++++++++++ scripts/build.ps1 | 2 +- 3 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 scripts/build.ci.ps1 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8ec9bbf..f75921b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -81,4 +81,4 @@ jobs: if (-not [string]::IsNullOrEmpty($type)) { $args += $type } if (-not [string]::IsNullOrEmpty($test)) { $args += $test } - & .\scripts\build.ps1 debug test + & .\scripts\build.ci.ps1 debug test diff --git a/scripts/build.ci.ps1 b/scripts/build.ci.ps1 new file mode 100644 index 0000000..c223798 --- /dev/null +++ b/scripts/build.ci.ps1 @@ -0,0 +1,81 @@ +[string] $type = $null +[string] $test = $false + +foreach ( $arg in $args ) +{ + if ( $arg -eq "test" ) + { + $test = $true + } + else + { + $type = $arg + } +} + + +#region Regular Build + +write-host "Building project`n" + +$path_root = git rev-parse --show-toplevel +$path_build = Join-Path $path_root build +$path_scripts = Join-Path $path_root scripts + + +if ( -not( Test-Path $path_build ) ) +{ + $args_meson = @() + $args_meson += "setup" + $args_meson += $path_build + + Start-Process meson $args_meson -NoNewWindow -Wait -WorkingDirectory $path_scripts +} + +if ( $type ) +{ + $args_meson = @() + $args_meson += "configure" + $args_meson += $path_build + $args_meson += "--buildtype $($type)" + + Start-Process meson $args_meson -NoNewWindow -Wait -WorkingDirectory $path_scripts +} + +$args_ninja = @() +$args_ninja += "-C" +$args_ninja += $path_build + +Start-Process ninja $args_ninja -Wait -NoNewWindow -WorkingDirectory $path_root +#endregion Regular Build + + +if ( $test -eq $true ) +{ + #region Test Build + write-host "`n`nBuilding Test`n" + + # Refactor thirdparty libraries + & (Join-Path $PSScriptRoot 'refactor_and_format.ps1') + + $path_test = Join-Path $path_root test + $path_test_build = Join-Path $path_test build + + if ( -not( Test-Path $path_test_build ) ) + { + $args_meson = @() + $args_meson += "setup" + $args_meson += $path_test_build + + Start-Process meson $args_meson -NoNewWindow -Wait -WorkingDirectory $path_test + } + + $args_ninja = @() + $args_ninja += "-C" + $args_ninja += $path_test_build + + write-host $args_ninja + + Start-Process ninja $args_ninja -Wait -NoNewWindow -WorkingDirectory $path_root + #endregion Test Build +} diff --git a/scripts/build.ps1 b/scripts/build.ps1 index 9292787..32de188 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -1,4 +1,4 @@ -if ($Host.UI.RawUI -and $Host.UI.RawUI.CursorPosition) +if ( NOT_HEADLESSS ) { cls }