Message ID | 20200902170054.810-4-luoyonggang@gmail.com (mailing list archive) |
---|---|
State | New, archived |
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-'? > 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 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 ``` 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. >
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 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. 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. >
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.
> > > 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 02/09/2020 20:01, 罗勇刚(Yonggang Luo) wrote: > 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. Hmmm. I'd expect meson to detect the toolchain once and use it throughout the build, so perhaps this is still using some Makefile logic? I think Paolo's latest PR should help improve this. ATB, Mark.
On Thu, Sep 3, 2020 at 3:13 AM Mark Cave-Ayland < mark.cave-ayland@ilande.co.uk> wrote: > On 02/09/2020 20:01, 罗勇刚(Yonggang Luo) wrote: > > > 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. > > Hmmm. I'd expect meson to detect the toolchain once and use it throughout > the build, > so perhaps this is still using some Makefile logic? I think Paolo's latest > PR should > help improve this. > > Yeap, improved but not done, I think once configure are gone, then the tricky are gone > > 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
On Thu, Sep 3, 2020 at 3:31 AM Philippe Mathieu-Daudé <f4bug@amsat.org> wrote: > 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... > > The copy also comes from the Wiki, and I fond more broken things, so I copied more, maybe there are better way to do that. > > ``` > > > > 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