Message ID | 20200902170054.810-4-luoyonggang@gmail.com |
---|---|
State | New |
Headers | show |
Series | Green the msys2 CI make | expand |
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.
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
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.
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. >
> > > 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. >
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 --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