[glib: 5/10] meson: Use meson.can_run_host_binaries()




commit 374be41433af5cdc41b664ceaa76e0b571ae5244
Author: Xavier Claessens <xavier claessens collabora com>
Date:   Tue Mar 8 09:48:36 2022 -0500

    meson: Use meson.can_run_host_binaries()
    
    It is not only shorter than `not meson.is_cross_build() or
    meson.has_exe_wrapper()` but also handle the case of cross compiling to
    a compatible arch such as building for i386 on an amd64.

 gio/gio-querymodules-wrapper.py                                | 9 ---------
 gio/meson.build                                                | 2 +-
 gio/tests/meson.build                                          | 2 +-
 glib/gnulib/gl_cv_cc_double_expbit0/meson.build                | 2 +-
 glib/gnulib/gl_cv_func_frexp_works/meson.build                 | 2 +-
 glib/gnulib/gl_cv_func_frexpl_works/meson.build                | 2 +-
 glib/gnulib/gl_cv_func_ldexpl_works/meson.build                | 2 +-
 glib/gnulib/gl_cv_func_printf_directive_a/meson.build          | 2 +-
 glib/gnulib/gl_cv_func_printf_directive_f/meson.build          | 2 +-
 glib/gnulib/gl_cv_func_printf_directive_ls/meson.build         | 2 +-
 glib/gnulib/gl_cv_func_printf_enomem/meson.build               | 2 +-
 glib/gnulib/gl_cv_func_printf_flag_grouping/meson.build        | 2 +-
 glib/gnulib/gl_cv_func_printf_flag_leftadjust/meson.build      | 2 +-
 glib/gnulib/gl_cv_func_printf_flag_zero/meson.build            | 2 +-
 glib/gnulib/gl_cv_func_printf_infinite/meson.build             | 2 +-
 glib/gnulib/gl_cv_func_printf_infinite_long_double/meson.build | 2 +-
 glib/gnulib/gl_cv_func_printf_long_double/meson.build          | 2 +-
 glib/gnulib/gl_cv_func_printf_precision/meson.build            | 2 +-
 glib/tests/meson.build                                         | 2 +-
 gmodule/meson.build                                            | 2 +-
 meson.build                                                    | 4 ++--
 21 files changed, 21 insertions(+), 30 deletions(-)
---
diff --git a/gio/meson.build b/gio/meson.build
index ccd4c417d2..8f9d9ba63d 100644
--- a/gio/meson.build
+++ b/gio/meson.build
@@ -978,7 +978,7 @@ glib_compile_resources = executable('glib-compile-resources',
 # Cannot override those programs in cross compilation case because they are
 # native executables that cannot be run on the build machine.
 # See https://gitlab.gnome.org/GNOME/glib/issues/1859.
-if not meson.is_cross_build()
+if not meson.can_run_host_binaries()
   meson.override_find_program('glib-compile-schemas', glib_compile_schemas)
   meson.override_find_program('glib-compile-resources', glib_compile_resources)
   meson.override_find_program('gio-querymodules', gio_querymodules)
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index 937c508851..c077e899ed 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -603,7 +603,7 @@ if installed_tests_enabled
   endforeach
 endif
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
 
   compiler_type = '--compiler=@0@'.format(cc.get_id())
 
diff --git a/glib/gnulib/gl_cv_cc_double_expbit0/meson.build b/glib/gnulib/gl_cv_cc_double_expbit0/meson.build
index a6573d805f..9ef27b0cc9 100644
--- a/glib/gnulib/gl_cv_cc_double_expbit0/meson.build
+++ b/glib/gnulib/gl_cv_cc_double_expbit0/meson.build
@@ -71,7 +71,7 @@ int main ()
 gl_cv_cc_double_expbit0_word = -1
 gl_cv_cc_double_expbit0_bit = -1
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(double_exponent_test,
       name : 'where to find the exponent in a \'double\'')
   if run_result.compiled() and run_result.returncode() == 0
diff --git a/glib/gnulib/gl_cv_func_frexp_works/meson.build b/glib/gnulib/gl_cv_func_frexp_works/meson.build
index 29f7bcabe2..7319c28d9e 100644
--- a/glib/gnulib/gl_cv_func_frexp_works/meson.build
+++ b/glib/gnulib/gl_cv_func_frexp_works/meson.build
@@ -76,7 +76,7 @@ int main()
   return result;
 }'''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(frexp_test,
       name : 'frexp works',
       dependencies : [libm])
diff --git a/glib/gnulib/gl_cv_func_frexpl_works/meson.build b/glib/gnulib/gl_cv_func_frexpl_works/meson.build
index 50e614e895..68af202959 100644
--- a/glib/gnulib/gl_cv_func_frexpl_works/meson.build
+++ b/glib/gnulib/gl_cv_func_frexpl_works/meson.build
@@ -104,7 +104,7 @@ int main()
 }
 '''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(frexpl_test,
       name : 'frexpl works',
       dependencies : [libm])
diff --git a/glib/gnulib/gl_cv_func_ldexpl_works/meson.build b/glib/gnulib/gl_cv_func_ldexpl_works/meson.build
index ae176cb8e0..3c95dc7d71 100644
--- a/glib/gnulib/gl_cv_func_ldexpl_works/meson.build
+++ b/glib/gnulib/gl_cv_func_ldexpl_works/meson.build
@@ -33,7 +33,7 @@ int main()
 }
 '''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(ldexpl_test,
       name : 'ldexpl works',
       dependencies : [libm])
diff --git a/glib/gnulib/gl_cv_func_printf_directive_a/meson.build 
b/glib/gnulib/gl_cv_func_printf_directive_a/meson.build
index 10e0f87262..3283c98d27 100644
--- a/glib/gnulib/gl_cv_func_printf_directive_a/meson.build
+++ b/glib/gnulib/gl_cv_func_printf_directive_a/meson.build
@@ -79,7 +79,7 @@ glibc_printf_directive_a_test = '''
 int main () { return 0; }
 '''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(printf_directive_a_test,
       name : 'printf supports the \'a\' and \'A\' directives')
   gl_cv_func_printf_directive_a = run_result.compiled() and run_result.returncode() == 0
diff --git a/glib/gnulib/gl_cv_func_printf_directive_f/meson.build 
b/glib/gnulib/gl_cv_func_printf_directive_f/meson.build
index b749fc0c63..afde78bf8d 100644
--- a/glib/gnulib/gl_cv_func_printf_directive_f/meson.build
+++ b/glib/gnulib/gl_cv_func_printf_directive_f/meson.build
@@ -29,7 +29,7 @@ int main ()
 }
 '''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(printf_directive_f_test,
       name : 'printf supports the \'F\' directive')
   gl_cv_func_printf_directive_f = run_result.compiled() and run_result.returncode() == 0
diff --git a/glib/gnulib/gl_cv_func_printf_directive_ls/meson.build 
b/glib/gnulib/gl_cv_func_printf_directive_ls/meson.build
index 35656b659e..a7486ff491 100644
--- a/glib/gnulib/gl_cv_func_printf_directive_ls/meson.build
+++ b/glib/gnulib/gl_cv_func_printf_directive_ls/meson.build
@@ -62,7 +62,7 @@ int main ()
 }
 '''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(printf_directive_ls_test,
       name : 'printf supports the \'ls\' directive')
   gl_cv_func_printf_directive_ls = run_result.compiled() and run_result.returncode() == 0
diff --git a/glib/gnulib/gl_cv_func_printf_enomem/meson.build 
b/glib/gnulib/gl_cv_func_printf_enomem/meson.build
index d0320e0a75..caa7124423 100644
--- a/glib/gnulib/gl_cv_func_printf_enomem/meson.build
+++ b/glib/gnulib/gl_cv_func_printf_enomem/meson.build
@@ -54,7 +54,7 @@ int main()
 }
 '''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(printf_enomem_test,
       name : 'printf survives out-of-memory conditions')
   gl_cv_func_printf_enomem = run_result.compiled() and run_result.returncode() == 0
diff --git a/glib/gnulib/gl_cv_func_printf_flag_grouping/meson.build 
b/glib/gnulib/gl_cv_func_printf_flag_grouping/meson.build
index 00229c9aaf..d30325bb70 100644
--- a/glib/gnulib/gl_cv_func_printf_flag_grouping/meson.build
+++ b/glib/gnulib/gl_cv_func_printf_flag_grouping/meson.build
@@ -20,7 +20,7 @@ int main ()
   return 0;
 }'''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(printf_flag_grouping_test,
       name : 'printf supports the grouping flag')
   gl_cv_func_printf_flag_grouping = run_result.compiled() and run_result.returncode() == 0
diff --git a/glib/gnulib/gl_cv_func_printf_flag_leftadjust/meson.build 
b/glib/gnulib/gl_cv_func_printf_flag_leftadjust/meson.build
index 26923ff6f4..07daa96361 100644
--- a/glib/gnulib/gl_cv_func_printf_flag_leftadjust/meson.build
+++ b/glib/gnulib/gl_cv_func_printf_flag_leftadjust/meson.build
@@ -22,7 +22,7 @@ int main ()
 }
 '''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(printf_flag_leftadjust_test,
       name : 'printf supports the left-adjust flag correctly')
   gl_cv_func_printf_flag_leftadjust = run_result.compiled() and run_result.returncode() == 0
diff --git a/glib/gnulib/gl_cv_func_printf_flag_zero/meson.build 
b/glib/gnulib/gl_cv_func_printf_flag_zero/meson.build
index 0fd1706671..2cb00a8e56 100644
--- a/glib/gnulib/gl_cv_func_printf_flag_zero/meson.build
+++ b/glib/gnulib/gl_cv_func_printf_flag_zero/meson.build
@@ -23,7 +23,7 @@ int main ()
 }
 '''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(printf_flag_zero_test,
       name : 'printf supports the zero flag correctly')
   gl_cv_func_printf_flag_zero = run_result.compiled() and run_result.returncode() == 0
diff --git a/glib/gnulib/gl_cv_func_printf_infinite/meson.build 
b/glib/gnulib/gl_cv_func_printf_infinite/meson.build
index 824eca8c00..9e30a382b8 100644
--- a/glib/gnulib/gl_cv_func_printf_infinite/meson.build
+++ b/glib/gnulib/gl_cv_func_printf_infinite/meson.build
@@ -77,7 +77,7 @@ int main ()
 }
 '''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(printf_infinite_double_test,
       name : 'printf supports infinite \'double\' arguments')
   gl_cv_func_printf_infinite = run_result.compiled() and run_result.returncode() == 0
diff --git a/glib/gnulib/gl_cv_func_printf_infinite_long_double/meson.build 
b/glib/gnulib/gl_cv_func_printf_infinite_long_double/meson.build
index 8b813b14df..64bab0fea0 100644
--- a/glib/gnulib/gl_cv_func_printf_infinite_long_double/meson.build
+++ b/glib/gnulib/gl_cv_func_printf_infinite_long_double/meson.build
@@ -167,7 +167,7 @@ int main ()
 '''
 
 if gl_cv_func_printf_long_double
-  if not meson.is_cross_build() or meson.has_exe_wrapper()
+  if meson.can_run_host_binaries()
     run_result = cc.run(printf_infinite_long_double_test,
         name : 'printf supports infinite \'long double\' arguments')
     gl_cv_func_printf_infinite_long_double = (run_result.compiled() and run_result.returncode() == 0)
diff --git a/glib/gnulib/gl_cv_func_printf_long_double/meson.build 
b/glib/gnulib/gl_cv_func_printf_long_double/meson.build
index bd68fb3774..3d0e019347 100644
--- a/glib/gnulib/gl_cv_func_printf_long_double/meson.build
+++ b/glib/gnulib/gl_cv_func_printf_long_double/meson.build
@@ -30,7 +30,7 @@ int main ()
 }
 '''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(printf_long_double_test,
       name : 'printf supports \'long double\' arguments')
   gl_cv_func_printf_long_double = run_result.compiled() and run_result.returncode() == 0
diff --git a/glib/gnulib/gl_cv_func_printf_precision/meson.build 
b/glib/gnulib/gl_cv_func_printf_precision/meson.build
index 6f7ef4e3d7..35290c52ff 100644
--- a/glib/gnulib/gl_cv_func_printf_precision/meson.build
+++ b/glib/gnulib/gl_cv_func_printf_precision/meson.build
@@ -37,7 +37,7 @@ int main ()
 }
 '''
 
-if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.can_run_host_binaries()
   run_result = cc.run(printf_precision_test,
       name : 'printf supports large precisions')
   gl_cv_func_printf_precision = run_result.compiled() and run_result.returncode() == 0
diff --git a/glib/tests/meson.build b/glib/tests/meson.build
index 6f2752cb66..f2be776e59 100644
--- a/glib/tests/meson.build
+++ b/glib/tests/meson.build
@@ -315,7 +315,7 @@ executable('testing-helper', 'testing-helper.c',
 )
 
 # some testing of gtester functionality
-if not meson.is_cross_build() and host_system != 'windows'
+if meson.can_run_host_binaries() and host_system != 'windows'
   xmllint = find_program('xmllint', required: false)
   if xmllint.found()
     tmpsample_xml = custom_target('tmpsample.xml',
diff --git a/gmodule/meson.build b/gmodule/meson.build
index 7a18d88686..f34be805c1 100644
--- a/gmodule/meson.build
+++ b/gmodule/meson.build
@@ -25,7 +25,7 @@ if g_module_impl == 'G_MODULE_IMPL_DL'
   if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl'
     message('Building for MSVC: assuming that symbols are prefixed with underscore')
     g_module_need_uscore = 1
-  elif meson.has_exe_wrapper()
+  elif meson.can_run_host_binaries()
     # FIXME: communicate result via stdout instead of return value, so non-0 return is not printed in bold 
red
     rres = cc.run(dlopen_dlsym_test_code,
                   dependencies : libdl_dep,
diff --git a/meson.build b/meson.build
index c88ef8c970..ef4f5d86d1 100644
--- a/meson.build
+++ b/meson.build
@@ -12,7 +12,7 @@ project('glib', 'c', 'cpp',
 cc = meson.get_compiler('c')
 cxx = meson.get_compiler('cpp')
 
-cc_can_run = not meson.is_cross_build() or meson.has_exe_wrapper()
+cc_can_run = meson.can_run_host_binaries()
 
 if cc.get_argument_syntax() == 'msvc'
   # Ignore several spurious warnings for things glib does very commonly
@@ -100,7 +100,7 @@ installed_tests_template = files('template.test.in')
 installed_tests_template_tap = files('template-tap.test.in')
 
 # Don’t build the tests unless we can run them (either natively, in an exe wrapper, or by installing them 
for later use)
-build_tests = get_option('tests') and (not meson.is_cross_build() or (meson.is_cross_build() and 
meson.has_exe_wrapper()) or installed_tests_enabled)
+build_tests = get_option('tests') and (meson.can_run_host_binaries() or installed_tests_enabled)
 
 add_project_arguments('-D_GNU_SOURCE', language: 'c')
 


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