forked from xt-sys/exectos
- Use $PSScriptRoot for reliable source directory detection - Use Join-Path for proper path construction - Validate BUILD_TYPE against Debug/Release - Fix CMake argument quoting - Use Write-Error for error messages
44 lines
1.4 KiB
PowerShell
44 lines
1.4 KiB
PowerShell
# PROJECT: ExectOS
|
|
# LICENSE: See the COPYING.md in the top level directory
|
|
# FILE: configure.ps1
|
|
# DESCRIPTION: Project configuration script for preparing the build environment
|
|
# DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
|
|
|
|
# Check XTchain
|
|
if (-not $env:XTCVER) {
|
|
Write-Error "XTChain not detected or corrupted!"
|
|
exit 1
|
|
}
|
|
|
|
# Set target architecture defaulting to amd64
|
|
$ARCH = if ($env:TARGET) { $env:TARGET } else { "amd64" }
|
|
|
|
# Set target build type defaulting to Debug
|
|
$env:BUILD_TYPE = if ($env:BUILD_TYPE -in @("Debug", "Release")) { $env:BUILD_TYPE } else { "Debug" }
|
|
|
|
# Set variables
|
|
$EXECTOS_SOURCE_DIR = $PSScriptRoot
|
|
$EXECTOS_BINARY_DIR = Join-Path $EXECTOS_SOURCE_DIR "build-$ARCH-$($env:BUILD_TYPE.ToLower())"
|
|
|
|
# Create build directory
|
|
if (-not (Test-Path $EXECTOS_BINARY_DIR)) {
|
|
Write-Host "Creating build directory: $EXECTOS_BINARY_DIR"
|
|
New-Item -ItemType Directory -Path $EXECTOS_BINARY_DIR -Force | Out-Null
|
|
}
|
|
|
|
Set-Location $EXECTOS_BINARY_DIR
|
|
|
|
# Delete old cache
|
|
Remove-Item "CMakeCache.txt", "host-tools/CMakeCache.txt" -ErrorAction SilentlyContinue
|
|
|
|
# Configure project using CMake
|
|
& cmake -G Ninja "-DARCH:STRING=$ARCH" "-DBUILD_TYPE:STRING=$($env:BUILD_TYPE)" $EXECTOS_SOURCE_DIR
|
|
|
|
# Check if configuration succeeded
|
|
if ($LASTEXITCODE -ne 0) {
|
|
Write-Error "Configure script failed."
|
|
exit 1
|
|
}
|
|
|
|
$ARCH | Out-File -Encoding ASCII -NoNewline "build.arch"
|
|
Write-Host "Configure completed. Run 'xbuild' to build ExectOS." |