1 # Copyright (c) 2021 Yubico AB. All rights reserved.
2 # Use of this source code is governed by a BSD-style
3 # license that can be found in the LICENSE file.
4
5 $ErrorActionPreference = "Stop"
6 $Architectures = @('x64', 'Win32', 'ARM64', 'ARM')
7 $InstallPrefixes = @('Win64', 'Win32', 'ARM64', 'ARM')
8 $Types = @('dynamic', 'static')
9 $Config = 'Release'
10 $LibCrypto = '46'
11 $SDK = '142'
12
13 . "$PSScriptRoot\const.ps1"
14
15 foreach ($Arch in $Architectures) {
16 foreach ($Type in $Types) {
17 ./build.ps1 -Arch ${Arch} -Type ${Type} -Config ${Config}
18 }
19 }
20
21 foreach ($InstallPrefix in $InstallPrefixes) {
22 foreach ($Type in $Types) {
23 New-Item -Type Directory `
24 "${OUTPUT}/pkg/${InstallPrefix}/${Config}/v${SDK}/${Type}"
25 }
26 }
27
Package-Headers()28 Function Package-Headers() {
29 Copy-Item "${OUTPUT}\x64\dynamic\include" -Destination "${OUTPUT}\pkg" `
30 -Recurse -ErrorAction Stop
31 }
32
Package-Dynamic(${SRC}, ${DEST})33 Function Package-Dynamic(${SRC}, ${DEST}) {
34 Copy-Item "${SRC}\bin\cbor.dll" "${DEST}"
35 Copy-Item "${SRC}\lib\cbor.lib" "${DEST}"
36 Copy-Item "${SRC}\bin\zlib1.dll" "${DEST}"
37 Copy-Item "${SRC}\lib\zlib.lib" "${DEST}"
38 Copy-Item "${SRC}\bin\crypto-${LibCrypto}.dll" "${DEST}"
39 Copy-Item "${SRC}\lib\crypto-${LibCrypto}.lib" "${DEST}"
40 Copy-Item "${SRC}\bin\fido2.dll" "${DEST}"
41 Copy-Item "${SRC}\lib\fido2.lib" "${DEST}"
42 }
43
Package-Static({SRC}, {DEST})44 Function Package-Static(${SRC}, ${DEST}) {
45 Copy-Item "${SRC}/lib/cbor.lib" "${DEST}"
46 Copy-Item "${SRC}/lib/zlib.lib" "${DEST}"
47 Copy-Item "${SRC}/lib/crypto-${LibCrypto}.lib" "${DEST}"
48 Copy-Item "${SRC}/lib/fido2_static.lib" "${DEST}/fido2.lib"
49 }
50
Package-PDBs({SRC}, {DEST})51 Function Package-PDBs(${SRC}, ${DEST}) {
52 Copy-Item "${SRC}\${LIBRESSL}\crypto\crypto.dir\${Config}\vc${SDK}.pdb" `
53 "${DEST}\crypto-${LibCrypto}.pdb"
54 Copy-Item "${SRC}\${LIBCBOR}\src\cbor.dir\${Config}\vc${SDK}.pdb" `
55 "${DEST}\cbor.pdb"
56 Copy-Item "${SRC}\${ZLIB}\zlib.dir\${Config}\vc${SDK}.pdb" `
57 "${DEST}\zlib.pdb"
58 Copy-Item "${SRC}\src\fido2_shared.dir\${Config}\vc${SDK}.pdb" `
59 "${DEST}\fido2.pdb"
60 }
61
Package-Tools({SRC}, {DEST})62 Function Package-Tools(${SRC}, ${DEST}) {
63 Copy-Item "${SRC}\tools\${Config}\fido2-assert.exe" `
64 "${DEST}\fido2-assert.exe"
65 Copy-Item "${SRC}\tools\${Config}\fido2-cred.exe" `
66 "${DEST}\fido2-cred.exe"
67 Copy-Item "${SRC}\tools\${Config}\fido2-token.exe" `
68 "${DEST}\fido2-token.exe"
69 }
70
71 Package-Headers
72
73 for ($i = 0; $i -lt $Architectures.Length; $i++) {
74 $Arch = $Architectures[$i]
75 $InstallPrefix = $InstallPrefixes[$i]
76 Package-Dynamic "${OUTPUT}\${Arch}\dynamic" `
77 "${OUTPUT}\pkg\${InstallPrefix}\${Config}\v${SDK}\dynamic"
78 Package-PDBs "${BUILD}\${Arch}\dynamic" `
79 "${OUTPUT}\pkg\${InstallPrefix}\${Config}\v${SDK}\dynamic"
80 Package-Tools "${BUILD}\${Arch}\dynamic" `
81 "${OUTPUT}\pkg\${InstallPrefix}\${Config}\v${SDK}\dynamic"
82 Package-Static "${OUTPUT}\${Arch}\static" `
83 "${OUTPUT}\pkg\${InstallPrefix}\${Config}\v${SDK}\static"
84 }
85