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',
760 'completion/gsettings',
761 'completion/gresource'
763 install_dir: join_paths(get_option('datadir'), 'bash-completion/completions'))
767 gio_dtrace_obj = dtrace_obj_gen.process('gio_probes.d')
768 gio_dtrace_hdr = dtrace_hdr_gen.process('gio_probes.d')
774 libgio = library('gio-2.0',
775 gioenumtypes_h, gioenumtypes_c, gnetworking_h, gio_sources,
776 gio_dtrace_hdr, gio_dtrace_obj,
777 version : library_version,
778 soversion : soversion,
780 include_directories : [configinc, gioinc],
781 link_with : internal_deps,
782 # '$(gio_win32_res_ldflag)',
783 dependencies : [libz_dep, libdl_dep, libmount_dep, libglib_dep,
784 libgobject_dep, libgmodule_dep, selinux_dep, xattr_dep,
785 platform_deps, network_libs],
787 objc_args : gio_c_args,
788 # intl.lib is not compatible with SAFESEH
789 link_args : [noseh_link_args, glib_link_flags],
792 giomodulesdir = get_option('gio_module_dir')
793 if giomodulesdir == ''
794 giomodulesdir = join_paths('${libdir}', 'gio', 'modules')
797 pkg.generate(libraries : libgio,
798 libraries_private : [osx_ldflags],
799 requires : ['glib-2.0', 'gobject-2.0'],
800 variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')),
801 'giomoduledir=' + giomodulesdir,
802 'glib_compile_schemas=' + join_paths('${bindir}', 'glib-compile-schemas'),
803 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'),
804 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen')],
805 version : glib_version,
806 install_dir : glib_pkgconfigreldir,
807 filebase : 'gio-2.0',
809 description : 'glib I/O library',
812 if host_system == 'windows'
813 pkg.generate(requires : ['gobject-2.0', 'gmodule-no-export-2.0', 'gio-2.0'],
814 subdirs : ['gio-win32-2.0'],
815 version : glib_version,
816 install_dir : glib_pkgconfigreldir,
817 filebase : 'gio-windows-2.0',
818 name : 'GIO Windows specific APIs',
819 description : 'Windows specific headers for glib I/O library',
822 pkg.generate(requires : ['gobject-2.0', 'gio-2.0'],
823 subdirs : ['gio-unix-2.0'],
824 version : glib_version,
825 install_dir : glib_pkgconfigreldir,
826 filebase : 'gio-unix-2.0',
827 name : 'GIO unix specific APIs',
828 description : 'unix specific headers for glib I/O library',
832 libgio_dep = declare_dependency(link_with : libgio,
833 dependencies : [gioenumtypes_dep],
834 # We sadly need to export configinc here because everyone includes <gio/*.h>
835 include_directories : [configinc, gioinc])
837 if host_system == 'windows'
838 # Hack till https://github.com/mesonbuild/meson/issues/2324 is fixed
839 libgiounix_dep = dependency('', required : false)
840 libgiowin32_dep = libgio_dep
842 libgiowin32_dep = dependency('', required : false)
843 libgiounix_dep = libgio_dep
846 # Dependencies used by executables below
848 libelf = dependency('libelf', version : '>= 0.8.12', required : false)
852 # This fallback is necessary on *BSD. elfutils isn't the only libelf
853 # implementation, and *BSD usually includes their own libelf as a system
854 # library which doesn't have a corresponding .pc file.
855 libelf = cc.find_library('elf', required : false)
856 have_libelf = libelf.found()
857 have_libelf = have_libelf and cc.has_function('elf_begin', dependencies : libelf)
858 have_libelf = have_libelf and cc.has_function('elf_getshdrstrndx', dependencies : libelf)
859 have_libelf = have_libelf and cc.has_function('elf_getshdrnum', dependencies : libelf)
860 have_libelf = have_libelf and cc.has_header('libelf.h')
864 glib_conf.set('HAVE_LIBELF', 1)
869 gconstructor_as_data_h = custom_target('gconstructor_as_data.h',
870 input : ['data-to-c.py', files('../glib/gconstructor.h')],
871 output : ['gconstructor_as_data.h'],
872 command : [python, '@INPUT0@', '@INPUT1@', 'gconstructor_code', '@OUTPUT@'])
874 # Several installed executables
884 'gio-tool-monitor.c',
896 executable('gio', gio_tool_sources,
899 # intl.lib is not compatible with SAFESEH
900 link_args : noseh_link_args,
901 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
903 executable('gresource', 'gresource-tool.c',
905 # intl.lib is not compatible with SAFESEH
906 link_args : noseh_link_args,
907 dependencies : [libelf, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
909 gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodule-priv.c',
912 # intl.lib is not compatible with SAFESEH
913 link_args : noseh_link_args,
914 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
916 glib_compile_schemas = executable('glib-compile-schemas',
917 [gconstructor_as_data_h, 'gvdb/gvdb-builder.c', 'glib-compile-schemas.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_resources = executable('glib-compile-resources',
924 [gconstructor_as_data_h, 'gvdb/gvdb-builder.c', 'glib-compile-resources.c'],
927 # intl.lib is not compatible with SAFESEH
928 link_args : noseh_link_args,
929 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
931 executable('gsettings', 'gsettings-tool.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])
937 install_data('gschema.dtd',
938 install_dir : join_paths(get_option('datadir'), 'glib-2.0/schemas'))
940 install_data(['gschema.loc', 'gschema.its'],
941 install_dir : join_paths(get_option('datadir'), 'gettext/its'))
943 executable('gdbus', 'gdbus-tool.c',
946 # intl.lib is not compatible with SAFESEH
947 link_args : noseh_link_args,
948 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
950 if host_system != 'windows' and not glib_have_cocoa
951 executable('gapplication', 'gapplication-tool.c',
954 # intl.lib is not compatible with SAFESEH
955 link_args : noseh_link_args,
956 dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
960 gio_stp = configure_file(input : 'gio.stp.in',
961 output : '@0@.stp'.format(libgio.full_path().split('/').get(-1)),
962 configuration : stp_cdata,
963 install_dir : tapset_install_dir,
969 if host_system != 'windows'