blob: 16f4d79ea7501b5f85b7e1fbb109157abc062e67 (
plain)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
function Restore-NativeCommandStream
{ <#
.SYNOPSIS
This CmdLet gathers multiple ErrorRecord objects and reconstructs outputs
as a single line.
.DESCRIPTION
This CmdLet collects multiple ErrorRecord objects and emits one String
object per line.
.PARAMETER InputObject
A object stream is required as an input.
.PARAMETER Indent
Indentation string.
#>
[CmdletBinding()]
param(
[Parameter(ValueFromPipeline=$true)]
$InputObject
)
begin
{ $LineRemainer = "" }
process
{ if ($InputObject -is [System.Management.Automation.ErrorRecord])
{ if ($InputObject.FullyQualifiedErrorId -eq "NativeCommandError")
{ Write-Output $InputObject.ToString() }
elseif ($InputObject.FullyQualifiedErrorId -eq "NativeCommandErrorMessage")
{ $NewLine = $LineRemainer + $InputObject.ToString()
while (($NewLinePos = $NewLine.IndexOf("`n")) -ne -1)
{ Write-Output $NewLine.Substring(0, $NewLinePos)
$NewLine = $NewLine.Substring($NewLinePos + 1)
}
$LineRemainer = $NewLine
}
}
elseif ($InputObject -is [String])
{ Write-Output $InputObject }
else
{ Write-Host "Unsupported object in pipeline stream" }
}
end
{ if ($LineRemainer -ne "")
{ Write-Output $LineRemainer }
}
}
#### Environment
$BUILD_DIRNAME = "$($env:BUILD_MINGW)-$($env:BUILD_BACKEND)"
$GHDL_BUILD_DIR = "$($env:APPVEYOR_BUILD_FOLDER)\build\$BUILD_DIRNAME"
if ($env:APPVEYOR_REPO_TAG -eq "true")
{
# There is a tag. Remove the leading v.
$BUILD_VERSION = $($env:APPVEYOR_REPO_TAG_NAME) -creplace "^v", ""
}
else
{
$BUILD_VERSION = $($env:APPVEYOR_BUILD_VERSION)
}
$PREFIX_DIRNAME = "$BUILD_VERSION-$BUILD_DIRNAME"
$GHDL_PREFIX_DIR = "c:/Tools/GHDL/$PREFIX_DIRNAME"
$ZipFile = "ghdl-$PREFIX_DIRNAME.zip"
$env:GHDL_BUILD_DIR = $GHDL_BUILD_DIR
$env:GHDL_PREFIX_DIR = $GHDL_PREFIX_DIR
#### Build
mkdir $GHDL_BUILD_DIR | cd
if ($env:BUILD_BACKEND -eq "mcode")
{ Write-Host "Configuring GHDL for $($env:BUILD_MINGW), mcode..." -ForegroundColor Yellow
c:\msys64\usr\bin\bash.exe -c "../../configure --prefix=$GHDL_PREFIX_DIR LDFLAGS=-static" 2>&1 | Restore-NativeCommandStream | %{ "$_" }
}
elseif ($env:BUILD_BACKEND -eq "llvm")
{ Write-Host "Configuring GHDL for $($env:BUILD_MINGW), LLVM..." -ForegroundColor Yellow
c:\msys64\usr\bin\bash.exe -c "../../configure --prefix=$GHDL_PREFIX_DIR --with-llvm-config='llvm-config --link-static' LDFLAGS='-static' --enable-libghdl --enable-synth CXX=clang++" 2>&1 | Restore-NativeCommandStream | %{ "$_" }
}
Write-Host "Building GHDL and libraries..." -ForegroundColor Yellow
c:\msys64\usr\bin\make.exe 2>&1 | Restore-NativeCommandStream | %{ "$_" }
$Err = $LastExitCode
if ($Err -eq 0)
{
Write-Host "Installing GHDL and libraries..." -ForegroundColor Yellow
c:\msys64\usr\bin\make.exe install 2>&1 | Restore-NativeCommandStream | %{ "$_" }
$Err = $LastExitCode
}
#### Binaries
if ($Err -eq 0)
{
Write-Host "Building binary archives..." -ForegroundColor Yellow
cd c:\Tools
7z a "$($env:APPVEYOR_BUILD_FOLDER)\$ZipFile" -r "GHDL\$PREFIX_DIRNAME\"
cd $env:APPVEYOR_BUILD_FOLDER
Push-AppveyorArtifact $ZipFile
}
cd $env:APPVEYOR_BUILD_FOLDER
exit $Err
|