[glib: 1/2] tests: skip shared libs if default_library=static




commit 1dc8d69edb11a9e3f3ecba5486c8e7520c0b6f0e
Author: Alyssa Ross <hi alyssa is>
Date:   Tue Aug 23 13:13:44 2022 +0000

    tests: skip shared libs if default_library=static
    
    Otherwise, the build will fail when the toolchain is static-only, even
    with -Ddefault_library=static.  I talked to a Meson developer in their
    IRC channel, who told me that the correct fix was to ensure that
    shared_library is only used if default_library != static.

 gio/tests/meson.build     | 45 +++++++++++++++++++++++++--------------------
 glib/tests/meson.build    |  2 +-
 gmodule/tests/meson.build | 34 ++++++++++++++++++----------------
 3 files changed, 44 insertions(+), 37 deletions(-)
---
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index 92e09a494b..e7fa812c45 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -227,7 +227,7 @@ if host_machine.system() != 'windows'
   }
 
   # LD_PRELOAD modules don't work so well with AddressSanitizer
-  if have_rtld_next and get_option('b_sanitize') == 'none'
+  if have_rtld_next and get_option('default_library') != 'static' and get_option('b_sanitize') == 'none'
     gio_tests += {
       'gsocketclient-slow' : {
         'depends' : [
@@ -656,25 +656,27 @@ if meson.can_run_host_binaries()
 
   compiler_type = '--compiler=@0@'.format(cc.get_id())
 
-  plugin_resources_c = custom_target('plugin-resources.c',
-    input : 'test4.gresource.xml',
-    output : 'plugin-resources.c',
-    command : [glib_compile_resources,
-               compiler_type,
-               '--target=@OUTPUT@',
-               '--sourcedir=' + meson.current_source_dir(),
-               '--internal',
-               '--generate-source',
-               '--c-name', '_g_plugin',
-               '@INPUT@'])
+  if get_option('default_library') != 'static'
+    plugin_resources_c = custom_target('plugin-resources.c',
+      input : 'test4.gresource.xml',
+      output : 'plugin-resources.c',
+      command : [glib_compile_resources,
+                 compiler_type,
+                 '--target=@OUTPUT@',
+                 '--sourcedir=' + meson.current_source_dir(),
+                 '--internal',
+                 '--generate-source',
+                 '--c-name', '_g_plugin',
+                 '@INPUT@'])
 
-  shared_module('resourceplugin', 'resourceplugin.c', plugin_resources_c,
-    link_args : export_dynamic_ldflags,
-    dependencies : common_gio_tests_deps,
-    install_dir : installed_tests_execdir,
-    install_tag : 'tests',
-    install : installed_tests_enabled
-  )
+    shared_module('resourceplugin', 'resourceplugin.c', plugin_resources_c,
+      link_args : export_dynamic_ldflags,
+      dependencies : common_gio_tests_deps,
+      install_dir : installed_tests_execdir,
+      install_tag : 'tests',
+      install : installed_tests_enabled
+    )
+  endif
 
   # referenced by test2.gresource.xml
   big_test_resource = custom_target(
@@ -976,4 +978,7 @@ if installed_tests_enabled
 endif
 
 subdir('services')
-subdir('modules')
+
+if get_option('default_library') != 'static'
+  subdir('modules')
+endif
diff --git a/glib/tests/meson.build b/glib/tests/meson.build
index e8f637445b..db01b54b48 100644
--- a/glib/tests/meson.build
+++ b/glib/tests/meson.build
@@ -204,7 +204,7 @@ else
     'include' : {},
     'unix' : {},
   }
-  if have_rtld_next
+  if have_rtld_next and get_option('default_library') != 'static'
     glib_tests += {
       'gutils-user-database' : {
         'depends' : [
diff --git a/gmodule/tests/meson.build b/gmodule/tests/meson.build
index db7232b497..3968c43267 100644
--- a/gmodule/tests/meson.build
+++ b/gmodule/tests/meson.build
@@ -37,22 +37,24 @@ if ['darwin', 'ios'].contains(host_machine.system())
   module_suffix = 'so'
 endif
 
-foreach module : ['moduletestplugin_a', 'moduletestplugin_b']
-  shared_module(module + '_plugin', 'lib@0@.c'.format(module),
-    dependencies : [libglib_dep, libgmodule_dep],
-    install_dir : installed_tests_execdir,
-    install_tag : 'tests',
-    install : installed_tests_enabled,
-    name_suffix : module_suffix
-  )
-  shared_library(module + '_library', 'lib@0@.c'.format(module),
-    dependencies : [libglib_dep, libgmodule_dep],
-    install_dir : installed_tests_execdir,
-    install_tag : 'tests',
-    install : installed_tests_enabled,
-    name_suffix : module_suffix
-  )
-endforeach
+if get_option('default_library') != 'static'
+  foreach module : ['moduletestplugin_a', 'moduletestplugin_b']
+    shared_module(module + '_plugin', 'lib@0@.c'.format(module),
+      dependencies : [libglib_dep, libgmodule_dep],
+      install_dir : installed_tests_execdir,
+      install_tag : 'tests',
+      install : installed_tests_enabled,
+      name_suffix : module_suffix
+    )
+    shared_library(module + '_library', 'lib@0@.c'.format(module),
+      dependencies : [libglib_dep, libgmodule_dep],
+      install_dir : installed_tests_execdir,
+      install_tag : 'tests',
+      install : installed_tests_enabled,
+      name_suffix : module_suffix
+    )
+  endforeach
+endif
 
 test_env = environment()
 test_env.set('G_TEST_SRCDIR', meson.current_source_dir())


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