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', '/**/')
157 if host_system.contains('android')
158 # struct ip_mreq_source definition is broken on Android NDK <= r16
159 # See https://bugzilla.gnome.org/show_bug.cgi?id=740791
160 if not cc.compiles('''#include <netinet/in.h>
161 int main(int argc, char ** argv) {
162 struct ip_mreq_source mc_req_src;
163 mc_req_src.imr_interface.s_addr = 0;
166 name : 'ip_mreq_source.imr_interface has s_addr member')
167 glib_conf.set('BROKEN_IP_MREQ_SOURCE_STRUCT', 1)
171 gnetworking_h_conf.set('WSPIAPI_INCLUDE', gnetworking_h_wspiapi_include)
172 gnetworking_h_conf.set('NAMESER_COMPAT_INCLUDE', gnetworking_h_nameser_compat_include)
174 gnetworking_h = configure_file(input : 'gnetworking.h.in',
175 output : 'gnetworking.h',
176 install_dir : join_paths(get_option('includedir'), 'glib-2.0/gio'),
177 configuration : gnetworking_h_conf)
179 gdbus_headers = files(
180 'gdbusauthobserver.h',
188 'gdbusnamewatching.h',
190 'gdbusintrospection.h',
191 'gdbusmethodinvocation.h',
194 'gdbusinterfaceskeleton.h',
196 'gdbusobjectskeleton.h',
197 'gdbusobjectproxy.h',
198 'gdbusobjectmanager.h',
199 'gdbusobjectmanagerclient.h',
200 'gdbusobjectmanagerserver.h',
204 gdbus_sources = files(
207 'gdbusauthobserver.c',
209 'gdbusauthmechanism.c',
210 'gdbusauthmechanismanon.c',
211 'gdbusauthmechanismexternal.c',
212 'gdbusauthmechanismsha1.c',
217 'gdbusnamewatching.c',
220 'gdbusintrospection.c',
221 'gdbusmethodinvocation.c',
224 'gdbusinterfaceskeleton.c',
226 'gdbusobjectskeleton.c',
227 'gdbusobjectproxy.c',
228 'gdbusobjectmanager.c',
229 'gdbusobjectmanagerclient.c',
230 'gdbusobjectmanagerserver.c',
234 # Generate gdbus-codegen
235 subdir('gdbus-2.0/codegen')
237 # Generate xdp-dbus.{c,h}
238 xdp_dbus_generated = custom_target('xdp-dbus',
239 input : ['org.freedesktop.portal.Documents.xml',
240 'org.freedesktop.portal.OpenURI.xml',
241 'org.freedesktop.portal.ProxyResolver.xml'],
242 output : ['xdp-dbus.h', 'xdp-dbus.c'],
243 depend_files : gdbus_codegen_built_files,
244 command : [python, gdbus_codegen,
245 '--interface-prefix', 'org.freedesktop.portal.',
246 '--output-directory', '@OUTDIR@',
247 '--generate-c-code', 'xdp-dbus',
248 '--c-namespace', 'GXdp',
249 '--annotate', 'org.freedesktop.portal.Documents.Add()',
250 'org.gtk.GDBus.C.UnixFD', 'true',
251 '--annotate', 'org.freedesktop.portal.Documents.AddNamed()',
252 'org.gtk.GDBus.C.UnixFD', 'true',
253 '--annotate', 'org.freedesktop.portal.Documents.AddFull()',
254 'org.gtk.GDBus.C.UnixFD', 'true',
255 '--annotate', 'org.freedesktop.portal.OpenURI.OpenFile()',
256 'org.gtk.GDBus.C.UnixFD', 'true',
259 # Generate gdbus-generated.{c,h}
260 gdbus_daemon_generated = custom_target('gdbus-daemon-generated',
261 input : ['dbus-daemon.xml'],
262 output : ['gdbus-daemon-generated.h', 'gdbus-daemon-generated.c'],
263 depend_files : gdbus_codegen_built_files,
264 command : [python, gdbus_codegen,
265 '--interface-prefix', 'org.',
266 '--output-directory', '@OUTDIR@',
267 '--generate-c-code', 'gdbus-daemon-generated',
268 '--c-namespace', '_G', '@INPUT@'])
270 settings_headers = files(
271 'gsettingsbackend.h',
276 settings_sources = files(
277 'gvdb/gvdb-reader.c',
278 'gdelayedsettingsbackend.c',
279 'gkeyfilesettingsbackend.c',
280 'gmemorysettingsbackend.c',
281 'gnullsettingsbackend.c',
282 'gsettingsbackend.c',
284 'gsettings-mapping.c',
288 if host_system == 'windows'
289 settings_sources += files('gregistrysettingsbackend.c')
292 application_headers = files(
294 'gapplicationcommandline.h',
298 'gsimpleactiongroup.h',
299 'gremoteactiongroup.h',
300 'gactiongroupexporter.h',
301 'gdbusactiongroup.h',
313 application_sources = files(
315 'gapplicationcommandline.c',
316 'gapplicationimpl-dbus.c',
320 'gsimpleactiongroup.c',
321 'gremoteactiongroup.c',
322 'gactiongroupexporter.c',
323 'gdbusactiongroup.c',
333 'gnotificationbackend.c',
336 local_sources = files(
339 'glocalfileenumerator.c',
341 'glocalfileinputstream.c',
342 'glocalfilemonitor.c',
343 'glocalfileoutputstream.c',
344 'glocalfileiostream.c',
349 'thumbnail-verify.c',
355 contenttype_sources = []
360 # This is also used by tests/gdbus-daemon, so use files() to include the path
361 gdbus_daemon_sources = [
362 files('gdbusdaemon.c'),
363 gdbus_daemon_generated,
366 if host_system != 'windows'
367 unix_sources = files(
368 'gfiledescriptorbased.c',
370 'gunixcredentialsmessage.c',
375 'gunixsocketaddress.c',
377 'gunixvolumemonitor.c',
378 'gunixinputstream.c',
379 'gunixoutputstream.c',
380 'gfdonotificationbackend.c',
381 'ggtknotificationbackend.c',
384 portal_sources = [files(
387 'gnetworkmonitorportal.c',
388 'gproxyresolverportal.c',
390 'gportalnotificationbackend.c'),
394 gio_unix_include_headers = files(
395 'gfiledescriptorbased.h',
397 'gunixcredentialsmessage.h',
401 'gunixinputstream.h',
402 'gunixoutputstream.h',
403 'gunixsocketaddress.h',
407 settings_sources += files('gnextstepsettingsbackend.m')
408 contenttype_sources += files('gosxcontenttype.m')
409 appinfo_sources += files('gosxappinfo.m')
410 if glib_have_os_x_9_or_later
411 unix_sources += files('gcocoanotificationbackend.m')
414 contenttype_sources += files('gcontenttype.c')
415 appinfo_sources += files('gdesktopappinfo.c')
416 gio_unix_include_headers += files('gdesktopappinfo.h')
418 executable('gio-launch-desktop', 'gio-launch-desktop.c',
421 # intl.lib is not compatible with SAFESEH
422 link_args : noseh_link_args)
426 internal_deps += [xdgmime_lib]
428 install_headers(gio_unix_include_headers, subdir : 'gio-unix-2.0/gio')
430 if glib_conf.has('HAVE_NETLINK')
431 unix_sources += files(
432 'gnetworkmonitornetlink.c',
433 'gnetworkmonitornm.c',
437 appinfo_sources += files('gwin32appinfo.c')
438 contenttype_sources += files('gcontenttype-win32.c')
439 platform_deps += [cc.find_library('shlwapi'),
440 cc.find_library('dnsapi'),
443 win32_sources += files(
444 'gwin32registrykey.c',
446 'gwin32volumemonitor.c',
447 'gwin32inputstream.c',
448 'gwin32outputstream.c',
449 'gwin32networkmonitor.c',
450 'gwin32networkmonitor.h',
451 'gwin32notificationbackend.c',
454 gio_win_rc = configure_file(
457 configuration: glibconfig_conf,
459 gio_win_res = windows.compile_resources(gio_win_rc)
460 win32_sources += [gio_win_res]
462 gio_win32_include_headers = files(
463 'gwin32inputstream.h',
464 'gwin32outputstream.h',
466 install_headers(gio_win32_include_headers, subdir : 'gio-win32-2.0/gio')
474 'gbufferedinputstream.c',
475 'gbufferedoutputstream.c',
478 'gcharsetconverter.c',
479 'gcontextspecificgroup.c',
481 'gconverterinputstream.c',
482 'gconverteroutputstream.c',
485 'gdatainputstream.c',
486 'gdataoutputstream.c',
489 'gdummyproxyresolver.c',
490 'gdummytlsbackend.c',
498 'gfileinputstream.c',
500 'gfilenamecompleter.c',
501 'gfileoutputstream.c',
503 'gfilterinputstream.c',
504 'gfilteroutputstream.c',
507 'ginetaddressmask.c',
508 'ginetsocketaddress.c',
518 'gmemoryinputstream.c',
519 'gmemoryoutputstream.c',
521 'gnativevolumemonitor.c',
522 'gnativesocketaddress.c',
526 'gnetworkmonitorbase.c',
530 'gpollableinputstream.c',
531 'gpollableoutputstream.c',
533 'gpollfilemonitor.c',
536 'gproxyaddressenumerator.c',
542 'gsimpleasyncresult.c',
544 'gsimplepermission.c',
547 'gsocketaddressenumerator.c',
549 'gsocketconnectable.c',
550 'gsocketconnection.c',
551 'gsocketcontrolmessage.c',
552 'gsocketinputstream.c',
554 'gsocketoutputstream.c',
555 'gsubprocesslauncher.c',
559 'gsimpleproxyresolver.c',
562 'gtcpwrapperconnection.c',
563 'gthreadedsocketservice.c',
565 'gthreadedresolver.c',
566 'gthreadedresolver.h',
569 'gtlsclientconnection.c',
572 'gtlsfiledatabase.c',
575 'gtlsserverconnection.c',
577 'gdtlsclientconnection.c',
578 'gdtlsserverconnection.c',
579 'gunionvolumemonitor.c',
584 'gzlibdecompressor.c',
589 gio_sources += appinfo_sources
590 gio_sources += contenttype_sources
591 gio_sources += gdbus_daemon_sources
592 gio_sources += unix_sources
593 gio_sources += win32_sources
594 gio_sources += application_sources
595 gio_sources += settings_sources
596 gio_sources += gdbus_sources
597 gio_sources += portal_sources
598 gio_sources += local_sources
601 # This is read by gobject-introspection/misc/ and gtk-doc
602 gio-public-headers.txt: Makefile
603 '$(AM_V_GEN) echo $(gioinclude_HEADERS) $(giowin32include_HEADERS) $(giounixinclude_HEADERS) > $@.tmp && mv $@.tmp $@
605 gio.def: libgio-2.0.la
606 '$(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
608 gio-2.0.lib: libgio-2.0.la gio.def
609 '$(AM_V_GEN) lib.exe -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:$(builddir)/gio.def -out:$@
616 'gbufferedinputstream.h',
617 'gbufferedoutputstream.h',
621 'gcharsetconverter.h',
623 'gconverterinputstream.h',
624 'gconverteroutputstream.h',
626 'gdatainputstream.h',
627 'gdataoutputstream.h',
636 'gfileinputstream.h',
638 'gfilenamecompleter.h',
639 'gfileoutputstream.h',
641 'gfilterinputstream.h',
642 'gfilteroutputstream.h',
645 'ginetaddressmask.h',
646 'ginetsocketaddress.h',
650 'gio-autocleanups.h',
659 'gmemoryinputstream.h',
660 'gmemoryoutputstream.h',
662 'gnativevolumemonitor.h',
668 'gpollableinputstream.h',
669 'gpollableoutputstream.h',
673 'gproxyaddressenumerator.h',
678 'gsimpleasyncresult.h',
680 'gsimplepermission.h',
683 'gsocketaddressenumerator.h',
685 'gsocketconnectable.h',
686 'gsocketconnection.h',
687 'gsocketcontrolmessage.h',
691 'gsimpleproxyresolver.h',
694 'gsubprocesslauncher.h',
696 'gtcpwrapperconnection.h',
697 'gthreadedsocketservice.h',
701 'gtlsclientconnection.h',
704 'gtlsfiledatabase.h',
707 'gtlsserverconnection.h',
709 'gdtlsclientconnection.h',
710 'gdtlsserverconnection.h',
715 'gzlibdecompressor.h',
720 gio_headers += application_headers
721 gio_headers += settings_headers
722 gio_headers += gdbus_headers
723 install_headers(gio_headers, subdir : 'glib-2.0/gio/')
725 # We can't use gnome.mkenums() because the GNOME module looks for glib-mkenums
726 # in PATH, which means you can't bootstrap glib with its own glib-mkenums.
727 gioenumtypes_h = custom_target('gioenumtypes_h',
728 output : 'gioenumtypes.h',
732 install_dir : join_paths(get_option('includedir'), 'glib-2.0/gio'),
733 command : [python, glib_mkenums,
734 '--template', files('gioenumtypes.h.template'),
735 '@INPUT@', gnetworking_h])
737 gioenumtypes_c = custom_target('gioenumtypes_c',
738 output : 'gioenumtypes.c',
741 depends : [gioenumtypes_h],
742 command : [python, glib_mkenums,
743 '--template', files('gioenumtypes.c.template'),
744 '@INPUT@', gnetworking_h])
746 gioenumtypes_dep = declare_dependency(sources : [gioenumtypes_h])
749 if glib_conf.has('HAVE_SYS_INOTIFY_H') and have_func_inotify_init1
751 internal_deps += [ inotify_lib ]
755 if have_func_kqueue and have_func_kevent
757 internal_deps += [ kqueue_lib ]
760 if host_system == 'windows'
762 internal_deps += [ giowin32_lib ]
767 'completion/gapplication',
770 'completion/gsettings',
771 'completion/gresource'
773 install_dir: join_paths(get_option('datadir'), 'bash-completion/completions'))
777 gio_dtrace_obj = dtrace_obj_gen.process('gio_probes.d')
778 gio_dtrace_hdr = dtrace_hdr_gen.process('gio_probes.d')
784 libgio = library('gio-2.0',
785 gioenumtypes_h, gioenumtypes_c, gnetworking_h, gio_sources,
786 gio_dtrace_hdr, gio_dtrace_obj,
787 version : library_version,
788 soversion : soversion,
790 include_directories : [configinc, gioinc],
791 link_with : internal_deps,
792 # '$(gio_win32_res_ldflag)',
793 dependencies : [libz_dep, libdl_dep, libmount_dep, libglib_dep,
794 libgobject_dep, libgmodule_dep, selinux_dep, xattr_dep,
795 platform_deps, network_libs],
797 objc_args : gio_c_args,
798 # intl.lib is not compatible with SAFESEH
799 link_args : [noseh_link_args, glib_link_flags],
802 giomodulesdir = get_option('gio_module_dir')
803 if giomodulesdir == ''
804 giomodulesdir = join_paths('${libdir}', 'gio', 'modules')
807 pkg.generate(libraries : libgio,
808 libraries_private : [osx_ldflags],
809 requires : ['glib-2.0', 'gobject-2.0'],
810 variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')),
811 'giomoduledir=' + giomodulesdir,
812 'glib_compile_schemas=' + join_paths('${bindir}', 'glib-compile-schemas'),
813 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'),
814 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen')],
815 version : glib_version,
816 install_dir : glib_pkgconfigreldir,
817 filebase : 'gio-2.0',
819 description : 'glib I/O library',
822 if host_system == 'windows'
823 pkg.generate(requires : ['gobject-2.0', 'gmodule-no-export-2.0', 'gio-2.0'],
824 subdirs : ['gio-win32-2.0'],
825 version : glib_version,
826 install_dir : glib_pkgconfigreldir,
827 filebase : 'gio-windows-2.0',
828 name : 'GIO Windows specific APIs',
829 description : 'Windows specific headers for glib I/O library',
832 pkg.generate(requires : ['gobject-2.0', 'gio-2.0'],
833 subdirs : ['gio-unix-2.0'],
834 version : glib_version,
835 install_dir : glib_pkgconfigreldir,
836 filebase : 'gio-unix-2.0',
837 name : 'GIO unix specific APIs',
838 description : 'unix specific headers for glib I/O library',
842 libgio_dep = declare_dependency(link_with : libgio,
843 dependencies : [gioenumtypes_dep],
844 # We sadly need to export configinc here because everyone includes <gio/*.h>
845 include_directories : [configinc, gioinc])
847 if host_system == 'windows'
848 # Hack till https://github.com/mesonbuild/meson/issues/2324 is fixed
849 libgiounix_dep = dependency('', required : false)
850 libgiowin32_dep = libgio_dep
852 libgiowin32_dep = dependency('', required : false)
853 libgiounix_dep = libgio_dep
856 # Dependencies used by executables below
858 libelf = dependency('libelf', version : '>= 0.8.12', required : false)
862 # This fallback is necessary on *BSD. elfutils isn't the only libelf
863 # implementation, and *BSD usually includes their own libelf as a system
864 # library which doesn't have a corresponding .pc file.
865 libelf = cc.find_library('elf', required : false)
866 have_libelf = libelf.found()
867 have_libelf = have_libelf and cc.has_function('elf_begin', dependencies : libelf)
868 have_libelf = have_libelf and cc.has_function('elf_getshdrstrndx', dependencies : libelf)
869 have_libelf = have_libelf and cc.has_function('elf_getshdrnum', dependencies : libelf)
870 have_libelf = have_libelf and cc.has_header('libelf.h')
874 glib_conf.set('HAVE_LIBELF', 1)
879 gconstructor_as_data_h = custom_target('gconstructor_as_data.h',
880 input : ['data-to-c.py', files('../glib/gconstructor.h')],
881 output : ['gconstructor_as_data.h'],
882 command : [python, '@INPUT0@', '@INPUT1@', 'gconstructor_code', '@OUTPUT@'])
884 # Several installed executables
894 'gio-tool-monitor.c',
906 executable('gio', gio_tool_sources,
909 # intl.lib is not compatible with SAFESEH
910 link_args : noseh_link_args,
911 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
913 executable('gresource', 'gresource-tool.c',
915 # intl.lib is not compatible with SAFESEH
916 link_args : noseh_link_args,
917 dependencies : [libelf, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
919 gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodule-priv.c',
922 # intl.lib is not compatible with SAFESEH
923 link_args : noseh_link_args,
924 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
926 glib_compile_schemas = executable('glib-compile-schemas',
927 [gconstructor_as_data_h, 'gvdb/gvdb-builder.c', 'glib-compile-schemas.c'],
929 # intl.lib is not compatible with SAFESEH
930 link_args : noseh_link_args,
931 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
933 glib_compile_resources = executable('glib-compile-resources',
934 [gconstructor_as_data_h, 'gvdb/gvdb-builder.c', 'glib-compile-resources.c'],
937 # intl.lib is not compatible with SAFESEH
938 link_args : noseh_link_args,
939 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
941 executable('gsettings', 'gsettings-tool.c',
944 # intl.lib is not compatible with SAFESEH
945 link_args : noseh_link_args,
946 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
947 install_data('gschema.dtd',
948 install_dir : join_paths(get_option('datadir'), 'glib-2.0/schemas'))
950 install_data(['gschema.loc', 'gschema.its'],
951 install_dir : join_paths(get_option('datadir'), 'gettext/its'))
953 executable('gdbus', 'gdbus-tool.c',
956 # intl.lib is not compatible with SAFESEH
957 link_args : noseh_link_args,
958 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
960 if host_system != 'windows' and not glib_have_cocoa
961 executable('gapplication', 'gapplication-tool.c',
964 # intl.lib is not compatible with SAFESEH
965 link_args : noseh_link_args,
966 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
970 gio_stp = configure_file(input : 'gio.stp.in',
971 output : '@0@.stp'.format(libgio.full_path().split('/').get(-1)),
972 configuration : stp_cdata,
973 install_dir : tapset_install_dir,
979 if host_system != 'windows'