Detect and label changes from ourself
[quassel.git] / appveyor.yml
1 version: '{build}'
2 build_script:
3 - ps: |
4     $ErrorActionPreference="Stop"
5
6     Import-Module $env:APPVEYOR_BUILD_FOLDER\scripts\build\appveyorHelp.psm1
7
8     Init @("ninja", "png2ico", "nsis", "7zip.commandline") ([ordered]@{"git://anongit.kde.org/extra-cmake-modules.git" = @{"branch" = "master"};
9                                  "https://github.com/Snorenotify/SnoreGrowl.git" = @{"branch" = "v0.4.0"; "buildType" = "Release"};
10                                  "git://anongit.kde.org/snorenotify.git" = @{"branch" = "v0.7.0"; "buildType" = "Release"}})
11
12
13     mkdir -Force $env:APPVEYOR_BUILD_FOLDER\work\build\$env:APPVEYOR_PROJECT_NAME
14     cd $env:APPVEYOR_BUILD_FOLDER\work\build\$env:APPVEYOR_PROJECT_NAME
15
16     $webPrevOption = "-DWITH_WEBKIT=OFF -DWITH_WEBENGINE=ON"
17     $webPrevFiles = @(
18                       "bin\\Qt5Positioning\.dll",
19                       "bin\\Qt5PrintSupport\.dll",
20                       "bin\\Qt5Sensors\.dll",
21                       "bin\\Qt5WebChannel\.dll",
22                       "bin\\QtWebEngineProcess\.exe",
23                       "bin\\Qt5WebEngine\.dll",
24                       "bin\\Qt5WebEngineCore\.dll",
25                       "bin\\Qt5WebEngineWidgets\.dll",
26                       "resources\\icudtl\.dat",
27                       "resources\\qtwebengine_resources.pak",
28                       "resources\\qtwebengine_resources_100p.pak",
29                       "resources\\qtwebengine_resources_200p.pak")
30
31     if($env:COMPILER -eq "mingw49_32") {
32         $webPrevOption = "-DWITH_WEBKIT=OFF -DWITH_WEBENGINE=OFF"
33         $webPrevFiles = @()
34     }
35     
36     LogExec cmake -G"Ninja" $env:APPVEYOR_BUILD_FOLDER -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_ROOT" -DUSE_QT5=ON -DWITH_BREEZE=ON -DWITH_BREEZE_DARK=ON -DWITH_OXYGEN=ON $webPrevOption
37     CmakeImageInstall
38
39     $whitelist = @(
40                             # whitelist
41                             #quassel
42                             "quassel.*",
43                             #
44                             #gccruntime",
45                             "bin\\libgomp.*\.dll",
46                             "bin\\libgcc_s_.*\.dll",
47                             "bin\\libwinpthread.*\.dll",
48                             "bin\\libstdc.*\.dll",
49                             #
50                             #snore
51                             "bin\\.*snore.*\.dll",
52                             "lib\\plugins\\libsnore.*\\libsnore_backend.*\.dll",
53                             "lib\\plugins\\libsnore.*\\libsnore_settings_backend.*\.dll",
54                             "lib\\plugins\\libsnore.*\\libsnore_secondarybackend.*\.dll", "lib\\plugins\\libsnore.*\\libsnore_settings_secondarybackend.*\.dll", "bin\\SnoreToast\.exe",
55                             #
56                             #Growl
57                             "bin\\.*snoregrowl.*\.dll",
58                             #
59                             #ssl
60                             ".*\\libeay32\.dll",
61                             ".*\\ssleay32\.dll",
62                             #
63                             #icu
64                             "bin\\icuin\d+\.dll",
65                             "bin\\icuuc\d+\.dll",
66                             "bin\\icudt\d+\.dll",
67                             #
68                             #qt
69                             "bin\\Qt5Core\.dll",
70                             "bin\\Qt5Declarative\.dll",
71                             "bin\\Qt5Gui\.dll",
72                             "bin\\Qt5Network\.dll",
73                             "bin\\Qt5Opengl\.dll",
74                             "bin\\Qt5Multimedia\.dll",
75                             "bin\\Qt5MultimediaWidgets\.dll",
76                             "bin\\Qt5Qml\.dll",
77                             "bin\\Qt5Quick\.dll",
78                             "bin\\Qt5Script\.dll",
79                             "bin\\Qt5Sql\.dll",
80                             "bin\\Qt5Svg\.dll",
81                             "bin\\Qt5WebChannel\.dll",
82                             "bin\\Qt5Widgets\.dll",
83                             "bin\\Qt5Xml\.dll",
84                             "bin\\Qt5XmlPatterns\.dll",
85                             "bin\\.*libglesv2\.dll",
86                             "bin\\.*libEGL\.dll",
87                             "qml\\.*",
88                             #bin\\QtXml\.dll
89                             #
90                             "plugins\\imageformats\\(?!.*d\.dll).*\.dll$",
91                             "plugins\\sqldrivers\\qsqlite(?!.*d\.dll).*\.dll$",
92                             "plugins\\codecs\\(?!.*d\.dll).*\.dll$",
93                             "plugins\\platforms\\qwindows(?!.*d\.dll).*\.dll$",
94                             "plugins\\iconengines\\(?!.*d\.dll).*\.dll$",
95                             #
96                             #
97                             #zlib
98                             "bin\\libz.dll",
99                             #
100                             #qca
101                             "bin\\libqca.*\.dll",
102                             "lib\\qca-qt5\\crypto\\.*",
103                             "certs\\.*",
104                             #
105                             #phonon
106                             "bin\\libphonon.*\.dll",
107                             "bin\\phonon.*\.dll",
108                             "bin\\libphononexperimental.*\.dll",
109                             "bin\\phonon_backend\\.*",
110                             "plugins\\phonon_backend\\.*",
111                             "plugins\\phonon4qt5_backend\\.*")
112
113     $whitelist += $webPrevFiles
114
115     $imageDir = CreateDeployImage $whitelist @(
116                             #blacklist
117                             "include",
118                             ".*\.h",
119                             "lib\\plugins\\libsnore.*\\libsnore_backend_freedesktop\.dll",
120                             ".*\.pdb",
121                             ".*plugind\.dll"
122                             )
123
124     mv "$imageDir\bin\*" "$imageDir\"
125     #mv "$imageDir\lib\qca-qt5\crypto" "$imageDir\crypto"
126     mv "$imageDir\qml\*" "$imageDir"
127     mv "$imageDir\plugins\*" "$imageDir"
128     if(Test-Path "$imageDir\lib\plugins")
129     {
130         mv "$imageDir\lib\plugins\*" "$imageDir"
131     }
132     if(Test-Path "$imageDir\resources")
133     {
134         mv "$imageDir\resources\*" "$imageDir"
135     }
136     DeleteEmptyFodlers $imageDir
137     7ZipDeployImage
138     NsisDeployImage $env:APPVEYOR_BUILD_FOLDER\scripts\build\NullsoftInstaller.nsi
139
140 environment:
141     QT_VER: 5.7
142
143     matrix:
144     #msvc
145     - COMPILER: msvc2015_64
146     - COMPILER: msvc2015
147
148     #mingw
149     - COMPILER: mingw53_32
150
151 test: off
152
153 cache:
154     - work\install -> appveyor.yml
155     - C:\ProgramData\chocolatey\bin -> appveyor.yml
156     - C:\ProgramData\chocolatey\lib -> appveyor.yml