diff mbox series

[3/6] ci: Install msys2 in a proper way refer to https://github.com/cirruslabs/cirrus-ci-docs/issues/699 Enable msys2 ci in cirrus

Message ID 20200902170054.810-4-luoyonggang@gmail.com
State New
Headers show
Series Green the msys2 CI make | expand

Commit Message

罗勇刚(Yonggang Luo) Sept. 2, 2020, 5 p.m. UTC
---
 .cirrus.yml                         | 23 ++++++++++++++++
 scripts/ci/windows/msys2_build.sh   | 35 ++++++++++++++++++++++++
 scripts/ci/windows/msys2_install.sh | 41 +++++++++++++++++++++++++++++
 3 files changed, 99 insertions(+)
 create mode 100644 scripts/ci/windows/msys2_build.sh
 create mode 100644 scripts/ci/windows/msys2_install.sh

Comments

Philippe Mathieu-Daudé Sept. 2, 2020, 5:30 p.m. UTC | #1
On 9/2/20 7:00 PM, Yonggang Luo wrote:
> ---
>  .cirrus.yml                         | 23 ++++++++++++++++
>  scripts/ci/windows/msys2_build.sh   | 35 ++++++++++++++++++++++++
>  scripts/ci/windows/msys2_install.sh | 41 +++++++++++++++++++++++++++++
>  3 files changed, 99 insertions(+)
>  create mode 100644 scripts/ci/windows/msys2_build.sh
>  create mode 100644 scripts/ci/windows/msys2_install.sh
> 
> diff --git a/.cirrus.yml b/.cirrus.yml
> index f287d23c5b..d377c28412 100644
> --- a/.cirrus.yml
> +++ b/.cirrus.yml
> @@ -40,3 +40,26 @@ macos_xcode_task:
>      - ../configure --cc=clang || { cat config.log; exit 1; }
>      - gmake -j$(sysctl -n hw.ncpu)
>      - gmake check
> +
> +windows_msys2_task:
> +  windows_container:
> +    image: cirrusci/windowsservercore:cmake
> +    os_version: 2019
> +    cpu: 8
> +    memory: 8G
> +  env:
> +    MSYS: winsymlinks:nativestrict
> +    MSYSTEM: MINGW64
> +    CHERE_INVOKING: 1
> +  printenv_script: C:\tools\msys64\usr\bin\bash.exe -lc 'printenv'
> +  install_script:
> +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
> +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig"
> +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && pacman -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
> +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sy --noconfirm"
> +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --needed --noconfirm -S bash pacman pacman-mirrors msys2-runtime"
> +    - taskkill /F /IM gpg-agent.exe
> +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Su"
> +    - C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2_install.sh"
> +  script:
> +    C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2_build.sh"
> diff --git a/scripts/ci/windows/msys2_build.sh b/scripts/ci/windows/msys2_build.sh
> new file mode 100644
> index 0000000000..0363ef402a
> --- /dev/null
> +++ b/scripts/ci/windows/msys2_build.sh
> @@ -0,0 +1,35 @@
> +export QEMU_DIR=$PWD
> +mkdir ../qemu-build
> +cd ../qemu-build
> +$QEMU_DIR/configure \
> +  --python=python3 \
> +  --cross-prefix=x86_64-w64-mingw32- \

Isn't the prefix 'x86_64-w64-mingw32-gcc-'?

> +  --enable-gtk --enable-sdl \
> +  --enable-capstone=git \
> +  --enable-stack-protector \
> +  --ninja=ninja \
> +  --enable-gnutls \
> +  --enable-nettle \
> +  --enable-vnc \
> +  --enable-vnc-sasl \
> +  --enable-vnc-jpeg \
> +  --enable-vnc-png \
> +  --enable-membarrier \
> +  --enable-slirp=git \
> +  --disable-kvm \
> +  --enable-hax \
> +  --enable-whpx \
> +  --disable-spice \
> +  --enable-lzo \
> +  --enable-snappy \
> +  --enable-bzip2 \
> +  --enable-vdi \
> +  --enable-qcow1 \
> +  --enable-tools \
> +  --enable-libusb \
> +  --enable-usb-redir \
> +  --disable-libnfs \
> +  --enable-libssh \
> +  --disable-pie
> +make -j$NUMBER_OF_PROCESSORS
> +# make -j$NUMBER_OF_PROCESSORS check
> diff --git a/scripts/ci/windows/msys2_install.sh b/scripts/ci/windows/msys2_install.sh
> new file mode 100644
> index 0000000000..3a5392cd99
> --- /dev/null
> +++ b/scripts/ci/windows/msys2_install.sh
> @@ -0,0 +1,41 @@
> +pacman --noconfirm -S --needed \
> +base-devel \
> +git \
> +mingw-w64-x86_64-python \
> +mingw-w64-x86_64-python-setuptools \
> +mingw-w64-x86_64-toolchain \
> +mingw-w64-x86_64-SDL2 \
> +mingw-w64-x86_64-SDL2_image \
> +mingw-w64-x86_64-gtk3 \
> +mingw-w64-x86_64-ninja \
> +mingw-w64-x86_64-make \
> +mingw-w64-x86_64-lzo2 \
> +mingw-w64-x86_64-libjpeg-turbo \
> +mingw-w64-x86_64-pixman \
> +mingw-w64-x86_64-libgcrypt \
> +mingw-w64-x86_64-capstone \
> +mingw-w64-x86_64-libpng \
> +mingw-w64-x86_64-libssh \
> +mingw-w64-x86_64-libxml2 \
> +mingw-w64-x86_64-snappy \
> +mingw-w64-x86_64-libusb \
> +mingw-w64-x86_64-usbredir \
> +mingw-w64-x86_64-libtasn1 \
> +mingw-w64-x86_64-libnfs \
> +mingw-w64-x86_64-nettle \
> +mingw-w64-x86_64-cyrus-sasl \
> +mingw-w64-x86_64-curl \
> +mingw-w64-x86_64-gnutls \
> +mingw-w64-x86_64-zstd \
> +mingw-w64-x86_64-glib2
> +
> +cd /mingw64/bin
> +cp x86_64-w64-mingw32-gcc-ar.exe x86_64-w64-mingw32-ar.exe
> +cp x86_64-w64-mingw32-gcc-ranlib.exe x86_64-w64-mingw32-ranlib.exe
> +cp x86_64-w64-mingw32-gcc-nm.exe x86_64-w64-mingw32-nm.exe
> +cp windres.exe x86_64-w64-mingw32-windres.exe
> +cp strip.exe x86_64-w64-mingw32-strip.exe
> +cp objcopy.exe x86_64-w64-mingw32-objcopy.exe
> +cp ld x86_64-w64-mingw32-ld.exe
> +cp as x86_64-w64-mingw32-as.exe
> +cp sdl2-config x86_64-w64-mingw32-sdl2-config

Why is that needed?

Thanks,

Phil.
罗勇刚(Yonggang Luo) Sept. 2, 2020, 5:50 p.m. UTC | #2
On Thu, Sep 3, 2020 at 1:30 AM Philippe Mathieu-Daudé <f4bug@amsat.org>
wrote:

> On 9/2/20 7:00 PM, Yonggang Luo wrote:
> > ---
> >  .cirrus.yml                         | 23 ++++++++++++++++
> >  scripts/ci/windows/msys2_build.sh   | 35 ++++++++++++++++++++++++
> >  scripts/ci/windows/msys2_install.sh | 41 +++++++++++++++++++++++++++++
> >  3 files changed, 99 insertions(+)
> >  create mode 100644 scripts/ci/windows/msys2_build.sh
> >  create mode 100644 scripts/ci/windows/msys2_install.sh
> >
> > diff --git a/.cirrus.yml b/.cirrus.yml
> > index f287d23c5b..d377c28412 100644
> > --- a/.cirrus.yml
> > +++ b/.cirrus.yml
> > @@ -40,3 +40,26 @@ macos_xcode_task:
> >      - ../configure --cc=clang || { cat config.log; exit 1; }
> >      - gmake -j$(sysctl -n hw.ncpu)
> >      - gmake check
> > +
> > +windows_msys2_task:
> > +  windows_container:
> > +    image: cirrusci/windowsservercore:cmake
> > +    os_version: 2019
> > +    cpu: 8
> > +    memory: 8G
> > +  env:
> > +    MSYS: winsymlinks:nativestrict
> > +    MSYSTEM: MINGW64
> > +    CHERE_INVOKING: 1
> > +  printenv_script: C:\tools\msys64\usr\bin\bash.exe -lc 'printenv'
> > +  install_script:
> > +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O
> http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
> "
> > +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O
> http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig
> "
> > +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && pacman -U
> --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
> > +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sy --noconfirm"
> > +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --needed --noconfirm
> -S bash pacman pacman-mirrors msys2-runtime"
> > +    - taskkill /F /IM gpg-agent.exe
> > +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Su"
> > +    - C:\tools\msys64\usr\bin\bash.exe -lc "sh
> scripts/ci/windows/msys2_install.sh"
> > +  script:
> > +    C:\tools\msys64\usr\bin\bash.exe -lc "sh
> scripts/ci/windows/msys2_build.sh"
> > diff --git a/scripts/ci/windows/msys2_build.sh
> b/scripts/ci/windows/msys2_build.sh
> > new file mode 100644
> > index 0000000000..0363ef402a
> > --- /dev/null
> > +++ b/scripts/ci/windows/msys2_build.sh
> > @@ -0,0 +1,35 @@
> > +export QEMU_DIR=$PWD
> > +mkdir ../qemu-build
> > +cd ../qemu-build
> > +$QEMU_DIR/configure \
> > +  --python=python3 \
> > +  --cross-prefix=x86_64-w64-mingw32- \
>
> Isn't the prefix 'x86_64-w64-mingw32-gcc-'?
>
> > +  --enable-gtk --enable-sdl \
> > +  --enable-capstone=git \
> > +  --enable-stack-protector \
> > +  --ninja=ninja \
> > +  --enable-gnutls \
> > +  --enable-nettle \
> > +  --enable-vnc \
> > +  --enable-vnc-sasl \
> > +  --enable-vnc-jpeg \
> > +  --enable-vnc-png \
> > +  --enable-membarrier \
> > +  --enable-slirp=git \
> > +  --disable-kvm \
> > +  --enable-hax \
> > +  --enable-whpx \
> > +  --disable-spice \
> > +  --enable-lzo \
> > +  --enable-snappy \
> > +  --enable-bzip2 \
> > +  --enable-vdi \
> > +  --enable-qcow1 \
> > +  --enable-tools \
> > +  --enable-libusb \
> > +  --enable-usb-redir \
> > +  --disable-libnfs \
> > +  --enable-libssh \
> > +  --disable-pie
> > +make -j$NUMBER_OF_PROCESSORS
> > +# make -j$NUMBER_OF_PROCESSORS check
> > diff --git a/scripts/ci/windows/msys2_install.sh
> b/scripts/ci/windows/msys2_install.sh
> > new file mode 100644
> > index 0000000000..3a5392cd99
> > --- /dev/null
> > +++ b/scripts/ci/windows/msys2_install.sh
> > @@ -0,0 +1,41 @@
> > +pacman --noconfirm -S --needed \
> > +base-devel \
> > +git \
> > +mingw-w64-x86_64-python \
> > +mingw-w64-x86_64-python-setuptools \
> > +mingw-w64-x86_64-toolchain \
> > +mingw-w64-x86_64-SDL2 \
> > +mingw-w64-x86_64-SDL2_image \
> > +mingw-w64-x86_64-gtk3 \
> > +mingw-w64-x86_64-ninja \
> > +mingw-w64-x86_64-make \
> > +mingw-w64-x86_64-lzo2 \
> > +mingw-w64-x86_64-libjpeg-turbo \
> > +mingw-w64-x86_64-pixman \
> > +mingw-w64-x86_64-libgcrypt \
> > +mingw-w64-x86_64-capstone \
> > +mingw-w64-x86_64-libpng \
> > +mingw-w64-x86_64-libssh \
> > +mingw-w64-x86_64-libxml2 \
> > +mingw-w64-x86_64-snappy \
> > +mingw-w64-x86_64-libusb \
> > +mingw-w64-x86_64-usbredir \
> > +mingw-w64-x86_64-libtasn1 \
> > +mingw-w64-x86_64-libnfs \
> > +mingw-w64-x86_64-nettle \
> > +mingw-w64-x86_64-cyrus-sasl \
> > +mingw-w64-x86_64-curl \
> > +mingw-w64-x86_64-gnutls \
> > +mingw-w64-x86_64-zstd \
> > +mingw-w64-x86_64-glib2
> > +
> > +cd /mingw64/bin
> > +cp x86_64-w64-mingw32-gcc-ar.exe x86_64-w64-mingw32-ar.exe
> > +cp x86_64-w64-mingw32-gcc-ranlib.exe x86_64-w64-mingw32-ranlib.exe
> > +cp x86_64-w64-mingw32-gcc-nm.exe x86_64-w64-mingw32-nm.exe
> > +cp windres.exe x86_64-w64-mingw32-windres.exe
> > +cp strip.exe x86_64-w64-mingw32-strip.exe
> > +cp objcopy.exe x86_64-w64-mingw32-objcopy.exe
> > +cp ld x86_64-w64-mingw32-ld.exe
> > +cp as x86_64-w64-mingw32-as.exe
> > +cp sdl2-config x86_64-w64-mingw32-sdl2-config
>
> Why is that needed?
>
> Thanks,
>
> Phil.
>
Hi, I am looking for suggestion for building  with msys2, this is comes
from wiki, if you have better idea, then tell me.

https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2
Mark Cave-Ayland Sept. 2, 2020, 6:50 p.m. UTC | #3
On 02/09/2020 18:30, Philippe Mathieu-Daudé wrote:

> On 9/2/20 7:00 PM, Yonggang Luo wrote:
>> ---
>>  .cirrus.yml                         | 23 ++++++++++++++++
>>  scripts/ci/windows/msys2_build.sh   | 35 ++++++++++++++++++++++++
>>  scripts/ci/windows/msys2_install.sh | 41 +++++++++++++++++++++++++++++
>>  3 files changed, 99 insertions(+)
>>  create mode 100644 scripts/ci/windows/msys2_build.sh
>>  create mode 100644 scripts/ci/windows/msys2_install.sh
>>
>> diff --git a/.cirrus.yml b/.cirrus.yml
>> index f287d23c5b..d377c28412 100644
>> --- a/.cirrus.yml
>> +++ b/.cirrus.yml
>> @@ -40,3 +40,26 @@ macos_xcode_task:
>>      - ../configure --cc=clang || { cat config.log; exit 1; }
>>      - gmake -j$(sysctl -n hw.ncpu)
>>      - gmake check
>> +
>> +windows_msys2_task:
>> +  windows_container:
>> +    image: cirrusci/windowsservercore:cmake
>> +    os_version: 2019
>> +    cpu: 8
>> +    memory: 8G
>> +  env:
>> +    MSYS: winsymlinks:nativestrict
>> +    MSYSTEM: MINGW64
>> +    CHERE_INVOKING: 1
>> +  printenv_script: C:\tools\msys64\usr\bin\bash.exe -lc 'printenv'
>> +  install_script:
>> +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
>> +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig"
>> +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && pacman -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
>> +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sy --noconfirm"
>> +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --needed --noconfirm -S bash pacman pacman-mirrors msys2-runtime"
>> +    - taskkill /F /IM gpg-agent.exe
>> +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Su"
>> +    - C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2_install.sh"
>> +  script:
>> +    C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2_build.sh"
>> diff --git a/scripts/ci/windows/msys2_build.sh b/scripts/ci/windows/msys2_build.sh
>> new file mode 100644
>> index 0000000000..0363ef402a
>> --- /dev/null
>> +++ b/scripts/ci/windows/msys2_build.sh
>> @@ -0,0 +1,35 @@
>> +export QEMU_DIR=$PWD
>> +mkdir ../qemu-build
>> +cd ../qemu-build
>> +$QEMU_DIR/configure \
>> +  --python=python3 \
>> +  --cross-prefix=x86_64-w64-mingw32- \
> 
> Isn't the prefix 'x86_64-w64-mingw32-gcc-'?
> 
>> +  --enable-gtk --enable-sdl \
>> +  --enable-capstone=git \
>> +  --enable-stack-protector \
>> +  --ninja=ninja \
>> +  --enable-gnutls \
>> +  --enable-nettle \
>> +  --enable-vnc \
>> +  --enable-vnc-sasl \
>> +  --enable-vnc-jpeg \
>> +  --enable-vnc-png \
>> +  --enable-membarrier \
>> +  --enable-slirp=git \
>> +  --disable-kvm \
>> +  --enable-hax \
>> +  --enable-whpx \
>> +  --disable-spice \
>> +  --enable-lzo \
>> +  --enable-snappy \
>> +  --enable-bzip2 \
>> +  --enable-vdi \
>> +  --enable-qcow1 \
>> +  --enable-tools \
>> +  --enable-libusb \
>> +  --enable-usb-redir \
>> +  --disable-libnfs \
>> +  --enable-libssh \
>> +  --disable-pie
>> +make -j$NUMBER_OF_PROCESSORS
>> +# make -j$NUMBER_OF_PROCESSORS check
>> diff --git a/scripts/ci/windows/msys2_install.sh b/scripts/ci/windows/msys2_install.sh
>> new file mode 100644
>> index 0000000000..3a5392cd99
>> --- /dev/null
>> +++ b/scripts/ci/windows/msys2_install.sh
>> @@ -0,0 +1,41 @@
>> +pacman --noconfirm -S --needed \
>> +base-devel \
>> +git \
>> +mingw-w64-x86_64-python \
>> +mingw-w64-x86_64-python-setuptools \
>> +mingw-w64-x86_64-toolchain \
>> +mingw-w64-x86_64-SDL2 \
>> +mingw-w64-x86_64-SDL2_image \
>> +mingw-w64-x86_64-gtk3 \
>> +mingw-w64-x86_64-ninja \
>> +mingw-w64-x86_64-make \
>> +mingw-w64-x86_64-lzo2 \
>> +mingw-w64-x86_64-libjpeg-turbo \
>> +mingw-w64-x86_64-pixman \
>> +mingw-w64-x86_64-libgcrypt \
>> +mingw-w64-x86_64-capstone \
>> +mingw-w64-x86_64-libpng \
>> +mingw-w64-x86_64-libssh \
>> +mingw-w64-x86_64-libxml2 \
>> +mingw-w64-x86_64-snappy \
>> +mingw-w64-x86_64-libusb \
>> +mingw-w64-x86_64-usbredir \
>> +mingw-w64-x86_64-libtasn1 \
>> +mingw-w64-x86_64-libnfs \
>> +mingw-w64-x86_64-nettle \
>> +mingw-w64-x86_64-cyrus-sasl \
>> +mingw-w64-x86_64-curl \
>> +mingw-w64-x86_64-gnutls \
>> +mingw-w64-x86_64-zstd \
>> +mingw-w64-x86_64-glib2

Great work! Having a CI for msys2/mingw-w64 is fantastic :)


ATB,

Mark.
罗勇刚(Yonggang Luo) Sept. 2, 2020, 6:56 p.m. UTC | #4
On Thu, Sep 3, 2020 at 2:55 AM Mark Cave-Ayland <
mark.cave-ayland@ilande.co.uk> wrote:

> On 02/09/2020 18:50, 罗勇刚(Yonggang Luo) wrote:
>
> > On Thu, Sep 3, 2020 at 1:30 AM Philippe Mathieu-Daudé <f4bug@amsat.org
> > <mailto:f4bug@amsat.org>> wrote:
> >
> >     On 9/2/20 7:00 PM, Yonggang Luo wrote:
> >     > ---
> >     >  .cirrus.yml                         | 23 ++++++++++++++++
> >     >  scripts/ci/windows/msys2_build.sh   | 35 ++++++++++++++++++++++++
> >     >  scripts/ci/windows/msys2_install.sh | 41
> +++++++++++++++++++++++++++++
> >     >  3 files changed, 99 insertions(+)
> >     >  create mode 100644 scripts/ci/windows/msys2_build.sh
> >     >  create mode 100644 scripts/ci/windows/msys2_install.sh
> >     >
> >     > diff --git a/.cirrus.yml b/.cirrus.yml
> >     > index f287d23c5b..d377c28412 100644
> >     > --- a/.cirrus.yml
> >     > +++ b/.cirrus.yml
> >     > @@ -40,3 +40,26 @@ macos_xcode_task:
> >     >      - ../configure --cc=clang || { cat config.log; exit 1; }
> >     >      - gmake -j$(sysctl -n hw.ncpu)
> >     >      - gmake check
> >     > +
> >     > +windows_msys2_task:
> >     > +  windows_container:
> >     > +    image: cirrusci/windowsservercore:cmake
> >     > +    os_version: 2019
> >     > +    cpu: 8
> >     > +    memory: 8G
> >     > +  env:
> >     > +    MSYS: winsymlinks:nativestrict
> >     > +    MSYSTEM: MINGW64
> >     > +    CHERE_INVOKING: 1
> >     > +  printenv_script: C:\tools\msys64\usr\bin\bash.exe -lc 'printenv'
> >     > +  install_script:
> >     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O
> >
> http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
> "
> >     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O
> >
> http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig
> "
> >     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && pacman
> -U
> >     --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
> >     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sy
> --noconfirm"
> >     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --needed
> --noconfirm -S
> >     bash pacman pacman-mirrors msys2-runtime"
> >     > +    - taskkill /F /IM gpg-agent.exe
> >     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm
> -Su"
> >     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "sh
> >     scripts/ci/windows/msys2_install.sh"
> >     > +  script:
> >     > +    C:\tools\msys64\usr\bin\bash.exe -lc "sh
> scripts/ci/windows/msys2_build.sh"
> >     > diff --git a/scripts/ci/windows/msys2_build.sh
> b/scripts/ci/windows/msys2_build.sh
> >     > new file mode 100644
> >     > index 0000000000..0363ef402a
> >     > --- /dev/null
> >     > +++ b/scripts/ci/windows/msys2_build.sh
> >     > @@ -0,0 +1,35 @@
> >     > +export QEMU_DIR=$PWD
> >     > +mkdir ../qemu-build
> >     > +cd ../qemu-build
> >     > +$QEMU_DIR/configure \
> >     > +  --python=python3 \
> >     > +  --cross-prefix=x86_64-w64-mingw32- \
> >
> >     Isn't the prefix 'x86_64-w64-mingw32-gcc-'?
> >
> >     > +  --enable-gtk --enable-sdl \
> >     > +  --enable-capstone=git \
> >     > +  --enable-stack-protector \
> >     > +  --ninja=ninja \
> >     > +  --enable-gnutls \
> >     > +  --enable-nettle \
> >     > +  --enable-vnc \
> >     > +  --enable-vnc-sasl \
> >     > +  --enable-vnc-jpeg \
> >     > +  --enable-vnc-png \
> >     > +  --enable-membarrier \
> >     > +  --enable-slirp=git \
> >     > +  --disable-kvm \
> >     > +  --enable-hax \
> >     > +  --enable-whpx \
> >     > +  --disable-spice \
> >     > +  --enable-lzo \
> >     > +  --enable-snappy \
> >     > +  --enable-bzip2 \
> >     > +  --enable-vdi \
> >     > +  --enable-qcow1 \
> >     > +  --enable-tools \
> >     > +  --enable-libusb \
> >     > +  --enable-usb-redir \
> >     > +  --disable-libnfs \
> >     > +  --enable-libssh \
> >     > +  --disable-pie
> >     > +make -j$NUMBER_OF_PROCESSORS
> >     > +# make -j$NUMBER_OF_PROCESSORS check
> >     > diff --git a/scripts/ci/windows/msys2_install.sh
> >     b/scripts/ci/windows/msys2_install.sh
> >     > new file mode 100644
> >     > index 0000000000..3a5392cd99
> >     > --- /dev/null
> >     > +++ b/scripts/ci/windows/msys2_install.sh
> >     > @@ -0,0 +1,41 @@
> >     > +pacman --noconfirm -S --needed \
> >     > +base-devel \
> >     > +git \
> >     > +mingw-w64-x86_64-python \
> >     > +mingw-w64-x86_64-python-setuptools \
> >     > +mingw-w64-x86_64-toolchain \
> >     > +mingw-w64-x86_64-SDL2 \
> >     > +mingw-w64-x86_64-SDL2_image \
> >     > +mingw-w64-x86_64-gtk3 \
> >     > +mingw-w64-x86_64-ninja \
> >     > +mingw-w64-x86_64-make \
> >     > +mingw-w64-x86_64-lzo2 \
> >     > +mingw-w64-x86_64-libjpeg-turbo \
> >     > +mingw-w64-x86_64-pixman \
> >     > +mingw-w64-x86_64-libgcrypt \
> >     > +mingw-w64-x86_64-capstone \
> >     > +mingw-w64-x86_64-libpng \
> >     > +mingw-w64-x86_64-libssh \
> >     > +mingw-w64-x86_64-libxml2 \
> >     > +mingw-w64-x86_64-snappy \
> >     > +mingw-w64-x86_64-libusb \
> >     > +mingw-w64-x86_64-usbredir \
> >     > +mingw-w64-x86_64-libtasn1 \
> >     > +mingw-w64-x86_64-libnfs \
> >     > +mingw-w64-x86_64-nettle \
> >     > +mingw-w64-x86_64-cyrus-sasl \
> >     > +mingw-w64-x86_64-curl \
> >     > +mingw-w64-x86_64-gnutls \
> >     > +mingw-w64-x86_64-zstd \
> >     > +mingw-w64-x86_64-glib2
> >     > +
> >     > +cd /mingw64/bin
> >     > +cp x86_64-w64-mingw32-gcc-ar.exe x86_64-w64-mingw32-ar.exe
> >     > +cp x86_64-w64-mingw32-gcc-ranlib.exe x86_64-w64-mingw32-ranlib.exe
> >     > +cp x86_64-w64-mingw32-gcc-nm.exe x86_64-w64-mingw32-nm.exe
> >     > +cp windres.exe x86_64-w64-mingw32-windres.exe
> >     > +cp strip.exe x86_64-w64-mingw32-strip.exe
> >     > +cp objcopy.exe x86_64-w64-mingw32-objcopy.exe
> >     > +cp ld x86_64-w64-mingw32-ld.exe
> >     > +cp as x86_64-w64-mingw32-as.exe
> >     > +cp sdl2-config x86_64-w64-mingw32-sdl2-config
> >
> >     Why is that needed?
> >
> >     Thanks,
> >
> >     Phil.
> >
> > Hi, I am looking for suggestion for building  with msys2, this is comes
> from wiki, if
> > you have better idea, then tell me.
> >
> > https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2
>
> FWIW I did a clean install of MSYS2 after the meson changes were merged
> and it seems
> to make things a bit simpler for Windows. Once Paolo's latest PR has been
> applied you
> should be able to do the following (from my notes for PPC builds):
>
> # As per https://www.msys2.org/
> pacman -Syu
> pacman -Su
>
> # QEMU build environment
> pacman -S \
>   base-devel \
>   mingw-w64-x86_64-toolchain \
>   git \
>   mingw64/mingw-w64-x86_64-python3 \
>   mingw64/mingw-w64-x86_64-python-setuptools \
>   mingw64/mingw-w64-x86_64-ninja
>
> # Basic GTK/SDL build
> pacman -S \
>   mingw-w64-x86_64-glib2 \
>   mingw64/mingw-w64-x86_64-gtk3 \
>   mingw64/mingw-w64-x86_64-SDL2
>
> # Build
> ./configure --target-list="ppc-softmmu" --ninja=ninja
> make -j6
>
> That should be enough to get a basic working Windows build with GTK/SDL2
> UI, although
> I see you've added a lot more options.

I am trying to enable all possible feature on the CI for monitoring the
regression, at least from the compiling points of view

>


>
> ATB,
>
> Mark.
>
罗勇刚(Yonggang Luo) Sept. 2, 2020, 7:01 p.m. UTC | #5
>
>
> Yes indeed, it looks like a very comprehensive build :)  Note that with
> the meson
> build I no longer have to copy/rename toolchain exes compared to your
> .cirrus.yml
> file so maybe that issue is now fixed?
>
> That's not fixed, I am building a full build, so I will use any possible
toolchain, and you may not use it at all.

>
> ATB,
>
> Mark.
>
Philippe Mathieu-Daudé Sept. 2, 2020, 7:31 p.m. UTC | #6
On 9/2/20 7:42 PM, 罗勇刚(Yonggang Luo) wrote:
> 
> 
> On Thu, Sep 3, 2020 at 1:30 AM Philippe Mathieu-Daudé <f4bug@amsat.org
> <mailto:f4bug@amsat.org>> wrote:
> 
>     On 9/2/20 7:00 PM, Yonggang Luo wrote:
>     > ---
>     >  .cirrus.yml                         | 23 ++++++++++++++++
>     >  scripts/ci/windows/msys2_build.sh   | 35 ++++++++++++++++++++++++
>     >  scripts/ci/windows/msys2_install.sh | 41
>     +++++++++++++++++++++++++++++
>     >  3 files changed, 99 insertions(+)
>     >  create mode 100644 scripts/ci/windows/msys2_build.sh
>     >  create mode 100644 scripts/ci/windows/msys2_install.sh
>     >
>     > diff --git a/.cirrus.yml b/.cirrus.yml
>     > index f287d23c5b..d377c28412 100644
>     > --- a/.cirrus.yml
>     > +++ b/.cirrus.yml
>     > @@ -40,3 +40,26 @@ macos_xcode_task:
>     >      - ../configure --cc=clang || { cat config.log; exit 1; }
>     >      - gmake -j$(sysctl -n hw.ncpu)
>     >      - gmake check
>     > +
>     > +windows_msys2_task:
>     > +  windows_container:
>     > +    image: cirrusci/windowsservercore:cmake
>     > +    os_version: 2019
>     > +    cpu: 8
>     > +    memory: 8G
>     > +  env:
>     > +    MSYS: winsymlinks:nativestrict
>     > +    MSYSTEM: MINGW64
>     > +    CHERE_INVOKING: 1
>     > +  printenv_script: C:\tools\msys64\usr\bin\bash.exe -lc 'printenv'
>     > +  install_script:
>     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl
>     -O
>     http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
>     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl
>     -O
>     http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig"
>     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && pacman
>     -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
>     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sy --noconfirm"
>     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --needed
>     --noconfirm -S bash pacman pacman-mirrors msys2-runtime"
>     > +    - taskkill /F /IM gpg-agent.exe
>     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Su"
>     > +    - C:\tools\msys64\usr\bin\bash.exe -lc "sh
>     scripts/ci/windows/msys2_install.sh"
>     > +  script:
>     > +    C:\tools\msys64\usr\bin\bash.exe -lc "sh
>     scripts/ci/windows/msys2_build.sh"
>     > diff --git a/scripts/ci/windows/msys2_build.sh
>     b/scripts/ci/windows/msys2_build.sh
>     > new file mode 100644
>     > index 0000000000..0363ef402a
>     > --- /dev/null
>     > +++ b/scripts/ci/windows/msys2_build.sh
>     > @@ -0,0 +1,35 @@
>     > +export QEMU_DIR=$PWD
>     > +mkdir ../qemu-build
>     > +cd ../qemu-build
>     > +$QEMU_DIR/configure \
>     > +  --python=python3 \
>     > +  --cross-prefix=x86_64-w64-mingw32- \
> 
>     Isn't the prefix 'x86_64-w64-mingw32-gcc-'?
> 
> No, because of this:
> ```
> C:\CI-Tools\msys64\mingw64\bin>dir x86_64-w64-mingw32*
>  驱动器 C 中的卷是 系统
>  卷的序列号是 CAD5-8E95
> 
>  C:\CI-Tools\msys64\mingw64\bin 的目录
> 
> 2018/01/17  16:54            36,022 x86_64-w64-mingw32-agrep.exe
> 2020/09/02  05:06            67,861 x86_64-w64-mingw32-ar.exe
> 2020/09/02  05:06         2,872,225 x86_64-w64-mingw32-as.exe
> 2020/07/24  15:41         2,208,014 x86_64-w64-mingw32-c++.exe
> 2020/02/17  19:50           489,984 x86_64-w64-mingw32-captoinfo.exe
> 2020/02/17  19:50           348,160 x86_64-w64-mingw32-clear.exe
> 2020/06/26  17:21            64,176 x86_64-w64-mingw32-deflatehd.exe
> 2020/07/24  15:41         2,208,014 x86_64-w64-mingw32-g++.exe
> 2020/07/24  15:41         2,205,454 x86_64-w64-mingw32-gcc-10.2.0.exe
> 2020/07/24  15:41            67,861 x86_64-w64-mingw32-gcc-ar.exe
> 2020/07/24  15:41            67,861 x86_64-w64-mingw32-gcc-nm.exe
> 2020/07/24  15:41            67,861 x86_64-w64-mingw32-gcc-ranlib.exe
> 2020/07/24  15:41         2,205,454 x86_64-w64-mingw32-gcc.exe
> 2020/07/24  15:41         2,208,014 x86_64-w64-mingw32-gfortran.exe
> 2020/06/26  17:21            59,734 x86_64-w64-mingw32-inflatehd.exe
> 2020/02/17  19:50           462,848 x86_64-w64-mingw32-infocmp.exe
> 2020/02/17  19:50           489,984 x86_64-w64-mingw32-infotocap.exe
> 2020/09/02  05:06         2,773,229 x86_64-w64-mingw32-ld.exe
> 2020/09/02  05:06            67,861 x86_64-w64-mingw32-nm.exe
> 2020/09/02  05:06         2,367,282 x86_64-w64-mingw32-objcopy.exe
> 2017/03/22  14:58           669,355 x86_64-w64-mingw32-pkg-config.exe
> 2020/09/02  05:06            67,861 x86_64-w64-mingw32-ranlib.exe
> 2020/02/17  19:50           356,352 x86_64-w64-mingw32-reset.exe
> 2020/09/02  05:06             1,444 x86_64-w64-mingw32-sdl2-config
> 2020/09/02  05:06         2,367,282 x86_64-w64-mingw32-strip.exe
> 2020/02/17  19:50           348,160 x86_64-w64-mingw32-tabs.exe
> 2020/02/17  19:50           489,984 x86_64-w64-mingw32-tic.exe
> 2020/02/17  19:50           409,600 x86_64-w64-mingw32-toe.exe
> 2020/02/17  19:50           355,328 x86_64-w64-mingw32-tput.exe
> 2020/02/17  19:50           356,352 x86_64-w64-mingw32-tset.exe
> 2020/09/02  05:06         2,344,638 x86_64-w64-mingw32-windres.exe

So 'x86_64-w64-mingw32-' it is.

>               31 个文件     29,104,255 字节
>                0 个目录 203,338,362,880 可用字节
> ```
> 
> 
>     > +  --enable-gtk --enable-sdl \
>     > +  --enable-capstone=git \
>     > +  --enable-stack-protector \
>     > +  --ninja=ninja \
>     > +  --enable-gnutls \
>     > +  --enable-nettle \
>     > +  --enable-vnc \
>     > +  --enable-vnc-sasl \
>     > +  --enable-vnc-jpeg \
>     > +  --enable-vnc-png \
>     > +  --enable-membarrier \
>     > +  --enable-slirp=git \
>     > +  --disable-kvm \
>     > +  --enable-hax \
>     > +  --enable-whpx \
>     > +  --disable-spice \
>     > +  --enable-lzo \
>     > +  --enable-snappy \
>     > +  --enable-bzip2 \
>     > +  --enable-vdi \
>     > +  --enable-qcow1 \
>     > +  --enable-tools \
>     > +  --enable-libusb \
>     > +  --enable-usb-redir \
>     > +  --disable-libnfs \
>     > +  --enable-libssh \
>     > +  --disable-pie
>     > +make -j$NUMBER_OF_PROCESSORS
>     > +# make -j$NUMBER_OF_PROCESSORS check
>     > diff --git a/scripts/ci/windows/msys2_install.sh
>     b/scripts/ci/windows/msys2_install.sh
>     > new file mode 100644
>     > index 0000000000..3a5392cd99
>     > --- /dev/null
>     > +++ b/scripts/ci/windows/msys2_install.sh
>     > @@ -0,0 +1,41 @@
>     > +pacman --noconfirm -S --needed \
>     > +base-devel \
>     > +git \
>     > +mingw-w64-x86_64-python \
>     > +mingw-w64-x86_64-python-setuptools \
>     > +mingw-w64-x86_64-toolchain \
>     > +mingw-w64-x86_64-SDL2 \
>     > +mingw-w64-x86_64-SDL2_image \
>     > +mingw-w64-x86_64-gtk3 \
>     > +mingw-w64-x86_64-ninja \
>     > +mingw-w64-x86_64-make \
>     > +mingw-w64-x86_64-lzo2 \
>     > +mingw-w64-x86_64-libjpeg-turbo \
>     > +mingw-w64-x86_64-pixman \
>     > +mingw-w64-x86_64-libgcrypt \
>     > +mingw-w64-x86_64-capstone \
>     > +mingw-w64-x86_64-libpng \
>     > +mingw-w64-x86_64-libssh \
>     > +mingw-w64-x86_64-libxml2 \
>     > +mingw-w64-x86_64-snappy \
>     > +mingw-w64-x86_64-libusb \
>     > +mingw-w64-x86_64-usbredir \
>     > +mingw-w64-x86_64-libtasn1 \
>     > +mingw-w64-x86_64-libnfs \
>     > +mingw-w64-x86_64-nettle \
>     > +mingw-w64-x86_64-cyrus-sasl \
>     > +mingw-w64-x86_64-curl \
>     > +mingw-w64-x86_64-gnutls \
>     > +mingw-w64-x86_64-zstd \
>     > +mingw-w64-x86_64-glib2
>     > +
>     > +cd /mingw64/bin
>     > +cp x86_64-w64-mingw32-gcc-ar.exe x86_64-w64-mingw32-ar.exe
>     > +cp x86_64-w64-mingw32-gcc-ranlib.exe x86_64-w64-mingw32-ranlib.exe
>     > +cp x86_64-w64-mingw32-gcc-nm.exe x86_64-w64-mingw32-nm.exe
>     > +cp windres.exe x86_64-w64-mingw32-windres.exe
>     > +cp strip.exe x86_64-w64-mingw32-strip.exe
>     > +cp objcopy.exe x86_64-w64-mingw32-objcopy.exe
>     > +cp ld x86_64-w64-mingw32-ld.exe
>     > +cp as x86_64-w64-mingw32-as.exe
>     > +cp sdl2-config x86_64-w64-mingw32-sdl2-config
> 
>     Why is that needed?
> 
> Comes from configure 

I meant why do you need to copy? The toolchain installation path names
seem broken...

> ```
> 
> ar="${AR-${cross_prefix}ar}"
> as="${AS-${cross_prefix}as}"
> ccas="${CCAS-$cc}"
> cpp="${CPP-$cc -E}"
> objcopy="${OBJCOPY-${cross_prefix}objcopy}"
> ld="${LD-${cross_prefix}ld}"
> ranlib="${RANLIB-${cross_prefix}ranlib}"
> nm="${NM-${cross_prefix}nm}"
> strip="${STRIP-${cross_prefix}strip}"
> windres="${WINDRES-${cross_prefix}windres}"
> pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}"
> query_pkg_config() {
>     "${pkg_config_exe}" ${QEMU_PKG_CONFIG_FLAGS} "$@"
> }
> pkg_config=query_pkg_config
> sdl2_config="${SDL2_CONFIG-${cross_prefix}sdl2-config}"
> 
> # If the user hasn't specified ARFLAGS, default to 'rv', just as make does.
> ARFLAGS="${ARFLAGS-rv}"
> ```
> 
>     Thanks,
> 
>     Phil.
> 
> 
> 
> -- 
>          此致
> 礼
> 罗勇刚
> Yours
>     sincerely,
> Yonggang Luo
diff mbox series

Patch

diff --git a/.cirrus.yml b/.cirrus.yml
index f287d23c5b..d377c28412 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -40,3 +40,26 @@  macos_xcode_task:
     - ../configure --cc=clang || { cat config.log; exit 1; }
     - gmake -j$(sysctl -n hw.ncpu)
     - gmake check
+
+windows_msys2_task:
+  windows_container:
+    image: cirrusci/windowsservercore:cmake
+    os_version: 2019
+    cpu: 8
+    memory: 8G
+  env:
+    MSYS: winsymlinks:nativestrict
+    MSYSTEM: MINGW64
+    CHERE_INVOKING: 1
+  printenv_script: C:\tools\msys64\usr\bin\bash.exe -lc 'printenv'
+  install_script:
+    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
+    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig"
+    - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && pacman -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
+    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sy --noconfirm"
+    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --needed --noconfirm -S bash pacman pacman-mirrors msys2-runtime"
+    - taskkill /F /IM gpg-agent.exe
+    - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Su"
+    - C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2_install.sh"
+  script:
+    C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2_build.sh"
diff --git a/scripts/ci/windows/msys2_build.sh b/scripts/ci/windows/msys2_build.sh
new file mode 100644
index 0000000000..0363ef402a
--- /dev/null
+++ b/scripts/ci/windows/msys2_build.sh
@@ -0,0 +1,35 @@ 
+export QEMU_DIR=$PWD
+mkdir ../qemu-build
+cd ../qemu-build
+$QEMU_DIR/configure \
+  --python=python3 \
+  --cross-prefix=x86_64-w64-mingw32- \
+  --enable-gtk --enable-sdl \
+  --enable-capstone=git \
+  --enable-stack-protector \
+  --ninja=ninja \
+  --enable-gnutls \
+  --enable-nettle \
+  --enable-vnc \
+  --enable-vnc-sasl \
+  --enable-vnc-jpeg \
+  --enable-vnc-png \
+  --enable-membarrier \
+  --enable-slirp=git \
+  --disable-kvm \
+  --enable-hax \
+  --enable-whpx \
+  --disable-spice \
+  --enable-lzo \
+  --enable-snappy \
+  --enable-bzip2 \
+  --enable-vdi \
+  --enable-qcow1 \
+  --enable-tools \
+  --enable-libusb \
+  --enable-usb-redir \
+  --disable-libnfs \
+  --enable-libssh \
+  --disable-pie
+make -j$NUMBER_OF_PROCESSORS
+# make -j$NUMBER_OF_PROCESSORS check
diff --git a/scripts/ci/windows/msys2_install.sh b/scripts/ci/windows/msys2_install.sh
new file mode 100644
index 0000000000..3a5392cd99
--- /dev/null
+++ b/scripts/ci/windows/msys2_install.sh
@@ -0,0 +1,41 @@ 
+pacman --noconfirm -S --needed \
+base-devel \
+git \
+mingw-w64-x86_64-python \
+mingw-w64-x86_64-python-setuptools \
+mingw-w64-x86_64-toolchain \
+mingw-w64-x86_64-SDL2 \
+mingw-w64-x86_64-SDL2_image \
+mingw-w64-x86_64-gtk3 \
+mingw-w64-x86_64-ninja \
+mingw-w64-x86_64-make \
+mingw-w64-x86_64-lzo2 \
+mingw-w64-x86_64-libjpeg-turbo \
+mingw-w64-x86_64-pixman \
+mingw-w64-x86_64-libgcrypt \
+mingw-w64-x86_64-capstone \
+mingw-w64-x86_64-libpng \
+mingw-w64-x86_64-libssh \
+mingw-w64-x86_64-libxml2 \
+mingw-w64-x86_64-snappy \
+mingw-w64-x86_64-libusb \
+mingw-w64-x86_64-usbredir \
+mingw-w64-x86_64-libtasn1 \
+mingw-w64-x86_64-libnfs \
+mingw-w64-x86_64-nettle \
+mingw-w64-x86_64-cyrus-sasl \
+mingw-w64-x86_64-curl \
+mingw-w64-x86_64-gnutls \
+mingw-w64-x86_64-zstd \
+mingw-w64-x86_64-glib2
+
+cd /mingw64/bin
+cp x86_64-w64-mingw32-gcc-ar.exe x86_64-w64-mingw32-ar.exe
+cp x86_64-w64-mingw32-gcc-ranlib.exe x86_64-w64-mingw32-ranlib.exe
+cp x86_64-w64-mingw32-gcc-nm.exe x86_64-w64-mingw32-nm.exe
+cp windres.exe x86_64-w64-mingw32-windres.exe
+cp strip.exe x86_64-w64-mingw32-strip.exe
+cp objcopy.exe x86_64-w64-mingw32-objcopy.exe
+cp ld x86_64-w64-mingw32-ld.exe
+cp as x86_64-w64-mingw32-as.exe
+cp sdl2-config x86_64-w64-mingw32-sdl2-config