qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/6] ci: Install msys2 in a proper way refer to https://githu


From: Mark Cave-Ayland
Subject: Re: [PATCH 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
Date: Wed, 2 Sep 2020 20:00:05 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0

On 02/09/2020 19:56, 罗勇刚(Yonggang Luo) wrote:

> On Thu, Sep 3, 2020 at 2:55 AM Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk
> <mailto: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>
>     > <mailto: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 

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?


ATB,

Mark.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]