Stop dot-sourcing a script to avoid confusion of scope of variables. Also make it...
authorHiroshi Inoue <inoue@tpf.co.jp>
Thu, 21 Nov 2013 05:19:17 +0000 (14:19 +0900)
committerHiroshi Inoue <inoue@tpf.co.jp>
Fri, 22 Nov 2013 07:03:58 +0000 (16:03 +0900)
buildx64.ps1
buildx86.ps1
installer/buildX64-installer.ps1
installer/buildX86-installer.ps1
winbuild/configuration.ps1
winbuild/editConfiguration.bat
winbuild/editConfiguration.ps1

index 8301a8cab5a98c5fe41d0f7ba8708b99937c2dd6..d2f754003d7cd59bb731228ae2d509bc09fe57d8 100644 (file)
@@ -1,15 +1,14 @@
 #  build 64bit dll
-. ".\winbuild\configuration.ps1"
-$configInfo = GetConfiguration
+Param(
+[string]$target="ALL",
+[string]$configPath
+)
+$configInfo = & ".\winbuild\configuration.ps1" "$configPath"
 $x64info = $configInfo.Configuration.x64
 if ($x64info.setvcvars -ne "") {
    $envcmd = [String] $x64info.setvcvars
    Write-Host "setvcvars :" $envcmd
-   if ($envcmd.StartsWith(". ")) {
-       . $envcmd.substring(2)
-   } else {
-       Invoke-Expression $envcmd
-   }
+   Invoke-Expression $envcmd
 }
 
 $USE_LIBPQ=$x64info.use_libpq
@@ -47,5 +46,5 @@ Write-Host "USE SSPI   : $USE_SSPI"
 Write-Host "SSL DIR    : ($SSL_INC $SSL_LIB)"
 
 $MACROS = "USE_LIBPQ=$USE_LIBPQ USE_SSPI=$USE_SSPI USE_GSS=$USE_GSS PG_LIB=`"$PG_LIB`" PG_INC=`"$PG_INC`" SSL_LIB=`"$SSL_LIB`" SSL_INC=`"$SSL_INC`" GSS_LIB=`"$GSS_LIB`" GSS_INC=`"$GSS_INC`" $BUILD_MACROS"
-invoke-expression "nmake.exe /f win64.mak $MACROS $args"
-invoke-expression "nmake.exe /f win64.mak ANSI_VERSION=yes $MACROS $args"
+invoke-expression "nmake.exe /f win64.mak $MACROS $target"
+invoke-expression "nmake.exe /f win64.mak ANSI_VERSION=yes $MACROS $target"
index 8de2fad1e42cca466586cd90409ea335f73b3b83..51300aeed2e109153af71f7aa455fdf6de2555d7 100755 (executable)
@@ -1,15 +1,14 @@
 #  build 32bit dll
-. ".\winbuild\configuration.ps1"
-$configInfo = GetConfiguration
+Param(
+[string]$target="ALL",
+[string]$configPath
+)
+$configInfo = & ".\winbuild\configuration.ps1" "$configPath"
 $x86info = $configInfo.Configuration.x86
 if ($x86info.setvcvars -ne "") {
    $envcmd = [String] $x86info.setvcvars
    Write-Host "setvcvars :" $envcmd
-   if ($envcmd.StartsWith(". ")) {
-       . $envcmd.substring(2)
-   } else {
-       Invoke-Expression $envcmd
-   }
+   Invoke-Expression $envcmd
 }
 $USE_LIBPQ=$x86info.use_libpq
 $USE_SSPI=$x86info.use_sspi
@@ -41,5 +40,5 @@ Write-Host "USE LIBPQ  : $USE_LIBPQ ($PG_INC $PG_LIB)"
 Write-Host "USE SSPI   : $USE_SSPI"
 Write-Host "SSL       : ($SSL_INC $SSL_LIB)"
 $MACROS = "USE_LIBPQ=$USE_LIBPQ USE_SSPI=$USE_SSPI PG_LIB=`"$PG_LIB`" PG_INC=`"$PG_INC`" SSL_LIB=`"$SSL_LIB`" SSL_INC=`"$SSL_INC`" $BUILD_MACROS"
-invoke-expression "nmake.exe /f win32.mak $MACROS $args"
-invoke-expression "nmake.exe /f win32.mak ANSI_VERSION=yes $MACROS $args"
+invoke-expression "nmake.exe /f win32.mak $MACROS $target"
+invoke-expression "nmake.exe /f win32.mak ANSI_VERSION=yes $MACROS $target"
index ecc18670efecdb67155ee1d6e7a765e0c21548c7..170b25b67e060e5f743b4c6379d10a401da18d7c 100755 (executable)
@@ -1,6 +1,8 @@
 #  build 64bit installer
-. "..\winbuild\configuration.ps1"
-$configInfo = GetConfiguration
+Param(
+[string]$configPath
+)
+$configInfo = & "..\winbuild\configuration.ps1" "$configPath"
 $VERSION = $configInfo.Configuration.version
 $x64info = $configInfo.Configuration.x64
 $USE_LIBPQ=$x64info.use_libpq
@@ -32,6 +34,11 @@ Write-Host "USE SSPI   : $USE_SSPI"
 
 $CPUTYPE="x64"
 
+if ($env:WIX -ne "")
+{
+   $wix = "$env:WIX"
+   $env:Path += ";$WIX/bin"
+}
 # The subdirectory to install into
 $SUBLOC=$VERSION.substring(0, 2) + $VERSION.substring(3, 2)
 
index 3efbbb6d6e0a0c4894336e32d822edb945d6e601..482d97861f3db6e8d132c74a31a47101a956caf3 100755 (executable)
@@ -1,6 +1,8 @@
 #  build 32bit installer
-. "..\winbuild\configuration.ps1"
-$configInfo = GetConfiguration
+Param(
+[string]$configPath
+)
+$configInfo = & "..\winbuild\configuration.ps1" "$configPath"
 $VERSION = $configInfo.Configuration.version
 $x86info = $configInfo.Configuration.x86
 $USE_LIBPQ=$x86info.use_libpq
@@ -28,6 +30,12 @@ Write-Host "USE LIBPQ  : $USE_LIBPQ ($LIBPQBINDIR)"
 Write-Host "USE GSS    : $USE_GSS ($GSSBINDIR)"
 Write-Host "USE SSPI   : $USE_SSPI"
 
+if ($env:WIX -ne "")
+{
+   $wix = "$env:WIX"
+   $env:Path += ";$WIX/bin"
+}
+
 <#
    The ProductCode History
        ProductCode must be changed in case of major upgrade
index be8c5946837920b88223a131676844f2f016e3ec..84e33ffb86fc64127b629319ccd967321d0d54b8 100755 (executable)
@@ -1,6 +1,9 @@
-function InitConfiguration
+Param(
+[string]$configPath
+)
+function InitConfiguration($savePath = $configurationXmlPath)
 {
-   $configInfo = [xml](Get-Content "$configTempPath")
+   $configInfo = [xml](Get-Content "$configurationTemplatePath")
    if ($env:PROCESSOR_ARCHITECTURE -eq "x86")
    {
        $x64info = $configInfo.Configuration.x64
@@ -8,33 +11,35 @@ function InitConfiguration
        $x64info.libpq.lib = "" 
        $x64info.libpq.bin = "" 
    }
-   $configInfo.save("$configPath")
+   $configInfo.save("$savePath")
+
+   return $configInfo
 }
 
-function global:GetConfiguration
+function global:GetConfiguration($loadPath = $configurationXmlPath)
 {
-   $configInfo =  [xml] (Get-Content "$configPath")
+   $configInfo =  [xml] (Get-Content "$loadPath")
    set-variable -name xmlFormatVersion -value "0.1" -option constant
    if ($configInfo.Configuration.formatVersion -ne $xmlFormatVersion)
    {
-           $xmlDoc2 = [xml](Get-Content "$configTempPath")
+           $xmlDoc2 = [xml](Get-Content "$configurationTemplatePath")
            $root2 = $XmlDoc2.get_DocumentElement() 
            $root1 = $configInfo.get_DocumentElement() 
            unifyNodes $root1 $root2
 
        $root1.formatVersion = $xmlFormatVersion
-               $configInfo.save("$configPath")
+               $configInfo.save("$loadPath")
    }
 
    return $configInfo
 }
 
-function global:SaveConfiguration
+function global:SaveConfiguration($configInfo, $savePath = $configurationXmlPath)
 {
-   $configInfo.save("$configPath")
+   $configInfo.save("$savePath")
 }
 
-function unifyNodes($node1, $node2)
+function global:unifyNodes($node1, $node2)
 {
     $attributes2 = $node2.get_Attributes()
     if ($attributes2.Count -gt 0)
@@ -72,12 +77,20 @@ function unifyNodes($node1, $node2)
     }
 }
 
-$LIBPQ_VERSION="9.3"
+Write-Debug "configPath=$configPath"
+$global:LIBPQ_VERSION="9.3"
 $scriptPath = [System.IO.Path]::GetDirectoryName($myInvocation.MyCommand.Definition)
-$configPath = "$scriptPath\configuration.xml"
-$configTempPath = "$scriptPath\configuration_template.xml"
-if (!(Test-Path -path $configPath))
+$global:configurationTemplatePath = "$scriptPath\configuration_template.xml"
+$global:configurationXmlPath = $configPath
+if ($configurationXmlPath -eq "") {
+   $global:configurationXmlPath = "$scriptPath\configuration.xml"
+}
+if (!(Test-Path -path $configurationXmlPath))
 {
    InitConfiguration
 }
+else
+{
+   GetConfiguration
+}
 Return
index 0aed4348f1279dc0868348a016c148194338948d..27d15a85f921e73974dc07d3dc8449fc9b84dd6d 100755 (executable)
@@ -1,4 +1,4 @@
 ::
 :: Start editConfiguration with a mimimized console window
 ::
-powershell -Sta -WindowStyle Minimized .\editConfiguration.ps1
+powershell -Sta -WindowStyle Minimized %~dp0\editConfiguration.ps1 %*
index 5214c7dd0bf6a075f4250e1f374278484042e565..2542971335411a756acaadb35bf9c19bf4c4c135 100755 (executable)
@@ -185,8 +185,7 @@ for ($i = 1; $i -lt 17; $i++)
     $button.add_Click($button_click)
 }
 
-. ".\configuration.ps1"
-$configInfo = GetConfiguration
+$configInfo = & ".\configuration.ps1" "$configPath"
 
 $window.findName("versionBox").Text = $configInfo.Configuration.version
 
@@ -248,7 +247,7 @@ $buttonSave_clicked.Invoke({
    $x64info.ssl.include = $window.findName("textBox15").Text
    $x64info.ssl.lib = $window.findName("textBox16").Text
 
-   SaveConfiguration
+   SaveConfiguration $configInfo
 })
 
 $window.ShowDialog() | out-null