[mapguide-commits] r9092 - sandbox/jng/diet_v2/MgDev/nuget

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Nov 21 06:23:15 PST 2016


Author: jng
Date: 2016-11-21 06:23:15 -0800 (Mon, 21 Nov 2016)
New Revision: 9092

Added:
   sandbox/jng/diet_v2/MgDev/nuget/make-nuget.ps1
Log:
The current nuget preparation scripts are not workable in this slim build environment where we build to custom staging directory.

This commit introduces a powershell version of our NuGet package building script. The script currently implements the package preparation phase.

Added: sandbox/jng/diet_v2/MgDev/nuget/make-nuget.ps1
===================================================================
--- sandbox/jng/diet_v2/MgDev/nuget/make-nuget.ps1	                        (rev 0)
+++ sandbox/jng/diet_v2/MgDev/nuget/make-nuget.ps1	2016-11-21 14:23:15 UTC (rev 9092)
@@ -0,0 +1,141 @@
+<#
+
+make-nuget.ps1
+
+This script creates NuGet packages for:
+
+ * MapGuide API base
+ * MapGuide Web API
+ * mg-desktop core
+ * mg-desktop WinForms controls
+ * CS-Map dictionaries
+
+#>
+[CmdletBinding()]
+Param(
+    [Parameter(Mandatory=$True)]
+    [ValidateSet("x86", "x64")]
+    [string]$cpu,
+    
+    [Parameter(Mandatory=$True)]
+    [ValidateScript({Test-Path $_})]
+    [string]$desktopBaseDir,
+    
+    [Parameter(Mandatory=$True)]
+    [ValidateScript({Test-Path $_})]
+    [string]$csMapBaseDir,
+
+    [Parameter(Mandatory=$True)]
+    [ValidateScript({Test-Path $_})]
+    [string]$webBinDir,
+
+    [Int]$major = 1,
+
+    [Int]$minor = 0,
+
+    [Int]$patch = 0,
+
+    [Int]$rev = 0
+)
+
+Write-Host "CPU: $cpu"
+Write-Host "mg-desktop base dir: $desktopBaseDir"
+Write-Host "cs-map base dir: $csMapBaseDir"
+Write-Host "web bin base dir: $webBinDir"
+Write-Host "Version: $major.$minor.$patch.$rev"
+
+Function Prepare-Staging {
+    Param(
+        [string]$packageName,
+        [string]$contentDirName,
+        [string]$baseDir,
+        [string[]]$contentFileList,
+        [string[]]$libFileList
+    )
+
+    Write-Host "Copy $packageName files to nuget staging"
+    $destinationFolder = ".\$cpu\$packageName\$contentDirName"
+    if (!(Test-Path -path $destinationFolder)) {
+        New-Item $destinationFolder -Type Directory | Out-Null
+    }
+    foreach ($file in $contentFileList) {
+        Copy-Item -Path "$baseDir\$file" $destinationFolder -Force
+    }
+    foreach ($file in $libFileList) {
+        Copy-Item -Path "$baseDir\$file" ".\$cpu\$packageName\lib\net40"
+    }
+}
+
+# Copy files to staging areas
+
+# api-base
+$baseFileSetContent = @(
+    "ACE.dll"
+    "GEOS.dll",
+    "MgFoundation.dll",
+    "MgGeometry.dll",
+    "MgMdfModel.dll",
+    "MgMdfParser.dll",
+    "MgPlatformBase.dll",
+    "xerces-c_3_1mg.dll",
+    "FoundationUnmanagedApi.dll",
+    "GeometryUnmanagedApi.dll",
+    "PlatformBaseUnmanagedApi.dll"
+)
+$baseFileSetLibs = @(
+    "OSGeo.MapGuide.Foundation.dll",
+    "OSGeo.MapGuide.Geometry.dll",
+    "OSGeo.MapGuide.PlatformBase.dll",
+    "OSGeo.MapGuide.Foundation.xml",
+    "OSGeo.MapGuide.Geometry.xml",
+    "OSGeo.MapGuide.PlatformBase.xml"
+)
+Prepare-Staging "api-base" "mapguide-api-base" $webBinDir $baseFileSetContent $baseFileSetLibs
+
+# api-web
+$webFileSetContent = @(
+    "MgWebApp.dll"
+    "MgWebSupport.dll",
+    "MgHttpHandler.dll",
+    "MgMapGuideCommon.dll",
+    "MapGuideCommonUnmanagedApi.dll",
+    "lib_json.dll",
+    "WebUnmanagedApi.dll"
+)
+$webFileSetLibs = @(
+    "OSGeo.MapGuide.MapGuideCommon.dll",
+    "OSGeo.MapGuide.Web.dll",
+    "OSGeo.MapGuide.MapGuideCommon.xml",
+    "OSGeo.MapGuide.Web.xml"
+)
+Prepare-Staging "api-web" "mapguide-api-web" $webBinDir $webFileSetContent $webFileSetLibs
+
+# api-desktop
+Write-Host "Copy api-desktop files to nuget staging"
+$destDir = ".\$cpu\api-desktop\mg-desktop"
+if (!(Test-Path -path $destDir)) {
+    New-Item $destDir -Type Directory | Out-Null
+}
+Copy-Item -Path "$desktopBaseDir\gd.dll" $destDir -Force
+Copy-Item -Path "$desktopBaseDir\MapGuideDesktopUnmanagedApi.dll" $destDir -Force
+Copy-Item -Path "$desktopBaseDir\MgDesktop.dll" $destDir -Force
+Copy-Item -Path "$desktopBaseDir\MgGwsCommon.dll" $destDir -Force
+Copy-Item -Path "$desktopBaseDir\MgGwsQueryEngine.dll" $destDir -Force
+Copy-Item -Path "$desktopBaseDir\MgGwsResource.dll" $destDir -Force
+Copy-Item -Path "$desktopBaseDir\MgRenderers.dll" $destDir -Force
+Copy-Item -Path "$desktopBaseDir\MgStylization.dll" $destDir -Force
+Copy-Item -Path "$desktopBaseDir\Platform.ini" $destDir -Force
+Copy-Item -Path "$desktopBaseDir\FDO" $destDir -Force -Recurse
+Copy-Item -Path "$desktopBaseDir\Resources" $destDir -Force -Recurse
+Copy-Item -Path "$desktopBaseDir\Schema" $destDir -Force -Recurse
+Copy-Item -Path "$desktopBaseDir\OSGeo.MapGuide.Desktop.dll" ".\$cpu\api-desktop\lib\net40" -Recurse -Force
+Copy-Item -Path "$desktopBaseDir\OSGeo.MapGuide.Desktop.xml" ".\$cpu\api-desktop\lib\net40" -Recurse -Force
+
+# api-desktop-viewer
+$viewerFileSetContent = @()
+$viewerFileSetLibs = @(
+    "OSGeo.MapGuide.Viewer.dll",
+    "OSGeo.MapGuide.Viewer.Desktop.dll",
+    "OSGeo.MapGuide.Viewer.xml"
+)
+Prepare-Staging "api-desktop-viewer" "" $desktopBaseDir $viewerFileSetContent $viewerFileSetLibs



More information about the mapguide-commits mailing list