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')
415 executable('gio-launch-desktop', 'gio-launch-desktop.c',
418 # intl.lib is not compatible with SAFESEH
419 link_args : noseh_link_args)
423 internal_deps += [xdgmime_lib]
425 install_headers(gio_unix_include_headers, subdir : 'gio-unix-2.0/gio')
427 if glib_conf.has('HAVE_NETLINK')
428 unix_sources += files(
429 'gnetworkmonitornetlink.c',
430 'gnetworkmonitornm.c',
434 appinfo_sources += files('gwin32appinfo.c')
435 contenttype_sources += files('gcontenttype-win32.c')
436 platform_deps += [cc.find_library('shlwapi'),
437 cc.find_library('dnsapi'),
440 win32_sources += files(
441 'gwin32registrykey.c',
443 'gwin32volumemonitor.c',
444 'gwin32inputstream.c',
445 'gwin32outputstream.c',
446 'gwin32networkmonitor.c',
447 'gwin32networkmonitor.h',
448 'gwin32notificationbackend.c',
451 gio_win_rc = configure_file(
454 configuration: glibconfig_conf,
456 gio_win_res = windows.compile_resources(gio_win_rc)
457 win32_sources += [gio_win_res]
459 gio_win32_include_headers = files(
460 'gwin32inputstream.h',
461 'gwin32outputstream.h',
463 install_headers(gio_win32_include_headers, subdir : 'gio-win32-2.0/gio')
471 'gbufferedinputstream.c',
472 'gbufferedoutputstream.c',
475 'gcharsetconverter.c',
476 'gcontextspecificgroup.c',
478 'gconverterinputstream.c',
479 'gconverteroutputstream.c',
482 'gdatainputstream.c',
483 'gdataoutputstream.c',
486 'gdummyproxyresolver.c',
487 'gdummytlsbackend.c',
495 'gfileinputstream.c',
497 'gfilenamecompleter.c',
498 'gfileoutputstream.c',
500 'gfilterinputstream.c',
501 'gfilteroutputstream.c',
504 'ginetaddressmask.c',
505 'ginetsocketaddress.c',
515 'gmemoryinputstream.c',
516 'gmemoryoutputstream.c',
518 'gnativevolumemonitor.c',
519 'gnativesocketaddress.c',
523 'gnetworkmonitorbase.c',
527 'gpollableinputstream.c',
528 'gpollableoutputstream.c',
530 'gpollfilemonitor.c',
533 'gproxyaddressenumerator.c',
539 'gsimpleasyncresult.c',
541 'gsimplepermission.c',
544 'gsocketaddressenumerator.c',
546 'gsocketconnectable.c',
547 'gsocketconnection.c',
548 'gsocketcontrolmessage.c',
549 'gsocketinputstream.c',
551 'gsocketoutputstream.c',
552 'gsubprocesslauncher.c',
556 'gsimpleproxyresolver.c',
559 'gtcpwrapperconnection.c',
560 'gthreadedsocketservice.c',
562 'gthreadedresolver.c',
563 'gthreadedresolver.h',
566 'gtlsclientconnection.c',
569 'gtlsfiledatabase.c',
572 'gtlsserverconnection.c',
574 'gdtlsclientconnection.c',
575 'gdtlsserverconnection.c',
576 'gunionvolumemonitor.c',
581 'gzlibdecompressor.c',
586 gio_sources += appinfo_sources
587 gio_sources += contenttype_sources
588 gio_sources += gdbus_daemon_sources
589 gio_sources += unix_sources
590 gio_sources += win32_sources
591 gio_sources += application_sources
592 gio_sources += settings_sources
593 gio_sources += gdbus_sources
594 gio_sources += portal_sources
595 gio_sources += local_sources
598 # This is read by gobject-introspection/misc/ and gtk-doc
599 gio-public-headers.txt: Makefile
600 '$(AM_V_GEN) echo $(gioinclude_HEADERS) $(giowin32include_HEADERS) $(giounixinclude_HEADERS) > $@.tmp && mv $@.tmp $@
602 gio.def: libgio-2.0.la
603 '$(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
605 gio-2.0.lib: libgio-2.0.la gio.def
606 '$(AM_V_GEN) lib.exe -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:$(builddir)/gio.def -out:$@
613 'gbufferedinputstream.h',
614 'gbufferedoutputstream.h',
618 'gcharsetconverter.h',
620 'gconverterinputstream.h',
621 'gconverteroutputstream.h',
623 'gdatainputstream.h',
624 'gdataoutputstream.h',
633 'gfileinputstream.h',
635 'gfilenamecompleter.h',
636 'gfileoutputstream.h',
638 'gfilterinputstream.h',
639 'gfilteroutputstream.h',
642 'ginetaddressmask.h',
643 'ginetsocketaddress.h',
647 'gio-autocleanups.h',
656 'gmemoryinputstream.h',
657 'gmemoryoutputstream.h',
659 'gnativevolumemonitor.h',
665 'gpollableinputstream.h',
666 'gpollableoutputstream.h',
670 'gproxyaddressenumerator.h',
675 'gsimpleasyncresult.h',
677 'gsimplepermission.h',
680 'gsocketaddressenumerator.h',
682 'gsocketconnectable.h',
683 'gsocketconnection.h',
684 'gsocketcontrolmessage.h',
688 'gsimpleproxyresolver.h',
691 'gsubprocesslauncher.h',
693 'gtcpwrapperconnection.h',
694 'gthreadedsocketservice.h',
698 'gtlsclientconnection.h',
701 'gtlsfiledatabase.h',
704 'gtlsserverconnection.h',
706 'gdtlsclientconnection.h',
707 'gdtlsserverconnection.h',
712 'gzlibdecompressor.h',
717 gio_headers += application_headers
718 gio_headers += settings_headers
719 gio_headers += gdbus_headers
720 install_headers(gio_headers, subdir : 'glib-2.0/gio/')
722 # We can't use gnome.mkenums() because the GNOME module looks for glib-mkenums
723 # in PATH, which means you can't bootstrap glib with its own glib-mkenums.
724 gioenumtypes_h = custom_target('gioenumtypes_h',
725 output : 'gioenumtypes.h',
729 install_dir : join_paths(get_option('includedir'), 'glib-2.0/gio'),
730 command : [python, glib_mkenums,
731 '--template', files('gioenumtypes.h.template'),
732 '@INPUT@', gnetworking_h])
734 gioenumtypes_c = custom_target('gioenumtypes_c',
735 output : 'gioenumtypes.c',
738 depends : [gioenumtypes_h],
739 command : [python, glib_mkenums,
740 '--template', files('gioenumtypes.c.template'),
741 '@INPUT@', gnetworking_h])
743 gioenumtypes_dep = declare_dependency(sources : [gioenumtypes_h])
746 if glib_conf.has('HAVE_SYS_INOTIFY_H') and have_func_inotify_init1
748 internal_deps += [ inotify_lib ]
752 if have_func_kqueue and have_func_kevent
754 internal_deps += [ kqueue_lib ]
757 if host_system == 'windows'
759 internal_deps += [ giowin32_lib ]
764 'completion/gapplication',
767 'completion/gsettings',
768 'completion/gresource'
770 install_dir: join_paths(get_option('datadir'), 'bash-completion/completions'))
774 gio_dtrace_obj = dtrace_obj_gen.process('gio_probes.d')
775 gio_dtrace_hdr = dtrace_hdr_gen.process('gio_probes.d')
781 libgio = library('gio-2.0',
782 gioenumtypes_h, gioenumtypes_c, gnetworking_h, gio_sources,
783 gio_dtrace_hdr, gio_dtrace_obj,
784 version : library_version,
785 soversion : soversion,
787 include_directories : [configinc, gioinc],
788 link_with : internal_deps,
789 # '$(gio_win32_res_ldflag)',
790 dependencies : [libz_dep, libdl_dep, libmount_dep, libglib_dep,
791 libgobject_dep, libgmodule_dep, selinux_dep, xattr_dep,
792 platform_deps, network_libs],
794 objc_args : gio_c_args,
795 # intl.lib is not compatible with SAFESEH
796 link_args : [noseh_link_args, glib_link_flags],
799 giomodulesdir = get_option('gio_module_dir')
800 if giomodulesdir == ''
801 giomodulesdir = join_paths('${libdir}', 'gio', 'modules')
804 pkg.generate(libraries : libgio,
805 libraries_private : [osx_ldflags],
806 requires : ['glib-2.0', 'gobject-2.0'],
807 variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')),
808 'giomoduledir=' + giomodulesdir,
809 'glib_compile_schemas=' + join_paths('${bindir}', 'glib-compile-schemas'),
810 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'),
811 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen')],
812 version : glib_version,
813 install_dir : glib_pkgconfigreldir,
814 filebase : 'gio-2.0',
816 description : 'glib I/O library',
819 if host_system == 'windows'
820 pkg.generate(requires : ['gobject-2.0', 'gmodule-no-export-2.0', 'gio-2.0'],
821 subdirs : ['gio-win32-2.0'],
822 version : glib_version,
823 install_dir : glib_pkgconfigreldir,
824 filebase : 'gio-windows-2.0',
825 name : 'GIO Windows specific APIs',
826 description : 'Windows specific headers for glib I/O library',
829 pkg.generate(requires : ['gobject-2.0', 'gio-2.0'],
830 subdirs : ['gio-unix-2.0'],
831 version : glib_version,
832 install_dir : glib_pkgconfigreldir,
833 filebase : 'gio-unix-2.0',
834 name : 'GIO unix specific APIs',
835 description : 'unix specific headers for glib I/O library',
839 libgio_dep = declare_dependency(link_with : libgio,
840 dependencies : [gioenumtypes_dep],
841 # We sadly need to export configinc here because everyone includes <gio/*.h>
842 include_directories : [configinc, gioinc])
844 if host_system == 'windows'
845 # Hack till https://github.com/mesonbuild/meson/issues/2324 is fixed
846 libgiounix_dep = dependency('', required : false)
847 libgiowin32_dep = libgio_dep
849 libgiowin32_dep = dependency('', required : false)
850 libgiounix_dep = libgio_dep
853 # Dependencies used by executables below
855 libelf = dependency('libelf', version : '>= 0.8.12', required : false)
859 # This fallback is necessary on *BSD. elfutils isn't the only libelf
860 # implementation, and *BSD usually includes their own libelf as a system
861 # library which doesn't have a corresponding .pc file.
862 libelf = cc.find_library('elf', required : false)
863 have_libelf = libelf.found()
864 have_libelf = have_libelf and cc.has_function('elf_begin', dependencies : libelf)
865 have_libelf = have_libelf and cc.has_function('elf_getshdrstrndx', dependencies : libelf)
866 have_libelf = have_libelf and cc.has_function('elf_getshdrnum', dependencies : libelf)
867 have_libelf = have_libelf and cc.has_header('libelf.h')
871 glib_conf.set('HAVE_LIBELF', 1)
876 gconstructor_as_data_h = custom_target('gconstructor_as_data.h',
877 input : ['data-to-c.py', files('../glib/gconstructor.h')],
878 output : ['gconstructor_as_data.h'],
879 command : [python, '@INPUT0@', '@INPUT1@', 'gconstructor_code', '@OUTPUT@'])
881 # Several installed executables
891 'gio-tool-monitor.c',
903 executable('gio', gio_tool_sources,
906 # intl.lib is not compatible with SAFESEH
907 link_args : noseh_link_args,
908 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
910 executable('gresource', 'gresource-tool.c',
912 # intl.lib is not compatible with SAFESEH
913 link_args : noseh_link_args,
914 dependencies : [libelf, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
916 gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodule-priv.c',
919 # intl.lib is not compatible with SAFESEH
920 link_args : noseh_link_args,
921 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
923 glib_compile_schemas = executable('glib-compile-schemas',
924 [gconstructor_as_data_h, 'gvdb/gvdb-builder.c', 'glib-compile-schemas.c'],
926 # intl.lib is not compatible with SAFESEH
927 link_args : noseh_link_args,
928 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
930 glib_compile_resources = executable('glib-compile-resources',
931 [gconstructor_as_data_h, 'gvdb/gvdb-builder.c', 'glib-compile-resources.c'],
934 # intl.lib is not compatible with SAFESEH
935 link_args : noseh_link_args,
936 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
938 executable('gsettings', 'gsettings-tool.c',
941 # intl.lib is not compatible with SAFESEH
942 link_args : noseh_link_args,
943 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
944 install_data('gschema.dtd',
945 install_dir : join_paths(get_option('datadir'), 'glib-2.0/schemas'))
947 install_data(['gschema.loc', 'gschema.its'],
948 install_dir : join_paths(get_option('datadir'), 'gettext/its'))
950 executable('gdbus', 'gdbus-tool.c',
953 # intl.lib is not compatible with SAFESEH
954 link_args : noseh_link_args,
955 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
957 if host_system != 'windows' and not glib_have_cocoa
958 executable('gapplication', 'gapplication-tool.c',
961 # intl.lib is not compatible with SAFESEH
962 link_args : noseh_link_args,
963 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
967 gio_stp = configure_file(input : 'gio.stp.in',
968 output : '@0@.stp'.format(libgio.full_path().split('/').get(-1)),
969 configuration : stp_cdata,
970 install_dir : tapset_install_dir,
976 if host_system != 'windows'