meson: pg_regress: Define a HOST_TUPLE sufficient to make resultmap work
authorAndres Freund <[email protected]>
Tue, 27 Sep 2022 19:01:35 +0000 (12:01 -0700)
committerAndres Freund <[email protected]>
Thu, 29 Sep 2022 01:48:19 +0000 (18:48 -0700)
This doesn't end up with a triple that's exactly the same as config.guess -
it'd be hard to achieve that and it doesn't seem required. We can't rely on
config.guess as we don't necessarily have a /bin/sh on windows, e.g., when
building on windows with msvc.

This isn't perfect, e.g., clang works on windows as well.  But I suspect we'd
need a bunch of other changes to make clang on windows work, and we haven't
supported it historically.

Discussion: http://postgr.es/m/20220928022724[email protected]

src/test/regress/meson.build

index fd8ee995b79bd2aa678ac019feff9d28c1446ae6..03de591b0c792ebe80b033053dcb214f9406b42c 100644 (file)
@@ -6,7 +6,16 @@ regress_sources = pg_regress_c + files(
   'pg_regress_main.c'
 )
 
-pg_regress_cflags = ['-DHOST_TUPLE="frak"', '-DSHELLPROG="/bin/sh"']
+# Need make up something roughly like x86_64-pc-mingw64. resultmap matches on
+# patterns like ".*-.*-mingw.*". We probably can do better, but for now just
+# replace 'gcc' with 'mingw' on windows.
+host_tuple_cc = cc.get_id()
+if host_system == 'windows' and host_tuple_cc == 'gcc'
+  host_tuple_cc = 'mingw'
+endif
+host_tuple = '@0@-@1@-@2@'.format(host_cpu, host_system, host_tuple_cc)
+
+pg_regress_cflags = ['-DHOST_TUPLE="@0@"'.format(host_tuple), '-DSHELLPROG="/bin/sh"']
 
 pg_regress = executable('pg_regress',
   regress_sources,