aboutsummaryrefslogtreecommitdiff
path: root/scripts/nuget_build.ps1
blob: 30cbebea62fe1fb8bf43d1a6f36c181b13800339 (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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"
Force-Copy "../src/pugixml.cpp" "nuget/build/native/include/pugixml.cpp"

if ($args[0] -eq 2022){
	Build-Version "vs2022" "v143" "dynamic"
	Build-Version "vs2022" "v143" "static"

} elseif ($args[0] -eq 2019){
	Build-Version "vs2019" "v142" "dynamic"
	Build-Version "vs2019" "v142" "static"

} elseif ($args[0] -eq 2017){
	Build-Version "vs2017" "v141" "dynamic"
	Build-Version "vs2017" "v141" "static"

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

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

} elseif($args[0] -eq 2015){
	Build-Version "vs2015" "v140" "dynamic"
	Build-Version "vs2015" "v140" "static"

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

} elseif($args[0] -eq 2013){
	Build-Version "vs2013" "v120" "dynamic"
	Build-Version "vs2013" "v120" "static"
}

Run-Command "nuget pack nuget"

Pop-Location