| project('gir link order', 'c') |
| |
| if not dependency('glib-2.0', required : false).found() or not find_program('g-ir-scanner', required: false).found() |
| error('MESON_SKIP_TEST glib not found.') |
| endif |
| |
| gnome = import('gnome') |
| glib = dependency('glib-2.0') |
| gobject = dependency('gobject-2.0') |
| |
| # get-prgname is a shared library which uses a function from glib-2.0. It is |
| # used to introduce external -L flags which may cause -L order problems. |
| subdir('get-prgname') |
| |
| # fake-gthread is a shared library which has the same name as gthread-2.0 from |
| # GLib. This is used to simulate the case where an older or unrelated version |
| # of a library is already installed on the system. Our meson sample library |
| # defined below uses a function from fake-gthread. If meson messes up -L order, |
| # the linker will find libgthread-2.0.so installed on the system and fail to |
| # find the symbol our meson sample library uses. |
| subdir('fake-gthread') |
| |
| meson_sample_sources = ['meson-sample.c', 'meson-sample.h'] |
| meson_sample_lib = shared_library( |
| 'sample', |
| sources : meson_sample_sources, |
| dependencies : [gobject, get_prgname, fake_gthread], |
| install : false, |
| ) |
| |
| gnome.generate_gir( |
| meson_sample_lib, |
| sources : meson_sample_sources, |
| nsversion : '1.0', |
| namespace : 'Meson', |
| symbol_prefix : 'meson', |
| identifier_prefix : 'Meson', |
| includes : ['GObject-2.0'], |
| install : false, |
| build_by_default: true, |
| ) |