mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-28 08:26:14 +01:00
Merge branch 'fix-gmodule-macos' into 'master'
gmodule: use dl implementation on macOS Closes #1887 See merge request GNOME/glib!1091
This commit is contained in:
commit
031b3de2ea
@ -13,12 +13,12 @@ if host_system == 'windows'
|
||||
# dlopen() filepath must be of the form /path/libname.a(libname.so)
|
||||
elif host_system == 'aix'
|
||||
g_module_impl = 'G_MODULE_IMPL_AR'
|
||||
elif have_dlopen_dlsym
|
||||
g_module_impl = 'G_MODULE_IMPL_DL'
|
||||
# NSLinkModule (dyld) in system libraries (Darwin)
|
||||
elif cc.has_function('NSLinkModule')
|
||||
g_module_impl = 'G_MODULE_IMPL_DYLD'
|
||||
g_module_need_uscore = 1
|
||||
elif have_dlopen_dlsym
|
||||
g_module_impl = 'G_MODULE_IMPL_DL'
|
||||
endif
|
||||
|
||||
# additional checks for G_MODULE_IMPL_DL
|
||||
|
@ -44,9 +44,17 @@ tests = {
|
||||
'type-test' : {},
|
||||
'unicode-caseconv' : {},
|
||||
'unicode-encoding' : {},
|
||||
'module-test' : {
|
||||
'module-test-library' : {
|
||||
'dependencies' : [libgmodule_dep],
|
||||
'export_dynamic' : true,
|
||||
'source': 'module-test.c',
|
||||
'c_args': ['-DMODULE_TYPE="library"'],
|
||||
},
|
||||
'module-test-plugin' : {
|
||||
'dependencies' : [libgmodule_dep],
|
||||
'export_dynamic' : true,
|
||||
'source': 'module-test.c',
|
||||
'c_args': ['-DMODULE_TYPE="plugin"'],
|
||||
},
|
||||
'cxx-test' : {
|
||||
'source' : 'cxx-test.cpp',
|
||||
@ -87,11 +95,25 @@ if installed_tests_enabled
|
||||
)
|
||||
endif
|
||||
|
||||
module_suffix = []
|
||||
# Keep the autotools convention for shared module suffix because GModule
|
||||
# depends on it: https://gitlab.gnome.org/GNOME/glib/issues/520
|
||||
if ['darwin', 'ios'].contains(host_machine.system())
|
||||
module_suffix = 'so'
|
||||
endif
|
||||
|
||||
foreach module : ['moduletestplugin_a', 'moduletestplugin_b']
|
||||
shared_module(module, 'lib@0@.c'.format(module),
|
||||
shared_module(module + '_plugin', 'lib@0@.c'.format(module),
|
||||
dependencies : [libglib_dep, libgmodule_dep],
|
||||
install_dir : installed_tests_execdir,
|
||||
install : installed_tests_enabled
|
||||
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 : installed_tests_enabled,
|
||||
name_suffix : module_suffix
|
||||
)
|
||||
endforeach
|
||||
|
||||
|
@ -90,8 +90,8 @@ main (int argc,
|
||||
if (!g_module_supported ())
|
||||
g_error ("dynamic modules not supported");
|
||||
|
||||
plugin_a = g_test_build_filename (G_TEST_BUILT, MODULE_FILENAME_PREFIX "moduletestplugin_a", NULL);
|
||||
plugin_b = g_test_build_filename (G_TEST_BUILT, MODULE_FILENAME_PREFIX "moduletestplugin_b", NULL);
|
||||
plugin_a = g_test_build_filename (G_TEST_BUILT, MODULE_FILENAME_PREFIX "moduletestplugin_a_" MODULE_TYPE, NULL);
|
||||
plugin_b = g_test_build_filename (G_TEST_BUILT, MODULE_FILENAME_PREFIX "moduletestplugin_b_" MODULE_TYPE, NULL);
|
||||
|
||||
/* module handles */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user