mirror of
https://gitlab.freedesktop.org/dabrain34/GstPipelineStudio.git
synced 2024-12-24 00:40:29 +00:00
79 lines
No EOL
3 KiB
PowerShell
79 lines
No EOL
3 KiB
PowerShell
# Check wix installation
|
|
$wixInstalledFolder = "C:\Program Files (x86)\WiX Toolset v3.11\bin"
|
|
if(Test-Path $wixInstalledFolder)
|
|
{
|
|
$wixFolder = $wixInstalledFolder
|
|
}
|
|
else
|
|
{
|
|
$prepareWix = Join-Path $PSScriptRoot -ChildPath prepare_wix.ps1
|
|
& "$prepareWix"
|
|
$wixFolder = Join-Path $PSScriptRoot -ChildPath 'wix/'
|
|
}
|
|
$candleToolPath = Join-Path $wixFolder -ChildPath candle.exe
|
|
$lightToolPath = Join-Path $wixFolder -ChildPath light.exe
|
|
$heatToolPath = Join-Path $wixFolder -ChildPath heat.exe
|
|
|
|
$GPSUpgradeCode = "9B87C8FF-599C-4F20-914E-AF5E68CB3DC0"
|
|
|
|
$GPSVersion = Get-Content $PSScriptRoot\..\..\VERSION -Raw
|
|
Write-Output $GPSVersion
|
|
try
|
|
{
|
|
Push-Location $PSScriptRoot
|
|
|
|
if(-not (Test-Path $wixFolder))
|
|
{
|
|
throw "Folder $wixFolder does not exist. Start DownloadAndExtractWix.ps1 script to create it."
|
|
}
|
|
if((-not (Test-Path $candleToolPath)) -or (-not (Test-Path $lightToolPath)))
|
|
{
|
|
throw "Tools required to build installer (candle.exe and light.exe) do not exist in wix folder."
|
|
}
|
|
# GST and GTK are installed in this folder by prepare_gstreamer.ps1.
|
|
# GST and GTK are built by the docker image.
|
|
$gstreamerInstallDir="c:\gst-install-clean"
|
|
$gstreamerBinInstallDir= Join-Path $gstreamerInstallDir -ChildPath "bin"
|
|
$gstreamerPluginInstallDir= Join-Path $gstreamerInstallDir -ChildPath "lib"
|
|
$gstreamerShareInstallDir= Join-Path $gstreamerInstallDir -ChildPath "share"
|
|
|
|
& "$heatToolPath" dir "$gstreamerBinInstallDir" -gg -sfrag -template:fragment -out gstreamer-1.0.wxs -cg "_gstreamer" -var var.gstreamerBinInstallDir -dr INSTALLFOLDER
|
|
& "$heatToolPath" dir "$gstreamerPluginInstallDir" -gg -sfrag -template:fragment -out gstreamer-plugins-1.0.wxs -cg "_gstreamer_plugins" -var var.gstreamerPluginInstallDir -dr INSTALLFOLDER
|
|
& "$heatToolPath" dir "$gstreamerShareInstallDir" -v -ke -gg -sfrag -template:fragment -out gstreamer-share-1.0.wxs -cg "_gstreamer_share" -var var.gstreamerShareInstallDir -dr INSTALLFOLDER
|
|
|
|
$files = "gps gstreamer-1.0 gstreamer-plugins-1.0 gstreamer-share-1.0"
|
|
$wxs_files = @()
|
|
$obj_files = @()
|
|
foreach ($f in $files.split(" ")){
|
|
$wxs_files += "$f.wxs"
|
|
$obj_files += "$f.wixobj"
|
|
}
|
|
Write-Output $wxs_files
|
|
Write-Output $obj_files
|
|
# compiling wxs file into wixobj
|
|
$msiFileName = "GstPipelineStudio-$GPSVersion.msi"
|
|
foreach ($f in $wxs_files){
|
|
& "$candleToolPath" "$f" -dPlatform=x64 -dGPSUpgradeCode="$GPSUpgradeCode" -dGPSVersion="$GPSVersion" -dgstreamerBinInstallDir="$gstreamerBinInstallDir" -dgstreamerPluginInstallDir="$gstreamerPluginInstallDir" -dgstreamerShareInstallDir="$gstreamerShareInstallDir"
|
|
if($LASTEXITCODE -ne 0)
|
|
{
|
|
throw "Compilation of $wxsFileName failed with exit code $LASTEXITCODE"
|
|
}
|
|
}
|
|
|
|
$AllArgs = $obj_files + @('-out', $msiFileName)
|
|
|
|
& $lightToolPath $AllArgs -ext WixUIExtension
|
|
if($LASTEXITCODE -ne 0)
|
|
{
|
|
throw "Linking of $wixobjFileName failed with exit code $LASTEXITCODE"
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
Write-Error $_
|
|
exit 1
|
|
}
|
|
finally
|
|
{
|
|
Pop-Location
|
|
} |