[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