[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