Files
openGauss-connector-odbc/installer/psqlodbc-setup/buildBootstrapper.ps1
2020-06-24 16:11:37 +08:00

98 lines
4.2 KiB
PowerShell

<#
.SYNOPSIS
Build a bootstrapper application of psqlodbc drivers.
.DESCRIPTION
Build psqlodbc-setup.exe
.PARAMETER version
Specify when you'd like to specify the version explicitly.
.PARAMETER UI
Specify when you'd like to show UIs of each MSIs.
.PARAMETER withRedist
Specify when you have to include vcredist.
.PARAMETER BuildConfigPath
Specify the configuration xml file name if you want to use
the configuration file other than standard one.
The relative path is relative to the current directory.
.EXAMPLE
> .\buildBootstrapper
Build the bootstrapper.
.EXAMPLE
> .\buildBootstrapper -w(ithRedist)
Build the bootstrapper with vcredist.
.NOTES
Author: Hiroshi Inoue
Date: October 8, 2014
#>
# build bootstrapper of psqlodbc drivers
#
Param(
[string]$version,
[switch]$UI,
[switch]$withRedist,
[string]$BuildConfigPath
)
write-host "Building bootstrapper program`n"
$scriptPath = (Split-Path $MyInvocation.MyCommand.Path)
if ("$version" -eq "") {
# $configInfo = & "$scriptPath\..\..\winbuild\configuration.ps1" "$BuildConfigPath"
$scriptPath = (Split-Path $MyInvocation.MyCommand.Path)
$modulePath="${scriptPath}\..\..\winbuild"
Import-Module ${modulePath}\Psqlodbc-config.psm1
$defaultConfigDir=$modulePath
$configInfo = LoadConfiguration $BuildConfigPath $defaultConfigDir
$version = GetPackageVersion $configInfo "$scriptPath/../.."
Remove-Module Psqlodbc-config
}
if ("$env:WIX" -eq "") {
throw "Please install WIX"
}
$wix_dir="${env:WIX}bin"
$pgmname="psqlodbc-setup"
$build_config="Release"
$objdir="obj\${build_config}"
$bindir="bin\${build_config}"
$modules=@("Bundle.wxs")
$wRedist="no"
$objs=@("${objdir}\Bundle.wixobj")
if ($withRedist) {
$modules += "vcredist.wxs"
$objs += "${objdir}\vcredist.wixobj"
$wRedist = "yes"
write-host "with Redistributable"
}
$wUI = "no"
if ($UI) {
$wUI = "yes"
}
try {
pushd "$scriptPath"
& ${wix_dir}\candle.exe -v "-dVERSION=$version" "-dwithRedist=$wRedist" "-dwithUI=$wUI" "-dConfiguration=${build_config}" "-dOutDir=${bindir}\" -dPlatform=x86 "-dProjectDir=.\" "-dProjectExt=.wixproj" "-dProjectFileName=${pgmname}.wixproj" "-dProjectName=${pgmname}" "-dProjectPath=${pgmname}.wixproj" "-dTargetDir=${bindir}\" "-dTargetExt=.exe" "-dTargetFileName=${pgmname}.exe" "-dTargetName=${pgmname}" "-dTargetPath=${bindir}\${pgmname}.exe" -out "${objdir}\" -arch x86 -ext ${wix_dir}\WixUtilExtension.dll -ext ${wix_dir}\WixBalExtension.dll $modules
# $candle_cmd = "& `"${wix_dir}\candle.exe`" -v `"-dVERSION=$version`" -dwithRedist=$wRedist -dwithUI=$wUI -dConfiguration=${build_config} `"-dOutDir=${bindir}\`" -dPlatform=x86 `"-dProjectDir=.\`" `"-dProjectExt=.wixproj`" `"-dProjectFileName=${pgmname}.wixproj`" -dProjectName=${pgmname} `"-dProjectPath=${pgmname}.wixproj`" -dTargetDir=${bindir}\ `"-dTargetExt=.exe`" `"-dTargetFileName=${pgmname}.exe`" -dTargetName=${pgmname} `"-dTargetPath=${bindir}\${pgmname}.exe`" -out `"${objdir}\`" -arch x86 -ext `"${wix_dir}\WixUtilExtension.dll`" -ext `"${wix_dir}\WixBalExtension.dll`" $modules"
#write-debug "candle_cmd = ${candle_cmd}"
# compile
#invoke-expression $candle_cmd
if ($LASTEXITCODE -ne 0) {
throw "Failed to compile $modules"
}
# link
# invoke-expression "& `"${wix_dir}\Light.exe`" -out ${bindir}\${pgmname}.exe -pdbout ${bindir}\${pgmname}.wixpdb -ext `"${wix_dir}\\WixUtilExtension.dll`" -ext `"${wix_dir}\\WixBalExtension.dll`" -contentsfile ${objdir}\${pgmname}.wixproj.BindContentsFileList.txt -outputsfile ${objdir}\${pgmname}.wixproj.BindOutputsFileList.txt -builtoutputsfile ${objdir}\${pgmname}.wixproj.BindBuiltOutputsFileList.txt -wixprojectfile ${pgmname}.wixproj ${objs}"
& ${wix_dir}\Light.exe -out ${bindir}\${pgmname}.exe -pdbout ${bindir}\${pgmname}.wixpdb -ext ${wix_dir}\\WixUtilExtension.dll -ext ${wix_dir}\\WixBalExtension.dll -contentsfile ${objdir}\${pgmname}.wixproj.BindContentsFileList.txt -outputsfile ${objdir}\${pgmname}.wixproj.BindOutputsFileList.txt -builtoutputsfile ${objdir}\${pgmname}.wixproj.BindBuiltOutputsFileList.txt -wixprojectfile "${pgmname}.wixproj" ${objs}
if ($LASTEXITCODE -ne 0) {
throw "Failed to link bootstrapper"
}
}
catch [Exception] {
Write-Host ".`Aborting build!"
throw $error[0]
}
finally {
popd
}