-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.ps1
More file actions
55 lines (47 loc) · 1.64 KB
/
Copy pathbuild.ps1
File metadata and controls
55 lines (47 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<#
Copyright 2026 Nils Kopal
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
#>
param(
[string]$Compiler = "",
[switch]$SkipTests
)
$ErrorActionPreference = "Stop"
$root = $PSScriptRoot
if ([string]::IsNullOrWhiteSpace($Compiler)) {
$Compiler = Join-Path $root "..\MiniLangCompilerML\build\mlc_win64.exe"
}
$Compiler = [System.IO.Path]::GetFullPath($Compiler)
if (-not (Test-Path -LiteralPath $Compiler -PathType Leaf)) {
throw "MiniLang compiler not found: $Compiler"
}
$outputDirectory = Join-Path $root "build"
New-Item -ItemType Directory -Force -Path $outputDirectory | Out-Null
$compilerSources = [System.IO.Path]::GetFullPath((Join-Path $root "..\MiniLangCompilerML"))
$sourceRoot = Join-Path $root "src"
& $Compiler `
(Join-Path $sourceRoot "main.ml") `
(Join-Path $outputDirectory "minidoc.exe") `
-I $sourceRoot `
-I $compilerSources
if ($LASTEXITCODE -ne 0) {
throw "MiniDoc compilation failed with exit code $LASTEXITCODE"
}
if (-not $SkipTests) {
& $Compiler `
(Join-Path $root "tests\runtests.ml") `
(Join-Path $outputDirectory "minidoc_tests.exe") `
-I $sourceRoot `
-I $compilerSources
if ($LASTEXITCODE -ne 0) {
throw "MiniDoc test compilation failed with exit code $LASTEXITCODE"
}
& (Join-Path $outputDirectory "minidoc_tests.exe") $root
if ($LASTEXITCODE -ne 0) {
throw "MiniDoc tests failed with exit code $LASTEXITCODE"
}
}
Write-Host "MiniDoc build completed: $outputDirectory"