qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [PULL v8 018/152] configure: generate Meson cross file
Date: Fri, 21 Aug 2020 06:21:15 -0400	[thread overview]
Message-ID: <20200821102329.29777-19-pbonzini@redhat.com> (raw)
In-Reply-To: <20200821102329.29777-1-pbonzini@redhat.com>

From: Marc-André Lureau <marcandre.lureau@redhat.com>

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure   | 72 ++++++++++++++++++++++++++++++++++++++++++++++-------
 meson.build |  7 +++++-
 2 files changed, 69 insertions(+), 10 deletions(-)

diff --git a/configure b/configure
index ce32c568f8..a82045352c 100755
--- a/configure
+++ b/configure
@@ -8626,21 +8626,75 @@ echo >> "$iotests_common_env"
 echo "export PYTHON='$python'" >> "$iotests_common_env"
 
 if test "$skip_meson" = no; then
+cross="config-meson.cross.new"
+meson_quote() {
+    echo "['$(echo $* | sed "s/ /','/g")']"
+}
+
+echo "# Automatically generated by configure - do not modify" > $cross
+echo "[properties]" >> $cross
+test -z "$cxx" && echo "link_language = 'c'" >> $cross
+echo "[binaries]" >> $cross
+echo "c = $(meson_quote $cc)" >> $cross
+test -n "$cxx" && echo "cpp = $(meson_quote $cxx)" >> $cross
+echo "ar = $(meson_quote $ar)" >> $cross
+echo "nm = $(meson_quote $nm)" >> $cross
+echo "pkgconfig = $(meson_quote $pkg_config_exe)" >> $cross
+echo "ranlib = $(meson_quote $ranlib)" >> $cross
+echo "strip = $(meson_quote $strip)" >> $cross
+echo "windres = $(meson_quote $windres)" >> $cross
+if test -n "$cross_prefix"; then
+    cross_arg="--cross-file config-meson.cross"
+    # Hack: Meson expects an absolute path for the *build* machine
+    # for the prefix, so add a slash in front of a Windows path that
+    # includes a drive letter.
+    #
+    # See https://github.com/mesonbuild/meson/issues/7577.
+    echo "[host_machine]" >> $cross
+    if test "$mingw32" = "yes" ; then
+        echo "system = 'windows'" >> $cross
+        case $prefix in
+            ?:*) pre_prefix=/ ;;
+        esac
+    fi
+    case "$ARCH" in
+        i386|x86_64)
+            echo "cpu_family = 'x86'" >> $cross
+            ;;
+        ppc64le)
+            echo "cpu_family = 'ppc64'" >> $cross
+            ;;
+        *)
+            echo "cpu_family = '$ARCH'" >> $cross
+            ;;
+    esac
+    echo "cpu = '$cpu'" >> $cross
+    if test "$bigendian" = "yes" ; then
+        echo "endian = 'big'" >> $cross
+    else
+        echo "endian = 'little'" >> $cross
+    fi
+else
+    cross_arg="--native-file config-meson.cross"
+fi
+mv $cross config-meson.cross
+
 rm -rf meson-private meson-info meson-logs
 NINJA=$PWD/ninjatool $meson setup \
-        --prefix "$prefix" \
-        --libdir "$libdir" \
-        --libexecdir "$libexecdir" \
-        --bindir "$bindir" \
-        --includedir "$includedir" \
-        --datadir "$datadir" \
-        --mandir "$mandir" \
-        --sysconfdir "$sysconfdir" \
-        --localstatedir "$local_statedir" \
+        --prefix "${pre_prefix}$prefix" \
+        --libdir "${pre_prefix}$libdir" \
+        --libexecdir "${pre_prefix}$libexecdir" \
+        --bindir "${pre_prefix}$bindir" \
+        --includedir "${pre_prefix}$includedir" \
+        --datadir "${pre_prefix}$datadir" \
+        --mandir "${pre_prefix}$mandir" \
+        --sysconfdir "${pre_prefix}$sysconfdir" \
+        --localstatedir "${pre_prefix}$local_statedir" \
         -Doptimization=$(if test "$debug" = yes; then echo 0; else echo 2; fi) \
         -Ddebug=$(if test "$debug_info" = yes; then echo true; else echo false; fi) \
         -Dwerror=$(if test "$werror" = yes; then echo true; else echo false; fi) \
         -Dstrip=$(if test "$strip_opt" = yes; then echo true; else echo false; fi) \
+        $cross_arg \
         "$PWD" "$source_path"
 
 if test "$?" -ne 0 ; then
diff --git a/meson.build b/meson.build
index 613983e464..5ad85a7314 100644
--- a/meson.build
+++ b/meson.build
@@ -15,7 +15,12 @@ add_project_link_arguments(config_host['QEMU_LDFLAGS'].split(),
 add_project_arguments(config_host['QEMU_INCLUDES'].split(),
                       language: ['c', 'cpp', 'objc'])
 
-add_languages('cpp', required: false, native: false)
+python = import('python').find_installation()
+
+link_language = meson.get_external_property('link_language', 'cpp')
+if link_language == 'cpp'
+  add_languages('cpp', required: true, native: false)
+endif
 if host_machine.system() == 'darwin'
   add_languages('objc', required: false, native: false)
 endif
-- 
2.26.2




  parent reply	other threads:[~2020-08-21 10:30 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-21 10:20 [PULL v8 000/152] Meson-based build system Paolo Bonzini
2020-08-21 10:20 ` [PULL v8 001/152] oss-fuzz/build: remove LIB_FUZZING_ENGINE Paolo Bonzini
2020-08-21 10:20 ` [PULL v8 002/152] optionrom: simplify Makefile Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 003/152] pc-bios/s390-ccw: do not use rules.mak Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 004/152] trace: switch position of headers to what Meson requires Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 005/152] meson: rename included C source files to .c.inc Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 006/152] meson: rename .inc.h files to .h.inc Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 007/152] build-sys hack: ensure target directory is there Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 008/152] tests/vm: do not pollute configure with --efi-aarch64 Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 009/152] tests/vm: check for Python YAML parser in the Makefile Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 010/152] tests/docker: add test script for static linux-user builds Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 011/152] nsis: use "make DESTDIR=" instead of "make prefix=" Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 012/152] configure: do not include $(...) variables in config-host.mak Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 013/152] configure: expand path variables for meson configure Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 014/152] configure: prepare CFLAGS/CXXFLAGS/LDFLAGS for Meson Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 015/152] tests/vm: include setuptools Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 016/152] configure: add support for pseudo-"in source tree" builds Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 017/152] configure: integrate Meson in the build system Paolo Bonzini
2020-08-21 10:21 ` Paolo Bonzini [this message]
2020-08-21 10:21 ` [PULL v8 019/152] build-sys hack: link with whole .fa archives Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 020/152] build-sys: add meson submodule Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 021/152] meson: move summary to meson.build Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 022/152] meson: enable pie Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 023/152] meson: use coverage option Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 024/152] meson: add sparse support Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 025/152] meson: add testsuite Makefile generator Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 026/152] libqemuutil, qapi, trace: convert to meson Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 027/152] meson: add remaining generated tcg trace helpers Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 028/152] meson: add version.o Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 029/152] contrib/libvhost-user: convert to Meson Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 030/152] tools/virtiofsd: " Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 031/152] contrib/vhost-user-blk: " Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 032/152] vhost-user-scsi: add compatibility for libiscsi 1.9.0 Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 033/152] contrib/vhost-user-scsi: convert to Meson Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 034/152] contrib/rdmacm-mux: " Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 035/152] contrib/vhost-user-input: convert to meson Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 036/152] contrib/vhost-user-gpu: " Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 037/152] contrib/ivshmem: " Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 038/152] contrib/elf2dmp: " Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 039/152] meson: add macos dependencies Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 040/152] meson: add solaris and Haiku libraries Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 041/152] meson: convert qemu-ga Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 042/152] meson: convert vss-win32 Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 043/152] meson: add msi generation Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 044/152] meson: convert dummy Windows qga/qemu-ga target Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 045/152] meson: add qemu-bridge-helper Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 046/152] meson: add qemu-keymap Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 047/152] meson: add qemu-edid Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 048/152] meson: add virtfs-proxy-helper Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 049/152] meson: keymap-gen Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 050/152] meson: generate qemu-version.h Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 051/152] meson: generate shader headers Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 052/152] meson: generate hxtool files Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 053/152] meson: handle edk2 bios and descriptors Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 054/152] meson: convert check-decodetree Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 055/152] meson: convert tests/fp and check-softfloat Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 056/152] meson: convert check-qapi-schema Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 057/152] meson: convert qom directory to Meson (tools part) Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 058/152] meson: convert authz directory to Meson Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 059/152] meson: convert crypto " Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 060/152] meson: convert io " Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 061/152] meson: convert target/s390x/gen-features.h Paolo Bonzini
2020-08-21 10:21 ` [PULL v8 062/152] meson: infrastructure for building emulators Paolo Bonzini
2020-11-03 13:39   ` Philippe Mathieu-Daudé
2020-11-03 14:19     ` 罗勇刚(Yonggang Luo)
2020-11-03 14:25       ` Paolo Bonzini
2020-11-03 14:27         ` 罗勇刚(Yonggang Luo)
2020-08-21 10:22 ` [PULL v8 063/152] meson: add modules infrastructure Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 064/152] meson: convert chardev directory to Meson (tools part) Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 065/152] meson: convert block Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 066/152] meson: qemu-{img,io,nbd} Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 067/152] meson: qemu-pr-helper Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 068/152] configure, Makefile; remove TOOLS and HELPERS-y variable Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 069/152] meson: convert chardev directory to Meson (emulator part) Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 070/152] meson: convert tests/qtest to meson Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 071/152] meson: convert audio directory to Meson Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 072/152] meson: convert ui " Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 073/152] meson: convert root " Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 074/152] meson: convert most of softmmu/ Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 075/152] meson: convert trace/ Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 076/152] meson: convert dump/ Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 077/152] meson: convert common QMP bits for qemu and qemu-storage-daemon Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 078/152] meson: convert qemu-storage-daemon Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 079/152] meson: convert replay directory to Meson Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 080/152] meson: convert migration " Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 081/152] meson: convert net " Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 082/152] meson: convert backends " Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 083/152] meson: convert fsdev/ Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 084/152] meson: convert disas directory to Meson Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 085/152] meson: convert qapi-specific to meson Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 086/152] meson: convert hw/xen Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 087/152] meson: convert hw/core Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 088/152] meson: convert hw/semihosting Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 089/152] meson: convert hw/nubus Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 090/152] meson: convert hw/smbios Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 091/152] meson: convert hw/mem Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 092/152] meson: convert hw/watchdog Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 093/152] meson: convert hw/virtio Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 094/152] meson: convert hw/vfio Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 095/152] meson: convert hw/usb Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 096/152] meson: convert hw/tpm Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 097/152] meson: convert hw/timer Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 098/152] meson: convert hw/rtc Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 099/152] meson: convert hw/ssi Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 100/152] meson: convert hw/sd Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 101/152] meson: convert hw/scsi Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 102/152] meson: convert hw/pcmcia Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 103/152] meson: convert hw/pci-host Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 104/152] meson: convert hw/pci-bridge Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 105/152] meson: convert hw/pci Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 106/152] meson: convert hw/nvram Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 107/152] meson: convert hw/rdma Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 108/152] meson: convert hw/net Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 109/152] meson: convert hw/misc Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 110/152] meson: convert hw/isa Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 111/152] meson: convert hw/ipmi Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 112/152] meson: convert hw/ipack Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 113/152] meson: convert hw/intc Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 114/152] meson: convert hw/input Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 115/152] meson: convert hw/ide Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 116/152] meson: convert hw/i2c Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 117/152] meson: convert hw/hyperv Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 118/152] meson: convert hw/gpio Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 119/152] meson: convert hw/dma Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 120/152] meson: convert hw/display Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 121/152] meson: convert hw/cpu Paolo Bonzini
2020-08-21 10:22 ` [PULL v8 122/152] meson: convert hw/char Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 123/152] meson: convert hw/block Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 124/152] meson: convert hw/audio Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 125/152] meson: convert hw/adc Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 126/152] meson: convert hw/acpi Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 127/152] meson: convert hw/9pfs, cleanup Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 128/152] meson: convert hw/arch* Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 129/152] meson: target Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 130/152] meson: accel Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 131/152] meson: linux-user Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 132/152] meson: bsd-user Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 133/152] meson: cpu-emu Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 134/152] meson: plugins Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 135/152] meson: link emulators without Makefile.target Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 136/152] configure: place compatibility symlinks in target directories Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 137/152] meson: convert systemtap files Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 138/152] rules.mak: remove version.o Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 139/152] remove Makefile.target Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 140/152] meson: sphinx-build Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 141/152] docs: automatically track manual dependencies Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 142/152] meson: build texi doc Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 143/152] meson: convert check-block Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 144/152] rules.mak: drop unneeded macros Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 145/152] meson: replace create-config with meson configure_file Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 146/152] meson: convert sample plugins Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 147/152] meson: move SDL and SDL-image detection to meson Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 148/152] meson: convert VNC and dependent libraries " Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 149/152] meson: convert po/ Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 150/152] meson: avoid unstable module warning with Meson 0.56.0 or newer Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 151/152] meson: update build-system documentation Paolo Bonzini
2020-08-21 10:23 ` [PULL v8 152/152] docs: convert build system documentation to rST Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200821102329.29777-19-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).