2 '-DG_LOG_DOMAIN="GLib-GIO"',
4 '-DGIO_MODULE_DIR="@0@"'.format(glib_giomodulesdir),
7 gio_c_args += glib_hidden_visibility_args
9 # FIXME: Install empty glib_giomodulesdir
11 gnetworking_h_conf = configuration_data()
13 gnetworking_h_wspiapi_include = ''
14 gnetworking_h_nameser_compat_include = ''
16 if host_system == 'windows'
17 # <wspiapi.h> in the Windows SDK and in mingw-w64 has wrappers for
18 # inline workarounds for getaddrinfo, getnameinfo and freeaddrinfo if
19 # they aren't present at run-time (on Windows 2000).
20 gnetworking_h_wspiapi_include = '#include <wspiapi.h>'
21 elif not host_system.contains('android')
22 # Don't check for C_IN on Android since it does not define it in public
23 # headers, we define it ourselves wherever necessary
24 if not cc.compiles('''#include <sys/types.h>
25 #include <arpa/nameser.h>
26 int qclass = C_IN;''',
27 name : 'C_IN in public headers (no arpa/nameser_compat.h needed)')
28 if cc.compiles('''#include <sys/types.h>
29 #include <arpa/nameser.h>
30 #include <arpa/nameser_compat.h>
31 int qclass = C_IN;''',
32 name : 'arpa/nameser_compat.h needed for C_IN')
33 gnetworking_h_nameser_compat_include = '#include <arpa/nameser_compat.h>'
35 error('Could not find required includes for ARPA C_IN')
42 if host_system != 'windows'
44 res_query_test = '''#include <resolv.h>
45 int main (int argc, char ** argv) {
46 return res_query("test", 0, 0, (void *)0, 0);
48 res_query_test_full = '''#include <sys/types.h>
49 #include <netinet/in.h>
50 #include <arpa/nameser.h>
52 if not cc.links(res_query_test_full, name : 'res_query()')
53 if cc.links(res_query_test_full, args : '-lresolv', name : 'res_query() in -lresolv')
54 network_libs += [ cc.find_library('resolv') ]
55 network_args += [ '-lresolv' ]
56 elif cc.links(res_query_test, args : '-lbind', name : 'res_query() in -lbind')
57 network_libs += [ cc.find_library('bind') ]
58 network_args += [ '-lbind' ]
60 error('Could not find res_query()')
65 socket_test = '''#include <sys/types.h>
66 #include <sys/socket.h>
67 int main (int argc, char ** argv) {
68 return socket(1, 2, 3);
70 if not cc.links(socket_test, name : 'socket()')
71 if cc.links(socket_test, args : '-lsocket', name : 'socket() in -lsocket')
72 network_libs += [ cc.find_library('socket') ]
73 network_args += [ '-lsocket' ]
75 error('Could not find socket()')
80 if cc.links('''#include <sys/types.h>
81 #include <netinet/in.h>
82 #include <arpa/nameser.h>
84 int main (int argc, char ** argv) {
86 }''', args : network_args, name : 'res_init()')
87 glib_conf.set('HAVE_RES_INIT', 1)
91 if cc.links('''#include <sys/types.h>
92 #include <netinet/in.h>
93 #include <arpa/nameser.h>
95 int main (int argc, char ** argv) {
96 struct __res_state res;
99 }''', args : network_args, name : 'res_nclose()')
100 glib_conf.set('HAVE_RES_NCLOSE', 1)
104 if cc.links('''#include <sys/types.h>
105 #include <netinet/in.h>
106 #include <arpa/nameser.h>
108 int main (int argc, char ** argv) {
109 struct __res_state res;
112 }''', args : network_args, name : 'res_ndestroy()')
113 glib_conf.set('HAVE_RES_NDESTROY', 1)
117 if cc.links('''#include <sys/types.h>
118 #include <netinet/in.h>
119 #include <arpa/nameser.h>
121 int main (int argc, char ** argv) {
122 struct __res_state res;
123 return res_ninit(&res);
124 }''', args : network_args, name : 'res_ninit()')
125 glib_conf.set('HAVE_RES_NINIT', 1)
129 if cc.links('''#include <sys/types.h>
130 #include <netinet/in.h>
131 #include <arpa/nameser.h>
133 int main (int argc, char ** argv) {
134 struct __res_state res;
135 return res_nquery(&res, "test", 0, 0, (void *)0, 0);
136 }''', args : network_args, name : 'res_nquery()')
137 glib_conf.set('HAVE_RES_NQUERY', 1)
140 if cc.has_type('struct ip_mreqn', prefix : '#include <netinet/in.h>')
141 glib_conf.set('HAVE_IP_MREQN', 1)
144 if cc.compiles('''#include <sys/ioctl.h>
146 int main (int argc, char ** argv) {
148 ioctl(0, SIOCGIFADDR, &ifr);
151 name : 'ioctl with request SIOCGIFADDR')
152 glib_conf.set('HAVE_SIOCGIFADDR', '/**/')
155 if not cc.compiles('''#include <netinet/in.h>
156 int main(int argc, char ** argv) {
157 struct ip_mreq_source mc_req_src;
158 mc_req_src.imr_interface.s_addr = 0;
161 name : 'ip_mreq_source.imr_interface has s_addr member')
162 glib_conf.set('BROKEN_IP_MREQ_SOURCE_STRUCT', 1)
167 gnetworking_h_conf.set('WSPIAPI_INCLUDE', gnetworking_h_wspiapi_include)
168 gnetworking_h_conf.set('NAMESER_COMPAT_INCLUDE', gnetworking_h_nameser_compat_include)
170 gnetworking_h = configure_file(input : 'gnetworking.h.in',
171 output : 'gnetworking.h',
172 install_dir : join_paths(get_option('includedir'), 'glib-2.0/gio'),
173 configuration : gnetworking_h_conf)
175 gdbus_headers = files(
176 'gdbusauthobserver.h',
184 'gdbusnamewatching.h',
186 'gdbusintrospection.h',
187 'gdbusmethodinvocation.h',
190 'gdbusinterfaceskeleton.h',
192 'gdbusobjectskeleton.h',
193 'gdbusobjectproxy.h',
194 'gdbusobjectmanager.h',
195 'gdbusobjectmanagerclient.h',
196 'gdbusobjectmanagerserver.h',
200 gdbus_sources = files(
203 'gdbusauthobserver.c',
205 'gdbusauthmechanism.c',
206 'gdbusauthmechanismanon.c',
207 'gdbusauthmechanismexternal.c',
208 'gdbusauthmechanismsha1.c',
213 'gdbusnamewatching.c',
216 'gdbusintrospection.c',
217 'gdbusmethodinvocation.c',
220 'gdbusinterfaceskeleton.c',
222 'gdbusobjectskeleton.c',
223 'gdbusobjectproxy.c',
224 'gdbusobjectmanager.c',
225 'gdbusobjectmanagerclient.c',
226 'gdbusobjectmanagerserver.c',
230 # Generate gdbus-codegen
231 subdir('gdbus-2.0/codegen')
233 # Generate xdp-dbus.{c,h}
234 xdp_dbus_generated = custom_target('xdp-dbus',
235 input : ['org.freedesktop.portal.Documents.xml',
236 'org.freedesktop.portal.OpenURI.xml',
237 'org.freedesktop.portal.NetworkMonitor.xml',
238 'org.freedesktop.portal.ProxyResolver.xml'],
239 output : ['xdp-dbus.h', 'xdp-dbus.c'],
240 depend_files : gdbus_codegen_built_files,
241 command : [python, gdbus_codegen,
242 '--interface-prefix', 'org.freedesktop.portal.',
243 '--output-directory', '@OUTDIR@',
244 '--generate-c-code', 'xdp-dbus',
245 '--c-namespace', 'GXdp',
246 '--annotate', 'org.freedesktop.portal.Documents.Add()',
247 'org.gtk.GDBus.C.UnixFD', 'true',
248 '--annotate', 'org.freedesktop.portal.Documents.AddNamed()',
249 'org.gtk.GDBus.C.UnixFD', 'true',
250 '--annotate', 'org.freedesktop.portal.Documents.AddFull()',
251 'org.gtk.GDBus.C.UnixFD', 'true',
252 '--annotate', 'org.freedesktop.portal.OpenURI.OpenFile()',
253 'org.gtk.GDBus.C.UnixFD', 'true',
256 # Generate gdbus-generated.{c,h}
257 gdbus_daemon_generated = custom_target('gdbus-daemon-generated',
258 input : ['dbus-daemon.xml'],
259 output : ['gdbus-daemon-generated.h', 'gdbus-daemon-generated.c'],
260 depend_files : gdbus_codegen_built_files,
261 command : [python, gdbus_codegen,
262 '--interface-prefix', 'org.',
263 '--output-directory', '@OUTDIR@',
264 '--generate-c-code', 'gdbus-daemon-generated',
265 '--c-namespace', '_G', '@INPUT@'])
267 settings_headers = files(
268 'gsettingsbackend.h',
273 settings_sources = files(
274 'gvdb/gvdb-reader.c',
275 'gdelayedsettingsbackend.c',
276 'gkeyfilesettingsbackend.c',
277 'gmemorysettingsbackend.c',
278 'gnullsettingsbackend.c',
279 'gsettingsbackend.c',
281 'gsettings-mapping.c',
285 if host_system == 'windows'
286 settings_sources += files('gregistrysettingsbackend.c')
289 application_headers = files(
291 'gapplicationcommandline.h',
295 'gsimpleactiongroup.h',
296 'gremoteactiongroup.h',
297 'gactiongroupexporter.h',
298 'gdbusactiongroup.h',
310 application_sources = files(
312 'gapplicationcommandline.c',
313 'gapplicationimpl-dbus.c',
317 'gsimpleactiongroup.c',
318 'gremoteactiongroup.c',
319 'gactiongroupexporter.c',
320 'gdbusactiongroup.c',
330 'gnotificationbackend.c',
333 local_sources = files(
336 'glocalfileenumerator.c',
338 'glocalfileinputstream.c',
339 'glocalfilemonitor.c',
340 'glocalfileoutputstream.c',
341 'glocalfileiostream.c',
346 'thumbnail-verify.c',
352 contenttype_sources = []
357 # This is also used by tests/gdbus-daemon, so use files() to include the path
358 gdbus_daemon_sources = [
359 files('gdbusdaemon.c'),
360 gdbus_daemon_generated,
363 if host_system != 'windows'
364 unix_sources = files(
365 'gfiledescriptorbased.c',
367 'gunixcredentialsmessage.c',
372 'gunixsocketaddress.c',
374 'gunixvolumemonitor.c',
375 'gunixinputstream.c',
376 'gunixoutputstream.c',
377 'gfdonotificationbackend.c',
378 'ggtknotificationbackend.c',
381 portal_sources = [files(
384 'gnetworkmonitorportal.c',
385 'gproxyresolverportal.c',
387 'gportalnotificationbackend.c'),
391 gio_unix_include_headers = files(
392 'gfiledescriptorbased.h',
394 'gunixcredentialsmessage.h',
398 'gunixinputstream.h',
399 'gunixoutputstream.h',
400 'gunixsocketaddress.h',
404 settings_sources += files('gnextstepsettingsbackend.m')
405 contenttype_sources += files('gosxcontenttype.m')
406 appinfo_sources += files('gosxappinfo.m')
407 if glib_have_os_x_9_or_later
408 unix_sources += files('gcocoanotificationbackend.m')
411 contenttype_sources += files('gcontenttype.c')
412 appinfo_sources += files('gdesktopappinfo.c')
413 gio_unix_include_headers += files('gdesktopappinfo.h')
417 internal_deps += [xdgmime_lib]
419 install_headers(gio_unix_include_headers, subdir : 'gio-unix-2.0/gio')
421 if glib_conf.has('HAVE_NETLINK')
422 unix_sources += files(
423 'gnetworkmonitornetlink.c',
424 'gnetworkmonitornm.c',
428 appinfo_sources += files('gwin32appinfo.c')
429 contenttype_sources += files('gcontenttype-win32.c')
430 platform_deps += [cc.find_library('shlwapi'),
431 cc.find_library('dnsapi'),
434 win32_sources += files(
435 'gwin32registrykey.c',
437 'gwin32volumemonitor.c',
438 'gwin32inputstream.c',
439 'gwin32outputstream.c',
440 'gwin32networkmonitor.c',
441 'gwin32networkmonitor.h',
442 'gwin32notificationbackend.c',
445 gio_win_rc = configure_file(
448 configuration: glibconfig_conf,
450 gio_win_res = windows.compile_resources(gio_win_rc)
451 win32_sources += [gio_win_res]
453 gio_win32_include_headers = files(
454 'gwin32inputstream.h',
455 'gwin32outputstream.h',
457 install_headers(gio_win32_include_headers, subdir : 'gio-win32-2.0/gio')
465 'gbufferedinputstream.c',
466 'gbufferedoutputstream.c',
469 'gcharsetconverter.c',
470 'gcontextspecificgroup.c',
472 'gconverterinputstream.c',
473 'gconverteroutputstream.c',
476 'gdatainputstream.c',
477 'gdataoutputstream.c',
480 'gdummyproxyresolver.c',
481 'gdummytlsbackend.c',
489 'gfileinputstream.c',
491 'gfilenamecompleter.c',
492 'gfileoutputstream.c',
494 'gfilterinputstream.c',
495 'gfilteroutputstream.c',
498 'ginetaddressmask.c',
499 'ginetsocketaddress.c',
509 'gmemoryinputstream.c',
510 'gmemoryoutputstream.c',
512 'gnativevolumemonitor.c',
513 'gnativesocketaddress.c',
517 'gnetworkmonitorbase.c',
521 'gpollableinputstream.c',
522 'gpollableoutputstream.c',
524 'gpollfilemonitor.c',
527 'gproxyaddressenumerator.c',
533 'gsimpleasyncresult.c',
535 'gsimplepermission.c',
538 'gsocketaddressenumerator.c',
540 'gsocketconnectable.c',
541 'gsocketconnection.c',
542 'gsocketcontrolmessage.c',
543 'gsocketinputstream.c',
545 'gsocketoutputstream.c',
546 'gsubprocesslauncher.c',
550 'gsimpleproxyresolver.c',
553 'gtcpwrapperconnection.c',
554 'gthreadedsocketservice.c',
556 'gthreadedresolver.c',
557 'gthreadedresolver.h',
560 'gtlsclientconnection.c',
563 'gtlsfiledatabase.c',
566 'gtlsserverconnection.c',
568 'gdtlsclientconnection.c',
569 'gdtlsserverconnection.c',
570 'gunionvolumemonitor.c',
575 'gzlibdecompressor.c',
580 gio_sources += appinfo_sources
581 gio_sources += contenttype_sources
582 gio_sources += gdbus_daemon_sources
583 gio_sources += unix_sources
584 gio_sources += win32_sources
585 gio_sources += application_sources
586 gio_sources += settings_sources
587 gio_sources += gdbus_sources
588 gio_sources += portal_sources
589 gio_sources += local_sources
592 # This is read by gobject-introspection/misc/ and gtk-doc
593 gio-public-headers.txt: Makefile
594 '$(AM_V_GEN) echo $(gioinclude_HEADERS) $(giowin32include_HEADERS) $(giounixinclude_HEADERS) > $@.tmp && mv $@.tmp $@
596 gio.def: libgio-2.0.la
597 '$(AM_V_GEN) dumpbin.exe -exports .libs/libgio-2.0-0.dll | awk 'BEGIN { print "EXPORTS" } / +[[:digit:]]+ +[[:xdigit:]]+ +[[:xdigit:]]+/{ print $$4 }' > gio.def.tmp && mv gio.def.tmp gio.def
599 gio-2.0.lib: libgio-2.0.la gio.def
600 '$(AM_V_GEN) lib.exe -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:$(builddir)/gio.def -out:$@
607 'gbufferedinputstream.h',
608 'gbufferedoutputstream.h',
612 'gcharsetconverter.h',
614 'gconverterinputstream.h',
615 'gconverteroutputstream.h',
617 'gdatainputstream.h',
618 'gdataoutputstream.h',
627 'gfileinputstream.h',
629 'gfilenamecompleter.h',
630 'gfileoutputstream.h',
632 'gfilterinputstream.h',
633 'gfilteroutputstream.h',
636 'ginetaddressmask.h',
637 'ginetsocketaddress.h',
641 'gio-autocleanups.h',
650 'gmemoryinputstream.h',
651 'gmemoryoutputstream.h',
653 'gnativevolumemonitor.h',
659 'gpollableinputstream.h',
660 'gpollableoutputstream.h',
664 'gproxyaddressenumerator.h',
669 'gsimpleasyncresult.h',
671 'gsimplepermission.h',
674 'gsocketaddressenumerator.h',
676 'gsocketconnectable.h',
677 'gsocketconnection.h',
678 'gsocketcontrolmessage.h',
682 'gsimpleproxyresolver.h',
685 'gsubprocesslauncher.h',
687 'gtcpwrapperconnection.h',
688 'gthreadedsocketservice.h',
692 'gtlsclientconnection.h',
695 'gtlsfiledatabase.h',
698 'gtlsserverconnection.h',
700 'gdtlsclientconnection.h',
701 'gdtlsserverconnection.h',
706 'gzlibdecompressor.h',
711 gio_headers += application_headers
712 gio_headers += settings_headers
713 gio_headers += gdbus_headers
714 install_headers(gio_headers, subdir : 'glib-2.0/gio/')
716 # We can't use gnome.mkenums() because the GNOME module looks for glib-mkenums
717 # in PATH, which means you can't bootstrap glib with its own glib-mkenums.
718 gioenumtypes_h = custom_target('gioenumtypes_h',
719 output : 'gioenumtypes.h',
723 install_dir : join_paths(get_option('includedir'), 'glib-2.0/gio'),
724 command : [python, glib_mkenums,
725 '--template', files('gioenumtypes.h.template'),
726 '@INPUT@', gnetworking_h])
728 gioenumtypes_c = custom_target('gioenumtypes_c',
729 output : 'gioenumtypes.c',
732 depends : [gioenumtypes_h],
733 command : [python, glib_mkenums,
734 '--template', files('gioenumtypes.c.template'),
735 '@INPUT@', gnetworking_h])
737 gioenumtypes_dep = declare_dependency(sources : [gioenumtypes_h])
740 if glib_conf.has('HAVE_SYS_INOTIFY_H') and have_func_inotify_init1
742 internal_deps += [ inotify_lib ]
746 if have_func_kqueue and have_func_kevent
748 internal_deps += [ kqueue_lib ]
751 if host_system == 'windows'
753 internal_deps += [ giowin32_lib ]
758 'completion/gapplication',
761 'completion/gsettings',
762 'completion/gresource'
764 install_dir: join_paths(get_option('datadir'), 'bash-completion/completions'))
768 gio_dtrace_obj = dtrace_obj_gen.process('gio_probes.d')
769 gio_dtrace_hdr = dtrace_hdr_gen.process('gio_probes.d')
775 libgio = library('gio-2.0',
776 gioenumtypes_h, gioenumtypes_c, gnetworking_h, gio_sources,
777 gio_dtrace_hdr, gio_dtrace_obj,
778 version : library_version,
779 soversion : soversion,
781 include_directories : [configinc, gioinc],
782 link_with : internal_deps,
783 # '$(gio_win32_res_ldflag)',
784 dependencies : [libz_dep, libdl_dep, libmount_dep, libglib_dep,
785 libgobject_dep, libgmodule_dep, selinux_dep, xattr_dep,
786 platform_deps, network_libs],
788 objc_args : gio_c_args,
789 # intl.lib is not compatible with SAFESEH
790 link_args : [noseh_link_args, glib_link_flags],
793 giomodulesdir = get_option('gio_module_dir')
794 if giomodulesdir == ''
795 giomodulesdir = join_paths('${libdir}', 'gio', 'modules')
798 pkg.generate(libraries : libgio,
799 libraries_private : [osx_ldflags],
800 requires : ['glib-2.0', 'gobject-2.0'],
801 variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')),
802 'giomoduledir=' + giomodulesdir,
803 'glib_compile_schemas=' + join_paths('${bindir}', 'glib-compile-schemas'),
804 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'),
805 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen')],
806 version : glib_version,
807 install_dir : glib_pkgconfigreldir,
808 filebase : 'gio-2.0',
810 description : 'glib I/O library',
813 if host_system == 'windows'
814 pkg.generate(requires : ['gobject-2.0', 'gmodule-no-export-2.0', 'gio-2.0'],
815 subdirs : ['gio-win32-2.0'],
816 version : glib_version,
817 install_dir : glib_pkgconfigreldir,
818 filebase : 'gio-windows-2.0',
819 name : 'GIO Windows specific APIs',
820 description : 'Windows specific headers for glib I/O library',
823 pkg.generate(requires : ['gobject-2.0', 'gio-2.0'],
824 subdirs : ['gio-unix-2.0'],
825 version : glib_version,
826 install_dir : glib_pkgconfigreldir,
827 filebase : 'gio-unix-2.0',
828 name : 'GIO unix specific APIs',
829 description : 'unix specific headers for glib I/O library',
833 libgio_dep = declare_dependency(link_with : libgio,
834 dependencies : [gioenumtypes_dep],
835 # We sadly need to export configinc here because everyone includes <gio/*.h>
836 include_directories : [configinc, gioinc])
838 if host_system == 'windows'
839 # Hack till https://github.com/mesonbuild/meson/issues/2324 is fixed
840 libgiounix_dep = dependency('', required : false)
841 libgiowin32_dep = libgio_dep
843 libgiowin32_dep = dependency('', required : false)
844 libgiounix_dep = libgio_dep
847 # Dependencies used by executables below
849 libelf = dependency('libelf', version : '>= 0.8.12', required : false)
853 # This fallback is necessary on *BSD. elfutils isn't the only libelf
854 # implementation, and *BSD usually includes their own libelf as a system
855 # library which doesn't have a corresponding .pc file.
856 libelf = cc.find_library('elf', required : false)
857 have_libelf = libelf.found()
858 have_libelf = have_libelf and cc.has_function('elf_begin', dependencies : libelf)
859 have_libelf = have_libelf and cc.has_function('elf_getshdrstrndx', dependencies : libelf)
860 have_libelf = have_libelf and cc.has_function('elf_getshdrnum', dependencies : libelf)
861 have_libelf = have_libelf and cc.has_header('libelf.h')
865 glib_conf.set('HAVE_LIBELF', 1)
870 gconstructor_as_data_h = custom_target('gconstructor_as_data.h',
871 input : ['data-to-c.py', files('../glib/gconstructor.h')],
872 output : ['gconstructor_as_data.h'],
873 command : [python, '@INPUT0@', '@INPUT1@', 'gconstructor_code', '@OUTPUT@'])
875 # Several installed executables
885 'gio-tool-monitor.c',
897 executable('gio', gio_tool_sources,
900 # intl.lib is not compatible with SAFESEH
901 link_args : noseh_link_args,
902 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
904 executable('gresource', 'gresource-tool.c',
906 # intl.lib is not compatible with SAFESEH
907 link_args : noseh_link_args,
908 dependencies : [libelf, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
910 gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodule-priv.c',
913 # intl.lib is not compatible with SAFESEH
914 link_args : noseh_link_args,
915 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
917 glib_compile_schemas = executable('glib-compile-schemas',
918 [gconstructor_as_data_h, 'gvdb/gvdb-builder.c', 'glib-compile-schemas.c'],
920 # intl.lib is not compatible with SAFESEH
921 link_args : noseh_link_args,
922 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
924 glib_compile_resources = executable('glib-compile-resources',
925 [gconstructor_as_data_h, 'gvdb/gvdb-builder.c', 'glib-compile-resources.c'],
928 # intl.lib is not compatible with SAFESEH
929 link_args : noseh_link_args,
930 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
932 executable('gsettings', 'gsettings-tool.c',
935 # intl.lib is not compatible with SAFESEH
936 link_args : noseh_link_args,
937 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
938 install_data('gschema.dtd',
939 install_dir : join_paths(get_option('datadir'), 'glib-2.0/schemas'))
941 install_data(['gschema.loc', 'gschema.its'],
942 install_dir : join_paths(get_option('datadir'), 'gettext/its'))
944 executable('gdbus', 'gdbus-tool.c',
947 # intl.lib is not compatible with SAFESEH
948 link_args : noseh_link_args,
949 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
951 if host_system != 'windows' and not glib_have_cocoa
952 executable('gapplication', 'gapplication-tool.c',
955 # intl.lib is not compatible with SAFESEH
956 link_args : noseh_link_args,
957 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
961 gio_stp = configure_file(input : 'gio.stp.in',
962 output : '@0@.stp'.format(libgio.full_path().split('/').get(-1)),
963 configuration : stp_cdata,
964 install_dir : tapset_install_dir,
970 if host_system != 'windows'