blob: ac9ba58c84a8e82031de7b26f15e01c9cda96ed2 [file] [log] [blame]
Sébastien Blin1f915762020-08-03 13:27:42 -04001[cmdletbinding()]
2param (
3 [string]$mode,
4 [string]$qtver,
5 [string]$daemonDir,
Andreas Traczyk470d3c92020-08-19 17:55:28 -04006 [string]$lrcDir,
7 [string]$outDir
Sébastien Blin1f915762020-08-03 13:27:42 -04008);
9
Andreas Traczyk5749e482020-08-27 22:10:55 -040010$clientDir = split-path -parent $MyInvocation.MyCommand.Definition
11$stamp = (git rev-parse HEAD).Substring(0, 8)
12$stampFile = $clientDir + "\.deploy.stamp"
13If (test-path $stampFile) {
14 if($stamp = (Get-Content -Path $stampFile)) {
15 write-host "deployment stamp up-to-date" $outDir -ForegroundColor Cyan
16 exit 0
17 }
18}
19
Sébastien Blin1f915762020-08-03 13:27:42 -040020# default values
Andreas Traczyk470d3c92020-08-19 17:55:28 -040021$qtver = If ($qtver) { $qtver } Else { "5.15.0" }
22$mode = If ($mode) { $mode } Else { "Release" }
Sébastien Blin1f915762020-08-03 13:27:42 -040023
Andreas Traczykb747b3d2020-10-02 16:44:04 -040024if (!$outDir) { $outDir = $clientDir + "\x64\" + $mode }
25If (!(test-path $outDir)) { New-Item -ItemType directory -Path $outDir -Force }
26
Andreas Traczyk470d3c92020-08-19 17:55:28 -040027$qtverSplit1, $qtverSplit2 , $qtverSplit3 = $qtver.Split('.')
28$qtMsvcDir = "msvc2019_64"
Sébastien Blin1f915762020-08-03 13:27:42 -040029
30$QtDir = "C:\Qt\$qtver\$qtMsvcDir"
31
Andreas Traczyk470d3c92020-08-19 17:55:28 -040032if (!$daemonDir) { $daemonDir = $clientDir + '\..\daemon' }
33if (!$lrcDir) { $lrcDir = $clientDir + '\..\lrc' }
Sébastien Blin1f915762020-08-03 13:27:42 -040034
35write-host "********************************************************************************" -ForegroundColor Magenta
Andreas Traczyk5749e482020-08-27 22:10:55 -040036write-host "copying deployment files..." -ForegroundColor Green
Sébastien Blin1f915762020-08-03 13:27:42 -040037write-host "using daemonDir: " $daemonDir -ForegroundColor Magenta
38write-host "using lrcDir: " $lrcDir -ForegroundColor Magenta
39write-host "using QtDir: " $QtDir -ForegroundColor Magenta
40write-host "********************************************************************************" -ForegroundColor Magenta
41
42# dependency bin files and misc
43$FilesToCopy = @(
44 "$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avcodec-58.dll",
45 "$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avutil-56.dll",
46 "$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avformat-58.dll",
47 "$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avdevice-58.dll",
48 "$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\swresample-3.dll",
49 "$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\swscale-5.dll",
50 "$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avfilter-7.dll",
51 "$daemonDir\contrib\build\openssl\out32dll\libeay32.dll",
52 "$daemonDir\contrib\build\openssl\out32dll\ssleay32.dll",
Yang Wang385cf872020-08-21 12:33:46 -040053 "$QtDir\..\..\Tools\OpenSSL\Win_x64\bin\libcrypto-1_1-x64.dll",
54 "$QtDir\..\..\Tools\OpenSSL\Win_x64\bin\libssl-1_1-x64.dll",
Andreas Traczyk470d3c92020-08-19 17:55:28 -040055 "$clientDir\qt.conf",
56 "$clientDir\images\jami.ico",
57 "$clientDir\License.rtf"
58)
Sébastien Blin1f915762020-08-03 13:27:42 -040059foreach ($i in $FilesToCopy) {
Andreas Traczyk470d3c92020-08-19 17:55:28 -040060 write-host "copying: " $i " => " $outDir -ForegroundColor Cyan
61 Copy-Item -Path $i -Recurse -Destination $outDir -Force -Container
Sébastien Blin1f915762020-08-03 13:27:42 -040062}
63
64############
65# qt
66############
Andreas Traczyk470d3c92020-08-19 17:55:28 -040067$windeployqt = "$QtDir\bin\windeployqt.exe --qmldir $clientDir\src --release $outDir\Jami.exe"
68Invoke-Expression $windeployqt
Sébastien Blin1f915762020-08-03 13:27:42 -040069
70# ringtones
Andreas Traczyk470d3c92020-08-19 17:55:28 -040071$CopyDir = $outDir + "\ringtones"
72If (!(test-path $CopyDir)) { New-Item -ItemType directory -Path $CopyDir -Force }
73$RingtonePath = "$clientDir\..\daemon\ringtones"
Sébastien Blin1f915762020-08-03 13:27:42 -040074write-host "copying ringtones..."
75Get-ChildItem -Path $RingtonePath -Include *.ul, *.ogg, *.wav, *.opus -Recurse | ForEach-Object {
76 write-host "copying ringtone: " $_.FullName " => " $CopyDir -ForegroundColor Cyan
77 Copy-Item -Path $_.FullName -Destination $CopyDir -Force –Recurse
78}
79
80# qt translations
81$lrelease = "$QtDir\bin\lrelease.exe"
82
83# lrc translations
84$lrcTSPath = "$lrcDir\translations"
85Get-ChildItem -Path $lrcTSPath -Include *.ts -Recurse | ForEach-Object {
86 & $lrelease $_.FullName
87}
Andreas Traczyk470d3c92020-08-19 17:55:28 -040088$CopyDir = $outDir + "\share\libringclient\translations"
89If (!(test-path $CopyDir)) { New-Item -ItemType directory -Path $CopyDir -Force }
Sébastien Blin1f915762020-08-03 13:27:42 -040090write-host "copying lrc translations..."
91Get-ChildItem -Path $lrcTSPath -Include *.qm -Recurse | ForEach-Object {
92 write-host "copying translation file: " $_.FullName " => " $CopyDir -ForegroundColor Cyan
93 Copy-Item -Path $_.FullName -Destination $CopyDir -Force –Recurse
94}
95
96# client translations
Andreas Traczyk470d3c92020-08-19 17:55:28 -040097$clientTSPath = "$clientDir\translations"
Sébastien Blin1f915762020-08-03 13:27:42 -040098Get-ChildItem -Path $clientTSPath -Include *.ts -Recurse | ForEach-Object {
99 & $lrelease $_.FullName
100}
Andreas Traczyk470d3c92020-08-19 17:55:28 -0400101$CopyDir = $outDir + "\share\ring\translations"
102If (!(test-path $CopyDir)) { New-Item -ItemType directory -Path $CopyDir -Force }
Sébastien Blin1f915762020-08-03 13:27:42 -0400103write-host "copying client translations..."
104Get-ChildItem -Path $clientTSPath -Include *.qm -Recurse | ForEach-Object {
105 write-host "copying translation file: " $_.FullName " => " $CopyDir -ForegroundColor Cyan
106 Copy-Item -Path $_.FullName -Destination $CopyDir -Force –Recurse
107}
108
Andreas Traczyk5749e482020-08-27 22:10:55 -0400109New-Item -Path $stampFile -ItemType "file" -Value $stamp -Force
Yang Wang385cf872020-08-21 12:33:46 -0400110write-host "copy completed" -NoNewline -ForegroundColor Green