[mapguide-commits] r8555 - trunk/Tools/Vagrant/scripts

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Mar 2 04:19:20 PST 2015


Author: jng
Date: 2015-03-02 04:19:20 -0800 (Mon, 02 Mar 2015)
New Revision: 8555

Added:
   trunk/Tools/Vagrant/scripts/build_fdo.ps1
Log:
Check in powershell script to build FDO

Added: trunk/Tools/Vagrant/scripts/build_fdo.ps1
===================================================================
--- trunk/Tools/Vagrant/scripts/build_fdo.ps1	                        (rev 0)
+++ trunk/Tools/Vagrant/scripts/build_fdo.ps1	2015-03-02 12:19:20 UTC (rev 8555)
@@ -0,0 +1,132 @@
+<#
+.SYNOPSIS
+    Builds the FDO codebase
+.DESCRIPTION
+    This PowerShell script will build the entire FDO codebase, which consists of
+        - Oem components
+        - Server tier
+        - Web tier
+        - Documentation
+        - Windows Installer
+        - mg-desktop
+    This script requires PowerShell Community Extensions installed
+.EXAMPLE
+    C:\PS> .\build.ps1 -platform x64 -build_root 'D:\fdo-trunk' -output '.\Release64'
+    Build the full source (located at D:\fdo-trunk) for 64-bit. The build output will be at (.\Release64)
+.EXAMPLE
+    C:\PS> .\build.ps1 -platform x86 -build_root 'D:\fdo-trunk' -output '.\Release'
+    Build the full source (located at D:\fdo-trunk) for 32-bit. The build output will be at (.\Release64)
+.LINK
+    Project Home: http://mapguide.osgeo.org
+    PowerShell Community Extensions: https://pscx.codeplex.com/
+.NOTES
+    Author: Jackie Ng
+#>
+param(
+    [Parameter(HelpMessage = "The CPU platform to build for")]
+    [ValidateSet("Win32", "x64")]
+    [Alias("p")]
+    $platform = "Win32",
+    [Parameter(HelpMessage = "The build configuration to build for")]
+    [ValidateSet("debug", "release")]
+    [Alias("c")]
+    [string]
+    $config = "release",
+    [Parameter(HelpMessage = "The action to perform")]
+    [ValidateSet("build", "install", "buildinstall", "clean")]
+    [Alias("a")]
+    [string]
+    $action = "buildinstall",
+    [Parameter(HelpMessage = "The components to build")]
+    [ValidateSet("thirdparty", "fdo", "all")]
+    [Alias("w")]
+    [string]
+    $component = "all",
+    [Parameter(HelpMessage = "The directory where compiled binaries will be copied to. If relative, the path will be relative to the build root")]
+    [Alias("o")]
+    [string]
+    $output = ".\Release",
+    [Parameter(HelpMessage = "The directory where the FDO source resides in")]
+    [string]
+    $build_root = ".\",
+    [Parameter(HelpMessage = "The directory where the MySQL SDK resides in")]
+    [string]
+    $fdo_mysql = "",
+    [Parameter(HelpMessage = "The directory where the PostgreSQL SDK resides in")]
+    [string]
+    $fdo_postgresql = "",
+    [Parameter(HelpMessage = "The directory where the Oracle Instant Client SDK resides in")]
+    [string]
+    $fdo_oracle = ""
+)
+
+Function MakeDirIfNotExists([string]$dir) {
+    if (-Not(Test-Path $dir)) {
+        New-Item -ItemType directory -Path $dir
+    }
+}
+
+Try
+{
+    Import-Module Pscx
+
+    $env:FDOMYSQL = $fdo_mysql
+    $env:FDOORACLE = $fdo_oracle
+    $env:FDOPOSTGRESQL = $fdo_postgresql
+
+    $cwd = (Get-Item -Path "$build_root" -Verbose).FullName
+    pushd $cwd
+    Write-Host "Entering $cwd"
+
+    If ($platform.Equals("x64")) {
+        Write-Host "Setting FDO build environment for x64"
+        Invoke-BatchFile setenvironment.bat x86_amd64
+    } Else {
+        Write-Host "Setting FDO build environment for x86"
+        Invoke-BatchFile setenvironment.bat x86
+    }
+    if (-Not $?) {
+        throw "Failure invoking setenvironment.bat"
+    }
+
+    # Check perl
+    Write-Host "Checking for perl"
+    if (-Not (Get-Command perl -errorAction SilentlyContinue)) {
+        throw "perl not found. Ensure perl bin directory is in your PATH environment variable"
+    }
+
+    # Normalize the output path
+    if (-Not [System.IO.Path]::IsPathRooted($output)) {
+        $output = [System.IO.Path]::GetFullPath((Join-Path $cwd $output));
+    }
+
+    Write-Host "========= Action Summary ============"
+    Write-Host "Platform: $platform"
+    Write-Host "Configuration: $config"
+    Write-Host "Action: $action"
+    Write-Host "Component: $component"
+    Write-Host "Output Dir: $output"
+    Write-Host "Build Root: $build_root"
+    Write-Host "======== Env var summary ============"
+    Write-Host "FDOMYSQL: $env:FDOMYSQL"
+    Write-Host "FDOPOSTGRESQL: $env:FDOPOSTGRESQL"
+    Write-Host "FDOORACLE: $env:FDOORACLE"
+    Write-Host "====================================="
+
+    switch ($component) {
+        "thirdparty" {
+            & .\build_thirdparty.bat "-a=$action" "-o=$output" "-p=$platform" "-c=$config"
+        }
+        "fdo" {
+            & .\build.bat "-a=$action" "-o=$output" "-p=$platform" "-c=$config"
+        }
+        "all" {
+            & .\build_thirdparty.bat "-a=$action" "-o=$output" "-p=$platform" "-c=$config"
+            & .\build.bat "-a=$action" "-o=$output" "-p=$platform" "-c=$config"
+        }
+    }
+}
+Finally
+{
+    popd
+}
\ No newline at end of file



More information about the mapguide-commits mailing list