xref: /qemu/.gitlab-ci.d/windows.yml (revision b91a0fa7)
1.shared_msys2_builder:
2  tags:
3  - shared-windows
4  - windows
5  - windows-1809
6  cache:
7    key: "${CI_JOB_NAME}-cache"
8    paths:
9      - ${CI_PROJECT_DIR}/msys64/var/cache
10  needs: []
11  stage: build
12  timeout: 70m
13  before_script:
14  - If ( !(Test-Path -Path msys64\var\cache ) ) {
15      mkdir msys64\var\cache
16    }
17  - If ( !(Test-Path -Path msys64\var\cache\msys2.exe ) ) {
18      Invoke-WebRequest
19      "https://github.com/msys2/msys2-installer/releases/download/2021-07-25/msys2-base-x86_64-20210725.sfx.exe"
20      -outfile "msys64\var\cache\msys2.exe"
21    }
22  - msys64\var\cache\msys2.exe -y
23  - ((Get-Content -path .\msys64\etc\\post-install\\07-pacman-key.post -Raw)
24      -replace '--refresh-keys', '--version') |
25     Set-Content -Path ${CI_PROJECT_DIR}\msys64\etc\\post-install\\07-pacman-key.post
26  - .\msys64\usr\bin\bash -lc "sed -i 's/^CheckSpace/#CheckSpace/g' /etc/pacman.conf"
27  - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'  # Core update
28  - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'  # Normal update
29  - taskkill /F /FI "MODULES eq msys-2.0.dll"
30
31msys2-64bit:
32  extends: .shared_msys2_builder
33  script:
34  - .\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
35      diffutils git grep make sed
36      mingw-w64-x86_64-capstone
37      mingw-w64-x86_64-curl
38      mingw-w64-x86_64-cyrus-sasl
39      mingw-w64-x86_64-gcc
40      mingw-w64-x86_64-glib2
41      mingw-w64-x86_64-gnutls
42      mingw-w64-x86_64-libnfs
43      mingw-w64-x86_64-libpng
44      mingw-w64-x86_64-libssh
45      mingw-w64-x86_64-libtasn1
46      mingw-w64-x86_64-libusb
47      mingw-w64-x86_64-libxml2
48      mingw-w64-x86_64-nettle
49      mingw-w64-x86_64-ninja
50      mingw-w64-x86_64-pixman
51      mingw-w64-x86_64-pkgconf
52      mingw-w64-x86_64-python
53      mingw-w64-x86_64-SDL2
54      mingw-w64-x86_64-SDL2_image
55      mingw-w64-x86_64-snappy
56      mingw-w64-x86_64-usbredir
57      mingw-w64-x86_64-zstd "
58  - $env:CHERE_INVOKING = 'yes'  # Preserve the current working directory
59  - $env:MSYSTEM = 'MINGW64'     # Start a 64 bit Mingw environment
60  - .\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
61      --enable-capstone=system --without-default-devices'
62  - .\msys64\usr\bin\bash -lc "sed -i '/^ROMS=/d' build/config-host.mak"
63  - .\msys64\usr\bin\bash -lc 'make -j2'
64  - .\msys64\usr\bin\bash -lc 'make check'
65
66msys2-32bit:
67  extends: .shared_msys2_builder
68  script:
69  - .\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
70      diffutils git grep make sed
71      mingw-w64-i686-capstone
72      mingw-w64-i686-curl
73      mingw-w64-i686-cyrus-sasl
74      mingw-w64-i686-gcc
75      mingw-w64-i686-glib2
76      mingw-w64-i686-gnutls
77      mingw-w64-i686-gtk3
78      mingw-w64-i686-libgcrypt
79      mingw-w64-i686-libjpeg-turbo
80      mingw-w64-i686-libssh
81      mingw-w64-i686-libtasn1
82      mingw-w64-i686-libusb
83      mingw-w64-i686-libxml2
84      mingw-w64-i686-lzo2
85      mingw-w64-i686-ninja
86      mingw-w64-i686-pixman
87      mingw-w64-i686-pkgconf
88      mingw-w64-i686-python
89      mingw-w64-i686-snappy
90      mingw-w64-i686-usbredir "
91  - $env:CHERE_INVOKING = 'yes'  # Preserve the current working directory
92  - $env:MSYSTEM = 'MINGW32'     # Start a 32-bit MinG environment
93  - mkdir output
94  - cd output
95  - ..\msys64\usr\bin\bash -lc "../configure --target-list=ppc64-softmmu
96      --enable-capstone=system"
97  - ..\msys64\usr\bin\bash -lc 'make -j2'
98  - ..\msys64\usr\bin\bash -lc 'make check'
99