summaryrefslogtreecommitdiff
path: root/scripts/nuget_build.ps1
blob: cd11b59802f6054617997b8b779752fba8680e3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
function Run-Command([string]$cmd)
{
	Invoke-Expression $cmd
	if ($LastExitCode) { exit $LastExitCode }
}

function Force-Copy([string]$from, [string]$to)
{
	Write-Host $from "->" $to
	New-Item -Force $to | Out-Null
	Copy-Item -Force $from $to
	if (! $?) { exit 1 }
}

function Build-Version([string]$vs, [string]$toolset, [string]$linkage)
{
	$prjsuffix = if ($linkage -eq "static") { "_static" } else { "" }
	$cfgsuffix = if ($linkage -eq "static") { "Static" } else { "" }

	foreach ($configuration in "Debug","Release")
	{
		Run-Command "msbuild pugixml_$vs$prjsuffix.vcxproj /t:Rebuild /p:Configuration=$configuration /p:Platform=x86 /v:minimal /nologo"
		Run-Command "msbuild pugixml_$vs$prjsuffix.vcxproj /t:Rebuild /p:Configuration=$configuration /p:Platform=x64 /v:minimal /nologo"

		Force-Copy "$vs/Win32_$configuration$cfgsuffix/pugixml.lib" "nuget/build/native/lib/Win32/$toolset/$linkage/$configuration/pugixml.lib"
		Force-Copy "$vs/x64_$configuration$cfgsuffix/pugixml.lib" "nuget/build/native/lib/x64/$toolset/$linkage/$configuration/pugixml.lib"
	}
}

Push-Location
$scriptdir = Split-Path $MyInvocation.MyCommand.Path
cd $scriptdir

Force-Copy "../src/pugiconfig.hpp" "nuget/build/native/include/pugiconfig.hpp"
Force-Copy "../src/pugixml.hpp" "nuget/build/native/include/pugixml.hpp"

Build-Version "vs2013" "v120" "dynamic"
Build-Version "vs2013" "v120" "static"

Build-Version "vs2015" "v140" "dynamic"
Build-Version "vs2015" "v140" "static"

Build-Version "vs2017" "v141" "dynamic"
Build-Version "vs2017" "v141" "static"

Run-Command "nuget pack nuget"

Pop-Location