• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 # Copyright (C) 2016 and later: Unicode, Inc. and others.
2 # License & terms of use: http://www.unicode.org/copyright.html
3 #-------------------------
4 # Script: icu\packaging\distrelease.ps1
5 # Author: Steven R. Loomis
6 # Date: 2017-04-14
7 #-------------------------
8 #
9 # This builds a zipfile containing the 64-bit (x64) and/or 32-bit (x86) Windows binaries.
10 # (Note: The zipfile does not include the UWP binaries.)
11 #
12 # Usage: (after building ICU using MSVC)
13 #  (bring up Powershell ISE)
14 #    cd C:\icu\icu4c\
15 #    Set-ExecutionPolicy -Scope Process Unrestricted
16 #    .\packaging\distrelease.ps1 -arch "x64 or x86 or ARM64"
17 #
18 # Will emit: c:\icu4c\icu\source\dist\icu-windows.zip
19 #
20 #
21 # You will get warnings from the execution policy and the script itself.
22 #  see https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-5.1&viewFallbackFrom=powershell-Microsoft.PowerShell.Core
23 #    for more about execution policies.
24 
25 Param(
26   [string]$arch = "x64" # use x64 as default
27 )
28 
29 $icuDir = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
30 $icuDir = Resolve-Path -Path '$icuDir\..'
31 
32 echo  $icuDir
33 
34 # ok, create some work areas
35 New-Item -Path "$icuDir\source\dist" -ErrorAction SilentlyContinue -ItemType "directory"
36 $source = "$icuDir\source\dist\icu"
37 Get-ChildItem -Path $source -ErrorAction SilentlyContinue | Remove-Item -Recurse
38 New-Item -Path $source -ItemType "directory" -ErrorAction SilentlyContinue
39 
40 # copy required stuff
41 if ($arch -eq "x64")
42 {
43     Copy-Item -Path "$icuDir\lib64" -Destination $source -Recurse
44     Copy-Item -Path "$icuDir\bin64" -Destination $source -Recurse
45 }
46 elseif ($arch -eq "x86")
47 {
48     Copy-Item -Path "$icuDir\lib" -Destination $source -Recurse
49     Copy-Item -Path "$icuDir\bin" -Destination $source -Recurse
50 }
51 elseif ($arch -eq "ARM64")
52 {
53     Copy-Item -Path "$icuDir\libARM64" -Destination $source -Recurse
54     Copy-Item -Path "$icuDir\binARM64" -Destination $source -Recurse
55 }
56 else
57 {
58     $filename = $MyInvocation.MyCommand.Name;
59     echo "Invalid architecture."
60     echo "Usage: $filename -arch `"x64 or x86`""
61     exit
62 }
63 
64 Copy-Item -Path "$icuDir\include" -Destination $source -Recurse
65 Copy-Item -Path "$icuDir\APIChangeReport.html" -Destination $source -Recurse
66 Copy-Item -Path "$icuDir\icu4c.css" -Destination $source -Recurse
67 Copy-Item -Path "$icuDir\LICENSE" -Destination $source -Recurse
68 Copy-Item -Path "$icuDir\readme.html" -Destination $source -Recurse
69 
70 
71 $destination = "$icuDir\source\dist\icu-windows.zip"
72 Remove-Item -Path $destination -ErrorAction Continue
73 Echo $source
74 Echo $destination
75 
76 # Use 7Zip to build zip file to avoid backslash path separator errors when unzipping on CygWin
77 if (-not (Get-Module -ListAvailable -Name 7Zip4PowerShell))
78 {
79     Install-Module 7Zip4PowerShell -Force -Verbose
80 }
81 Compress-7Zip $source -ArchiveFileName $destination -Format Zip
82 
83 echo $destination