| gio_c_args = [ | 
 |   '-DG_LOG_DOMAIN="GLib-GIO"', | 
 |   '-DGIO_LAUNCH_DESKTOP="@0@"'.format(glib_prefix / multiarch_libexecdir / 'gio-launch-desktop'), | 
 |   '-DGIO_MODULE_DIR="@0@"'.format(glib_giomodulesdir), | 
 |   '-DLOCALSTATEDIR="@0@"'.format(glib_localstatedir), | 
 | ] | 
 |  | 
 | gio_c_args_internal = [ | 
 |   '-DGIO_COMPILATION', | 
 | ] | 
 |  | 
 | # Install empty glib_giomodulesdir | 
 | install_emptydir(glib_giomodulesdir) | 
 |  | 
 | gio_includedir = glib_includedir / 'gio' | 
 |  | 
 | gnetworking_h_conf = configuration_data() | 
 |  | 
 | gnetworking_h_nameser_compat_include = '' | 
 |  | 
 | if host_system not in ['windows', 'android'] | 
 |   # Don't check for C_IN on Android since it does not define it in public | 
 |   # headers, we define it ourselves wherever necessary | 
 |   if not cc.compiles('''#include <sys/types.h> | 
 |                         #include <arpa/nameser.h> | 
 |                         int qclass = C_IN;''', | 
 |                      name : 'C_IN in public headers (no arpa/nameser_compat.h needed)') | 
 |     if cc.compiles('''#include <sys/types.h> | 
 |                       #include <arpa/nameser.h> | 
 |                       #include <arpa/nameser_compat.h> | 
 |                       int qclass = C_IN;''', | 
 |                    name : 'arpa/nameser_compat.h needed for C_IN') | 
 |       gnetworking_h_nameser_compat_include = '#include <arpa/nameser_compat.h>' | 
 |     else | 
 |       error('Could not find required includes for ARPA C_IN') | 
 |     endif | 
 |   endif | 
 | endif | 
 |  | 
 | network_libs = [ ] | 
 | network_args = [ ] | 
 | if host_system != 'windows' | 
 |   # res_query() | 
 |   res_query_test = '''#include <resolv.h> | 
 |                       int main (int argc, char ** argv) { | 
 |                         return res_query("test", 0, 0, (void *)0, 0); | 
 |                       }''' | 
 |   res_query_test_full = '''#include <sys/types.h> | 
 |                            #include <netinet/in.h> | 
 |                            #include <arpa/nameser.h> | 
 |                         ''' + res_query_test | 
 |   if not cc.links(res_query_test_full, name : 'res_query()') | 
 |     if cc.links(res_query_test_full, args : '-lresolv', name : 'res_query() in -lresolv') | 
 |       network_libs += [ cc.find_library('resolv') ] | 
 |       network_args += [ '-lresolv' ] | 
 |     elif cc.links(res_query_test, args : '-lbind', name : 'res_query() in -lbind') | 
 |       network_libs += [ cc.find_library('bind') ] | 
 |       network_args += [ '-lbind' ] | 
 |     elif cc.links(res_query_test, args : '-lsocket', name : 'res_query() in -lsocket') | 
 |       network_libs += [ cc.find_library('socket') ] | 
 |       network_args += [ '-lsocket' ] | 
 |     else | 
 |       error('Could not find res_query()') | 
 |     endif | 
 |   endif | 
 |  | 
 |   # socket() | 
 |   socket_test = '''#include <sys/types.h> | 
 |                    #include <sys/socket.h> | 
 |                    int main (int argc, char ** argv) { | 
 |                      return socket(1, 2, 3); | 
 |                    }''' | 
 |   if not cc.links(socket_test, name : 'socket()') | 
 |     if cc.links(socket_test, args : '-lsocket', name : 'socket() in -lsocket') | 
 |       network_libs += [ cc.find_library('socket') ] | 
 |       network_args += [ '-lsocket' ] | 
 |     else | 
 |       error('Could not find socket()') | 
 |     endif | 
 |   endif | 
 |  | 
 |   # dn_comp() | 
 |   if cc.links('''#include <resolv.h> | 
 |                  int main (int argc, char ** argv) { | 
 |                    return dn_comp(NULL, NULL, 0, NULL, NULL) == -1; | 
 |                  } ''', args : network_args, name : 'dn_comp()') | 
 |     glib_conf.set('HAVE_DN_COMP', 1) | 
 |   endif | 
 |  | 
 |   # res_nclose() | 
 |   if cc.links('''#include <sys/types.h> | 
 |                  #include <netinet/in.h> | 
 |                  #include <arpa/nameser.h> | 
 |                  #include <resolv.h> | 
 |                  int main (int argc, char ** argv) { | 
 |                    struct __res_state res; | 
 |                    res_nclose(&res); | 
 |                    return 0; | 
 |                  }''', args : network_args, name : 'res_nclose()') | 
 |     glib_conf.set('HAVE_RES_NCLOSE', 1) | 
 |   endif | 
 |  | 
 |   # res_ndestroy() | 
 |   if cc.links('''#include <sys/types.h> | 
 |                  #include <netinet/in.h> | 
 |                  #include <arpa/nameser.h> | 
 |                  #include <resolv.h> | 
 |                  int main (int argc, char ** argv) { | 
 |                    struct __res_state res; | 
 |                    res_ndestroy(&res); | 
 |                    return 0; | 
 |                  }''', args : network_args, name : 'res_ndestroy()') | 
 |     glib_conf.set('HAVE_RES_NDESTROY', 1) | 
 |   endif | 
 |  | 
 |   # res_ninit() | 
 |   if cc.links('''#include <sys/types.h> | 
 |                  #include <netinet/in.h> | 
 |                  #include <arpa/nameser.h> | 
 |                  #include <resolv.h> | 
 |                  int main (int argc, char ** argv) { | 
 |                    struct __res_state res; | 
 |                    return res_ninit(&res); | 
 |                  }''', args : network_args, name : 'res_ninit()') | 
 |     glib_conf.set('HAVE_RES_NINIT', 1) | 
 |   endif | 
 |  | 
 |   # res_nquery() | 
 |   if cc.links('''#include <sys/types.h> | 
 |                  #include <netinet/in.h> | 
 |                  #include <arpa/nameser.h> | 
 |                  #include <resolv.h> | 
 |                  int main (int argc, char ** argv) { | 
 |                    struct __res_state res; | 
 |                    return res_nquery(&res, "test", 0, 0, (void *)0, 0); | 
 |                  }''', args : network_args, name : 'res_nquery()') | 
 |     glib_conf.set('HAVE_RES_NQUERY', 1) | 
 |   endif | 
 |  | 
 |   if cc.has_type('struct ip_mreqn', prefix : '#include <netinet/in.h>') | 
 |     glib_conf.set('HAVE_IP_MREQN', 1) | 
 |   endif | 
 |  | 
 |   if cc.compiles('''#include <sys/ioctl.h> | 
 |                     #include <net/if.h> | 
 |                     int main (int argc, char ** argv) { | 
 |                       struct ifreq ifr; | 
 |                       ioctl(0, SIOCGIFADDR, &ifr); | 
 |                       return 0; | 
 |                     }''', | 
 |                  name : 'ioctl with request SIOCGIFADDR') | 
 |     glib_conf.set('HAVE_SIOCGIFADDR', '/**/') | 
 |   endif | 
 |  | 
 | endif | 
 |  | 
 | if host_system == 'android' | 
 |   # struct ip_mreq_source definition is broken on Android NDK <= r16 | 
 |   # See https://bugzilla.gnome.org/show_bug.cgi?id=740791 | 
 |   if not cc.compiles('''#include <netinet/in.h> | 
 |                         int main(int argc, char ** argv) { | 
 |                           struct ip_mreq_source mc_req_src; | 
 |                           mc_req_src.imr_interface.s_addr = 0; | 
 |                           return 0; | 
 |                         }''', | 
 |                         name : 'ip_mreq_source.imr_interface has s_addr member') | 
 |     glib_conf.set('BROKEN_IP_MREQ_SOURCE_STRUCT', 1) | 
 |   endif | 
 | endif | 
 |  | 
 | gnetworking_h_conf.set('NAMESER_COMPAT_INCLUDE', gnetworking_h_nameser_compat_include) | 
 |  | 
 | gnetworking_h = configure_file(input : 'gnetworking.h.in', | 
 |                                output : 'gnetworking.h', | 
 |                                install_dir : gio_includedir, | 
 |                                install_tag : 'devel', | 
 |                                configuration : gnetworking_h_conf) | 
 |  | 
 | gdbus_headers = files( | 
 |   'gdbusauthobserver.h', | 
 |   'gcredentials.h', | 
 |   'gdbusutils.h', | 
 |   'gdbuserror.h', | 
 |   'gdbusaddress.h', | 
 |   'gdbusconnection.h', | 
 |   'gdbusmessage.h', | 
 |   'gdbusnameowning.h', | 
 |   'gdbusnamewatching.h', | 
 |   'gdbusproxy.h', | 
 |   'gdbusintrospection.h', | 
 |   'gdbusmethodinvocation.h', | 
 |   'gdbusserver.h', | 
 |   'gdbusinterface.h', | 
 |   'gdbusinterfaceskeleton.h', | 
 |   'gdbusobject.h', | 
 |   'gdbusobjectskeleton.h', | 
 |   'gdbusobjectproxy.h', | 
 |   'gdbusobjectmanager.h', | 
 |   'gdbusobjectmanagerclient.h', | 
 |   'gdbusobjectmanagerserver.h', | 
 |   'gtestdbus.h', | 
 | ) | 
 |  | 
 | gdbus_sources = files( | 
 |   'gdbusutils.c', | 
 |   'gdbusaddress.c', | 
 |   'gdbusauthobserver.c', | 
 |   'gdbusauth.c', | 
 |   'gdbusauthmechanism.c', | 
 |   'gdbusauthmechanismanon.c', | 
 |   'gdbusauthmechanismexternal.c', | 
 |   'gdbusauthmechanismsha1.c', | 
 |   'gdbuserror.c', | 
 |   'gdbusconnection.c', | 
 |   'gdbusmessage.c', | 
 |   'gdbusnameowning.c', | 
 |   'gdbusnamewatching.c', | 
 |   'gdbusproxy.c', | 
 |   'gdbusprivate.c', | 
 |   'gdbusintrospection.c', | 
 |   'gdbusmethodinvocation.c', | 
 |   'gdbusserver.c', | 
 |   'gdbusinterface.c', | 
 |   'gdbusinterfaceskeleton.c', | 
 |   'gdbusobject.c', | 
 |   'gdbusobjectskeleton.c', | 
 |   'gdbusobjectproxy.c', | 
 |   'gdbusobjectmanager.c', | 
 |   'gdbusobjectmanagerclient.c', | 
 |   'gdbusobjectmanagerserver.c', | 
 |   'gtestdbus.c', | 
 | ) | 
 |  | 
 | # Generate gdbus-codegen | 
 | subdir('gdbus-2.0/codegen') | 
 |  | 
 | # Generate xdp-dbus.{c,h} | 
 | xdp_dbus_generated = custom_target('xdp-dbus', | 
 |     input : ['org.freedesktop.portal.Documents.xml', | 
 |              'org.freedesktop.portal.OpenURI.xml', | 
 |              'org.freedesktop.portal.ProxyResolver.xml', | 
 |              'org.freedesktop.portal.Trash.xml'], | 
 |     output : ['xdp-dbus.h', 'xdp-dbus.c'], | 
 |     depend_files : gdbus_codegen_built_files, | 
 |     depends : gdbus_codegen_built_targets, | 
 |     command : [python, gdbus_codegen, | 
 |                '--interface-prefix', 'org.freedesktop.portal.', | 
 |                '--output-directory', '@OUTDIR@', | 
 |                '--generate-c-code', 'xdp-dbus', | 
 |                '--c-namespace', 'GXdp', | 
 |                '@INPUT@']) | 
 |  | 
 | # Generate gdbus-generated.{c,h} | 
 | gdbus_daemon_generated = custom_target('gdbus-daemon-generated', | 
 |     input : ['dbus-daemon.xml'], | 
 |     output : ['gdbus-daemon-generated.h', 'gdbus-daemon-generated.c'], | 
 |     depend_files : gdbus_codegen_built_files, | 
 |     depends : gdbus_codegen_built_targets, | 
 |     command : [python, gdbus_codegen, | 
 |                '--interface-prefix', 'org.', | 
 |                '--output-directory', '@OUTDIR@', | 
 |                '--generate-c-code', 'gdbus-daemon-generated', | 
 |                '--c-namespace', '_G', '@INPUT@']) | 
 |  | 
 | settings_headers = files( | 
 |   'gsettingsbackend.h', | 
 |   'gsettingsschema.h', | 
 |   'gsettings.h', | 
 | ) | 
 |  | 
 | settings_sources = files( | 
 |   'gdelayedsettingsbackend.c', | 
 |   'gkeyfilesettingsbackend.c', | 
 |   'gmemorysettingsbackend.c', | 
 |   'gnullsettingsbackend.c', | 
 |   'gsettingsbackend.c', | 
 |   'gsettingsschema.c', | 
 |   'gsettings-mapping.c', | 
 |   'gsettings.c', | 
 | ) | 
 |  | 
 | application_headers = files( | 
 |   'gapplication.h', | 
 |   'gapplicationcommandline.h', | 
 |  | 
 |   'gactiongroup.h', | 
 |   'gactionmap.h', | 
 |   'gsimpleactiongroup.h', | 
 |   'gremoteactiongroup.h', | 
 |   'gactiongroupexporter.h', | 
 |   'gdbusactiongroup.h', | 
 |   'gaction.h', | 
 |   'gpropertyaction.h', | 
 |   'gsimpleaction.h', | 
 |  | 
 |   'gmenumodel.h', | 
 |   'gmenu.h', | 
 |   'gmenuexporter.h', | 
 |   'gdbusmenumodel.h', | 
 |   'gnotification.h', | 
 | ) | 
 |  | 
 | application_sources = files( | 
 |   'gapplication.c', | 
 |   'gapplicationcommandline.c', | 
 |   'gapplicationimpl-dbus.c', | 
 |  | 
 |   'gactiongroup.c', | 
 |   'gactionmap.c', | 
 |   'gsimpleactiongroup.c', | 
 |   'gremoteactiongroup.c', | 
 |   'gactiongroupexporter.c', | 
 |   'gdbusactiongroup.c', | 
 |   'gaction.c', | 
 |   'gpropertyaction.c', | 
 |   'gsimpleaction.c', | 
 |  | 
 |   'gmenumodel.c', | 
 |   'gmenu.c', | 
 |   'gmenuexporter.c', | 
 |   'gdbusmenumodel.c', | 
 |   'gnotification.c', | 
 |   'gnotificationbackend.c', | 
 | ) | 
 |  | 
 | local_sources = files( | 
 |   'ghttpproxy.c', | 
 |   'glocalfile.c', | 
 |   'glocalfileenumerator.c', | 
 |   'glocalfileinfo.c', | 
 |   'glocalfileinputstream.c', | 
 |   'glocalfilemonitor.c', | 
 |   'glocalfileoutputstream.c', | 
 |   'glocalfileiostream.c', | 
 |   'glocalvfs.c', | 
 |   'gsocks4proxy.c', | 
 |   'gsocks4aproxy.c', | 
 |   'gsocks5proxy.c', | 
 |   'thumbnail-verify.c', | 
 | ) | 
 |  | 
 | platform_deps = [] | 
 | internal_deps = [] | 
 | contenttype_sources = [] | 
 | portal_sources = [] | 
 | unix_sources = [] | 
 | win32_sources = [] | 
 |  | 
 | # This is also used by tests/gdbus-daemon, so use files() to include the path | 
 | gdbus_daemon_sources = [ | 
 |   files('gdbusdaemon.c'), | 
 |   gdbus_daemon_generated, | 
 | ] | 
 |  | 
 | if host_system != 'windows' | 
 |   unix_sources = files( | 
 |     'gfiledescriptorbased.c', | 
 |     'giounix-private.c', | 
 |     'gunixfdmessage.c', | 
 |     'gunixmount.c', | 
 |     'gunixmounts.c', | 
 |     'gunixvolume.c', | 
 |     'gunixvolumemonitor.c', | 
 |     'gunixinputstream.c', | 
 |     'gunixoutputstream.c', | 
 |     'gfdonotificationbackend.c', | 
 |     'ggtknotificationbackend.c', | 
 |   ) | 
 |  | 
 |   portal_sources = [files( | 
 |       'gdocumentportal.c', | 
 |       'gopenuriportal.c', | 
 |       'gmemorymonitorportal.c', | 
 |       'gnetworkmonitorportal.c', | 
 |       'gpowerprofilemonitorportal.c', | 
 |       'gproxyresolverportal.c', | 
 |       'gtrashportal.c', | 
 |       'gportalsupport.c', | 
 |       'gportalnotificationbackend.c', | 
 |       'gsandbox.c', | 
 |     ), | 
 |     xdp_dbus_generated | 
 |   ] | 
 |  | 
 |   gio_unix_include_headers = files( | 
 |     'gfiledescriptorbased.h', | 
 |     'gunixmounts.h', | 
 |     'gunixfdmessage.h', | 
 |     'gunixinputstream.h', | 
 |     'gunixoutputstream.h', | 
 |   ) | 
 |  | 
 |   if glib_have_cocoa | 
 |     settings_sources += files('gnextstepsettingsbackend.m') | 
 |     contenttype_sources += files('gcontenttype-osx.m') | 
 |     unix_sources += files('gosxappinfo.m') | 
 |     framework_dep = dependency('appleframeworks', modules : ['Foundation', 'CoreFoundation', 'AppKit']) | 
 |     platform_deps += [framework_dep] | 
 |     unix_sources += files('gcocoanotificationbackend.m') | 
 |     unix_sources += files('gosxnetworkmonitor.c') | 
 |     application_headers += files('gosxappinfo.h') | 
 |   else | 
 |     contenttype_sources += files('gcontenttype-fdo.c') | 
 |     unix_sources += files('gdesktopappinfo.c') | 
 |     gio_unix_include_headers += files('gdesktopappinfo.h') | 
 |     launch_desktop_sources = files('gio-launch-desktop.c') | 
 |  | 
 |     if host_system == 'linux' | 
 |       launch_desktop_sources += files('../glib/gjournal-private.c') | 
 |     endif | 
 |  | 
 |     gio_launch_desktop = executable('gio-launch-desktop', launch_desktop_sources, | 
 |       include_directories : glibinc, | 
 |       install : true, | 
 |       install_dir : multiarch_libexecdir, | 
 |       install_tag : 'bin', | 
 |       c_args : gio_c_args, | 
 |       # intl.lib is not compatible with SAFESEH | 
 |       link_args : noseh_link_args) | 
 |   endif | 
 |  | 
 |   subdir('xdgmime') | 
 |   internal_deps += [xdgmime_lib] | 
 |  | 
 |   install_headers(gio_unix_include_headers, subdir : 'gio-unix-2.0/gio') | 
 |  | 
 |   if glib_conf.has('HAVE_NETLINK') | 
 |     unix_sources += files( | 
 |       'gnetworkmonitornetlink.c', | 
 |       'gnetworkmonitornm.c', | 
 |     ) | 
 |   endif | 
 | else | 
 |   win32_sources += files('gwin32appinfo.c') | 
 |   contenttype_sources += files('gcontenttype-win32.c') | 
 |   platform_deps += [cc.find_library('shlwapi'), | 
 |                     cc.find_library('dnsapi'), | 
 |                     iphlpapi_dep, | 
 |                     winsock2] | 
 |   platform_deps += uwp_gio_deps | 
 |  | 
 |   win32_sources += files( | 
 |     'gmemorymonitorwin32.c', | 
 |     'gregistrysettingsbackend.c', | 
 |     'gwin32registrykey.c', | 
 |     'gwin32mount.c', | 
 |     'gwin32volumemonitor.c', | 
 |     'gwin32inputstream.c', | 
 |     'gwin32outputstream.c', | 
 |     'gwin32file-sync-stream.c', | 
 |     'gwin32packageparser.c', | 
 |     'gwin32networkmonitor.c', | 
 |     'gwin32networkmonitor.h', | 
 |     'gwin32notificationbackend.c', | 
 |     'gwin32sid.c', | 
 |     'gwin32sid.h', | 
 |   ) | 
 |  | 
 |   if glib_build_shared | 
 |     gio_win_rc = configure_file( | 
 |       input: 'gio.rc.in', | 
 |       output: 'gio.rc', | 
 |       configuration: glibconfig_conf, | 
 |     ) | 
 |     gio_win_res = windows.compile_resources(gio_win_rc) | 
 |     win32_sources += [gio_win_res] | 
 |   endif | 
 |  | 
 |   gio_win32_include_headers = files( | 
 |     'gregistrysettingsbackend.h', | 
 |     'gwin32inputstream.h', | 
 |     'gwin32outputstream.h', | 
 |   ) | 
 |   install_headers(gio_win32_include_headers, subdir : 'gio-win32-2.0/gio') | 
 | endif | 
 |  | 
 | gio_base_sources = files( | 
 |   'gappinfo.c', | 
 |   'gasynchelper.c', | 
 |   'gasyncinitable.c', | 
 |   'gasyncresult.c', | 
 |   'gbufferedinputstream.c', | 
 |   'gbufferedoutputstream.c', | 
 |   'gbytesicon.c', | 
 |   'gcancellable.c', | 
 |   'gcharsetconverter.c', | 
 |   'gcontenttype.c', | 
 |   'gcontextspecificgroup.c', | 
 |   'gconverter.c', | 
 |   'gconverterinputstream.c', | 
 |   'gconverteroutputstream.c', | 
 |   'gcredentials.c', | 
 |   'gdatagrambased.c', | 
 |   'gdatainputstream.c', | 
 |   'gdataoutputstream.c', | 
 |   'gdebugcontroller.c', | 
 |   'gdebugcontrollerdbus.c', | 
 |   'gdrive.c', | 
 |   'gdummyfile.c', | 
 |   'gdummyproxyresolver.c', | 
 |   'gdummytlsbackend.c', | 
 |   'gemblem.c', | 
 |   'gemblemedicon.c', | 
 |   'gfile.c', | 
 |   'gfileattribute.c', | 
 |   'gfileenumerator.c', | 
 |   'gfileicon.c', | 
 |   'gfileinfo.c', | 
 |   'gfileinputstream.c', | 
 |   'gfilemonitor.c', | 
 |   'gfilenamecompleter.c', | 
 |   'gfileoutputstream.c', | 
 |   'gfileiostream.c', | 
 |   'gfilterinputstream.c', | 
 |   'gfilteroutputstream.c', | 
 |   'gicon.c', | 
 |   'ginetaddress.c', | 
 |   'ginetaddressmask.c', | 
 |   'ginetsocketaddress.c', | 
 |   'ginitable.c', | 
 |   'ginputstream.c', | 
 |   'gioerror.c', | 
 |   'giomodule.c', | 
 |   'giomodule-priv.c', | 
 |   'gioscheduler.c', | 
 |   'giostream.c', | 
 |   'gloadableicon.c', | 
 |   'gmarshal-internal.c', | 
 |   'gmount.c', | 
 |   'gmemorymonitor.c', | 
 |   'gmemorymonitordbus.c', | 
 |   'gmemoryinputstream.c', | 
 |   'gmemoryoutputstream.c', | 
 |   'gmountoperation.c', | 
 |   'gnativesocketaddress.c', | 
 |   'gnativevolumemonitor.c', | 
 |   'gnetworkaddress.c', | 
 |   'gnetworking.c', | 
 |   'gnetworkmonitor.c', | 
 |   'gnetworkmonitorbase.c', | 
 |   'gnetworkservice.c', | 
 |   'goutputstream.c', | 
 |   'gpermission.c', | 
 |   'gpollableinputstream.c', | 
 |   'gpollableoutputstream.c', | 
 |   'gpollableutils.c', | 
 |   'gpollfilemonitor.c', | 
 |   'gpowerprofilemonitor.c', | 
 |   'gpowerprofilemonitordbus.c', | 
 |   'gproxy.c', | 
 |   'gproxyaddress.c', | 
 |   'gproxyaddressenumerator.c', | 
 |   'gproxyresolver.c', | 
 |   'gresolver.c', | 
 |   'gresource.c', | 
 |   'gresourcefile.c', | 
 |   'gseekable.c', | 
 |   'gsimpleasyncresult.c', | 
 |   'gsimpleiostream.c', | 
 |   'gsimplepermission.c', | 
 |   'gsimpleproxyresolver.c', | 
 |   'gsocket.c', | 
 |   'gsocketaddress.c', | 
 |   'gsocketaddressenumerator.c', | 
 |   'gsocketclient.c', | 
 |   'gsocketconnectable.c', | 
 |   'gsocketconnection.c', | 
 |   'gsocketcontrolmessage.c', | 
 |   'gsocketinputstream.c', | 
 |   'gsocketlistener.c', | 
 |   'gsocketoutputstream.c', | 
 |   'gsocketservice.c', | 
 |   'gsrvtarget.c', | 
 |   'gsubprocesslauncher.c', | 
 |   'gsubprocess.c', | 
 |   'gtask.c', | 
 |   'gtcpconnection.c', | 
 |   'gtcpwrapperconnection.c', | 
 |   'gthemedicon.c', | 
 |   'gthreadedsocketservice.c', | 
 |   'gthreadedresolver.c', | 
 |   'gthreadedresolver.h', | 
 |   'gtlsbackend.c', | 
 |   'gtlscertificate.c', | 
 |   'gtlsclientconnection.c', | 
 |   'gtlsconnection.c', | 
 |   'gtlsdatabase.c', | 
 |   'gtlsfiledatabase.c', | 
 |   'gtlsinteraction.c', | 
 |   'gtlspassword.c', | 
 |   'gtlsserverconnection.c', | 
 |   'gdtlsconnection.c', | 
 |   'gdtlsclientconnection.c', | 
 |   'gdtlsserverconnection.c', | 
 |   'gunionvolumemonitor.c', | 
 |   'gunixconnection.c', | 
 |   'gunixfdlist.c', | 
 |   'gunixcredentialsmessage.c', | 
 |   'gunixsocketaddress.c', | 
 |   'gvfs.c', | 
 |   'gvolume.c', | 
 |   'gvolumemonitor.c', | 
 |   'gzlibcompressor.c', | 
 |   'gzlibdecompressor.c', | 
 |   'glistmodel.c', | 
 |   'gliststore.c', | 
 | ) | 
 |  | 
 | gio_sources = gio_base_sources | 
 |  | 
 | if glib_build_shared | 
 |   gio_sources += files ('../glib/gtrace.c') | 
 | endif | 
 |  | 
 | gio_sources += contenttype_sources | 
 | gio_sources += gdbus_daemon_sources | 
 | gio_sources += unix_sources | 
 | gio_sources += win32_sources | 
 | gio_sources += application_sources | 
 | gio_sources += settings_sources | 
 | gio_sources += gdbus_sources | 
 | gio_sources += portal_sources | 
 | gio_sources += local_sources | 
 |  | 
 | MISSING_STUFF = ''' | 
 | # This is read by gobject-introspection/misc/ and gtk-doc | 
 | gio-public-headers.txt: Makefile | 
 |   '$(AM_V_GEN) echo $(gioinclude_HEADERS) $(giowin32include_HEADERS) $(giounixinclude_HEADERS) > $@.tmp && mv $@.tmp $@ | 
 |  | 
 | gio.def: libgio-2.0.la | 
 |   '$(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 | 
 |  | 
 | gio-2.0.lib: libgio-2.0.la gio.def | 
 |   '$(AM_V_GEN) lib.exe -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:$(builddir)/gio.def -out:$@ | 
 | ''' | 
 |  | 
 | gio_headers = files( | 
 |   'gappinfo.h', | 
 |   'gasyncinitable.h', | 
 |   'gasyncresult.h', | 
 |   'gbufferedinputstream.h', | 
 |   'gbufferedoutputstream.h', | 
 |   'gbytesicon.h', | 
 |   'gcancellable.h', | 
 |   'gcontenttype.h', | 
 |   'gcharsetconverter.h', | 
 |   'gconverter.h', | 
 |   'gconverterinputstream.h', | 
 |   'gconverteroutputstream.h', | 
 |   'gdatagrambased.h', | 
 |   'gdatainputstream.h', | 
 |   'gdataoutputstream.h', | 
 |   'gdebugcontroller.h', | 
 |   'gdebugcontrollerdbus.h', | 
 |   'gdrive.h', | 
 |   'gemblem.h', | 
 |   'gemblemedicon.h', | 
 |   'gfile.h', | 
 |   'gfileattribute.h', | 
 |   'gfileenumerator.h', | 
 |   'gfileicon.h', | 
 |   'gfileinfo.h', | 
 |   'gfileinputstream.h', | 
 |   'gfilemonitor.h', | 
 |   'gfilenamecompleter.h', | 
 |   'gfileoutputstream.h', | 
 |   'gfileiostream.h', | 
 |   'gfilterinputstream.h', | 
 |   'gfilteroutputstream.h', | 
 |   'gicon.h', | 
 |   'ginetaddress.h', | 
 |   'ginetaddressmask.h', | 
 |   'ginetsocketaddress.h', | 
 |   'ginitable.h', | 
 |   'ginputstream.h', | 
 |   'gio.h', | 
 |   'gio-autocleanups.h', | 
 |   'gioenums.h', | 
 |   'gioerror.h', | 
 |   'giomodule.h', | 
 |   'gioscheduler.h', | 
 |   'giostream.h', | 
 |   'giotypes.h', | 
 |   'gloadableicon.h', | 
 |   'gmount.h', | 
 |   'gmemoryinputstream.h', | 
 |   'gmemorymonitor.h', | 
 |   'gmemoryoutputstream.h', | 
 |   'gmountoperation.h', | 
 |   'gnativesocketaddress.h', | 
 |   'gnativevolumemonitor.h', | 
 |   'gnetworkaddress.h', | 
 |   'gnetworkmonitor.h', | 
 |   'gnetworkservice.h', | 
 |   'goutputstream.h', | 
 |   'gpermission.h', | 
 |   'gpollableinputstream.h', | 
 |   'gpollableoutputstream.h', | 
 |   'gpollableutils.h', | 
 |   'gpowerprofilemonitor.h', | 
 |   'gproxy.h', | 
 |   'gproxyaddress.h', | 
 |   'gproxyaddressenumerator.h', | 
 |   'gproxyresolver.h', | 
 |   'gresolver.h', | 
 |   'gresource.h', | 
 |   'gseekable.h', | 
 |   'gsimpleasyncresult.h', | 
 |   'gsimpleiostream.h', | 
 |   'gsimplepermission.h', | 
 |   'gsimpleproxyresolver.h', | 
 |   'gsocket.h', | 
 |   'gsocketaddress.h', | 
 |   'gsocketaddressenumerator.h', | 
 |   'gsocketclient.h', | 
 |   'gsocketconnectable.h', | 
 |   'gsocketconnection.h', | 
 |   'gsocketcontrolmessage.h', | 
 |   'gsocketlistener.h', | 
 |   'gsocketservice.h', | 
 |   'gsrvtarget.h', | 
 |   'gsubprocess.h', | 
 |   'gsubprocesslauncher.h', | 
 |   'gtask.h', | 
 |   'gtcpconnection.h', | 
 |   'gtcpwrapperconnection.h', | 
 |   'gthemedicon.h', | 
 |   'gthreadedsocketservice.h', | 
 |   'gtlsbackend.h', | 
 |   'gtlscertificate.h', | 
 |   'gtlsclientconnection.h', | 
 |   'gtlsconnection.h', | 
 |   'gtlsdatabase.h', | 
 |   'gtlsfiledatabase.h', | 
 |   'gtlsinteraction.h', | 
 |   'gtlspassword.h', | 
 |   'gtlsserverconnection.h', | 
 |   'gdtlsconnection.h', | 
 |   'gdtlsclientconnection.h', | 
 |   'gdtlsserverconnection.h', | 
 |   'gunixconnection.h', | 
 |   'gunixcredentialsmessage.h', | 
 |   'gunixfdlist.h', | 
 |   'gunixsocketaddress.h', | 
 |   'gvfs.h', | 
 |   'gvolume.h', | 
 |   'gvolumemonitor.h', | 
 |   'gzlibcompressor.h', | 
 |   'gzlibdecompressor.h', | 
 |   'glistmodel.h', | 
 |   'gliststore.h', | 
 | ) | 
 |  | 
 | gio_visibility_h = custom_target( | 
 |   output: 'gio-visibility.h', | 
 |   command: [gen_visibility_macros, meson.project_version(), 'visibility-macros', 'GIO', '@OUTPUT@'], | 
 |   install: true, | 
 |   install_dir: gio_includedir, | 
 | ) | 
 | gio_sources += gio_visibility_h | 
 |  | 
 | gio_headers += application_headers | 
 | gio_headers += settings_headers | 
 | gio_headers += gdbus_headers | 
 | install_headers(gio_headers, install_dir : gio_includedir) | 
 |  | 
 | # We can't use gnome.mkenums() because the GNOME module looks for glib-mkenums | 
 | # in PATH, which means you can't bootstrap glib with its own glib-mkenums. | 
 | gioenumtypes_h = custom_target('gioenumtypes_h', | 
 |   output : 'gioenumtypes.h', | 
 |   capture : true, | 
 |   input : gio_headers, | 
 |   install : true, | 
 |   install_dir : gio_includedir, | 
 |   command : [python, glib_mkenums, | 
 |              '--template', files('gioenumtypes.h.template'), | 
 |              '@INPUT@', gnetworking_h]) | 
 |  | 
 | gioenumtypes_c = custom_target('gioenumtypes_c', | 
 |   output : 'gioenumtypes.c', | 
 |   capture : true, | 
 |   input : gio_headers, | 
 |   depends : [gioenumtypes_h], | 
 |   command : [python, glib_mkenums, | 
 |              '--template', files('gioenumtypes.c.template'), | 
 |              '@INPUT@', gnetworking_h]) | 
 |  | 
 | gioenumtypes_dep = declare_dependency(sources : [gioenumtypes_h, glib_enumtypes_h, gio_visibility_h]) | 
 |  | 
 | file_monitor_backend = get_option('file_monitor_backend') | 
 | if file_monitor_backend == 'auto' | 
 |   if glib_conf.has('HAVE_SYS_INOTIFY_H') and have_func_inotify_init1 | 
 |     file_monitor_backend = 'inotify' | 
 |   elif have_func_kqueue and have_func_kevent | 
 |     file_monitor_backend = 'kqueue' | 
 |   elif host_system == 'windows' | 
 |     file_monitor_backend = 'win32' | 
 |   endif | 
 | endif | 
 |  | 
 | # inotify | 
 | if file_monitor_backend == 'inotify' | 
 |   glib_conf.set('FILE_MONITOR_BACKEND_INOTIFY', 1) | 
 |   subdir('inotify') | 
 |   internal_deps += [ inotify_lib ] | 
 | endif | 
 |  | 
 | # libinotify-kqueue | 
 | # uses the same code as inotify, but changes some functions behavior via #ifdef's | 
 | if file_monitor_backend == 'libinotify-kqueue' | 
 |   glib_conf.set('FILE_MONITOR_BACKEND_LIBINOTIFY_KQUEUE', 1) | 
 |   subdir('inotify') | 
 |   internal_deps += [ inotify_lib ] | 
 | endif | 
 |  | 
 | # kevent | 
 | if file_monitor_backend == 'kqueue' | 
 |   glib_conf.set('FILE_MONITOR_BACKEND_KQUEUE', 1) | 
 |   subdir('kqueue') | 
 |   internal_deps += [ kqueue_lib ] | 
 | endif | 
 |  | 
 | if file_monitor_backend == 'win32' | 
 |   glib_conf.set('FILE_MONITOR_BACKEND_WIN32', 1) | 
 |   subdir('win32') | 
 |   internal_deps += [ giowin32_lib ] | 
 | endif | 
 |  | 
 | if have_bash | 
 |   bash_comp_inst_dir = '' | 
 |   if bash_comp_dep.found() | 
 |     bash_comp_dir_override = bash_comp_dep.version().version_compare('>= 2.10') ? ['datadir', get_option('datadir')] : ['prefix', get_option('prefix')] | 
 |     bash_comp_inst_dir = bash_comp_dep.get_variable('completionsdir', pkgconfig_define: bash_comp_dir_override) | 
 |   endif | 
 |  | 
 |   if bash_comp_inst_dir == '' | 
 |     message('Found bash-completion but the .pc file did not set \'completionsdir\', fallback to a predefined path') | 
 |     bash_comp_inst_dir = join_paths(get_option('datadir'), 'bash-completion/completions') | 
 |   endif | 
 |  | 
 |   install_data([ | 
 |       'completion/gapplication', | 
 |       'completion/gdbus', | 
 |       'completion/gio', | 
 |       'completion/gsettings', | 
 |       'completion/gresource' | 
 |     ], | 
 |     install_dir: bash_comp_inst_dir, | 
 |     install_tag: 'bin', | 
 |   ) | 
 | endif | 
 |  | 
 | if enable_dtrace | 
 |   gio_dtrace_obj = dtrace_obj_gen.process('gio_probes.d') | 
 |   gio_dtrace_hdr = dtrace_hdr_gen.process('gio_probes.d') | 
 | else | 
 |   gio_dtrace_obj = [] | 
 |   gio_dtrace_hdr = [] | 
 | endif | 
 |  | 
 | libgio = library('gio-2.0', | 
 |   gioenumtypes_h, gioenumtypes_c, gnetworking_h, gio_sources, | 
 |   gio_dtrace_hdr, gio_dtrace_obj, | 
 |   version : library_version, | 
 |   soversion : soversion, | 
 |   darwin_versions : darwin_versions, | 
 |   install : true, | 
 |   include_directories : [configinc, gioinc], | 
 |   #  '$(gio_win32_res_ldflag)', | 
 |   link_with: internal_deps, | 
 |   dependencies : [libz_dep, libdl_dep, libmount_dep, libglib_dep, | 
 |                   libgobject_dep, libgmodule_dep, selinux_dep, xattr_dep, | 
 |                   platform_deps, network_libs, libsysprof_capture_dep, | 
 |                   gioenumtypes_dep, gvdb_dep], | 
 |   c_args : [gio_c_args, gio_c_args_internal], | 
 |   objc_args : [gio_c_args, gio_c_args_internal], | 
 |   gnu_symbol_visibility : 'hidden', | 
 |   # intl.lib is not compatible with SAFESEH | 
 |   link_args : [noseh_link_args, glib_link_flags], | 
 | ) | 
 |  | 
 | if get_option('gio_module_dir') != '' | 
 |   pkgconfig_giomodulesdir = join_paths('${prefix}', get_option('gio_module_dir')) | 
 | else | 
 |   pkgconfig_giomodulesdir = join_paths('${libdir}', 'gio', 'modules') | 
 | endif | 
 |  | 
 | schemas_subdir = join_paths('glib-2.0', 'schemas') | 
 | dtds_subdir = join_paths('glib-2.0', 'dtds') | 
 |  | 
 | libgio_dep = declare_dependency(link_with : libgio, | 
 |   dependencies : [libgmodule_dep, libgobject_dep, gioenumtypes_dep], | 
 |   include_directories : [gioinc], | 
 |   variables : [ | 
 |     'schemasdir=' + join_paths(glib_datadir, schemas_subdir), | 
 |     'giomoduledir=' + glib_giomodulesdir, | 
 |     'dtdsdir=' + join_paths(glib_datadir, dtds_subdir) | 
 |   ], | 
 | ) | 
 |  | 
 | pkg.generate(libgio, | 
 |   requires : ['glib-2.0', 'gobject-2.0'], | 
 |   variables : [ | 
 |     'schemasdir=' + '${datadir}' / schemas_subdir, | 
 |     'dtdsdir=' + '${datadir}' / dtds_subdir, | 
 |     'giomoduledir=' + pkgconfig_giomodulesdir, | 
 |     'gio=' + '${bindir}' / 'gio', | 
 |     'gio_querymodules=' + pkgconfig_multiarch_bindir / 'gio-querymodules', | 
 |     'glib_compile_schemas=' + pkgconfig_multiarch_bindir / 'glib-compile-schemas', | 
 |     'glib_compile_resources=' + '${bindir}' / 'glib-compile-resources', | 
 |     'gdbus=' + '${bindir}' /'gdbus', | 
 |     'gdbus_codegen=' + '${bindir}' / 'gdbus-codegen', | 
 |     'gresource=' + '${bindir}' / 'gresource', | 
 |     'gsettings=' + '${bindir}' / 'gsettings', | 
 |   ], | 
 |   uninstalled_variables : [ | 
 |     'gio=${prefix}/gio/gio', | 
 |     'gio_querymodules=${prefix}/gio/gio-querymodules', | 
 |     'glib_compile_schemas=${prefix}/gio/glib-compile-schemas', | 
 |     'glib_compile_resources=${prefix}/gio/glib-compile-resources', | 
 |     'gdbus=${prefix}/gio/gdbus', | 
 |     'gdbus_codegen=${prefix}/gio/gdbus-2.0/codegen/gdbus-codegen', | 
 |     'gresource=${prefix}/gio/gresource', | 
 |     'gsettings=${prefix}/gio/gsettings', | 
 |   ], | 
 |   version : glib_version, | 
 |   install_dir : glib_pkgconfigreldir, | 
 |   filebase : 'gio-2.0', | 
 |   name : 'GIO', | 
 |   description : 'glib I/O library', | 
 | ) | 
 | meson.override_dependency('gio-2.0', libgio_dep) | 
 |  | 
 | if host_system == 'windows' | 
 |   pkg.generate(requires : ['gobject-2.0', 'gmodule-no-export-2.0', 'gio-2.0'], | 
 |     subdirs : ['gio-win32-2.0'], | 
 |     version : glib_version, | 
 |     install_dir : glib_pkgconfigreldir, | 
 |     filebase : 'gio-windows-2.0', | 
 |     name : 'GIO Windows specific APIs', | 
 |     description : 'Windows specific headers for glib I/O library', | 
 |   ) | 
 |   meson.override_dependency('gio-windows-2.0', libgio_dep) | 
 | else | 
 |   pkg.generate(requires : ['gobject-2.0', 'gio-2.0'], | 
 |     subdirs : ['gio-unix-2.0'], | 
 |     version : glib_version, | 
 |     install_dir : glib_pkgconfigreldir, | 
 |     filebase : 'gio-unix-2.0', | 
 |     name : 'GIO unix specific APIs', | 
 |     description : 'unix specific headers for glib I/O library', | 
 |   ) | 
 |   meson.override_dependency('gio-unix-2.0', libgio_dep) | 
 | endif | 
 |  | 
 | if host_system == 'windows' | 
 |   # Hack till https://github.com/mesonbuild/meson/issues/2324 is fixed | 
 |   libgiounix_dep = dependency('', required : false) | 
 |   libgiowin32_dep = libgio_dep | 
 | else | 
 |   libgiowin32_dep = dependency('', required : false) | 
 |   libgiounix_dep = libgio_dep | 
 | endif | 
 |  | 
 | # Dependencies used by executables below | 
 | have_libelf = false | 
 | libelf = dependency('libelf', version : '>= 0.8.12', required : false) | 
 | if libelf.found() and get_option('libelf').allowed() | 
 |   have_libelf = true | 
 | else | 
 |   # This fallback is necessary on *BSD. elfutils isn't the only libelf | 
 |   # implementation, and *BSD usually includes their own libelf as a system | 
 |   # library which doesn't have a corresponding .pc file. | 
 |   libelf = cc.find_library('elf', required : get_option ('libelf')) | 
 |   have_libelf = libelf.found() | 
 |   have_libelf = have_libelf and cc.has_function('elf_begin', dependencies : libelf) | 
 |   have_libelf = have_libelf and cc.has_function('elf_getshdrstrndx', dependencies : libelf) | 
 |   have_libelf = have_libelf and cc.has_function('elf_getshdrnum', dependencies : libelf) | 
 |   have_libelf = have_libelf and cc.has_header('libelf.h') | 
 |   # This check is necessary for Solaris & illumos, where 32-bit libelf | 
 |   # is incompatible with large-file mode, which meson forces to be enabled | 
 |   have_libelf = have_libelf and cc.compiles('#include <libelf.h>', name: 'libelf.h') | 
 | endif | 
 |  | 
 | if have_libelf | 
 |   glib_conf.set('HAVE_LIBELF', 1) | 
 | else | 
 |   libelf = [] | 
 | endif | 
 |  | 
 | gconstructor_as_data_h = custom_target('gconstructor_as_data.h', | 
 |     input : ['data-to-c.py', files('../glib/gconstructor.h')], | 
 |     output : ['gconstructor_as_data.h'], | 
 |     command : [python, '@INPUT0@', '@INPUT1@', 'gconstructor_code', '@OUTPUT@']) | 
 |  | 
 | # Several installed executables | 
 | gio_tool_sources = [ | 
 |   'gio-tool.c', | 
 |   'gio-tool.h', | 
 |   'gio-tool-cat.c', | 
 |   'gio-tool-copy.c', | 
 |   'gio-tool-info.c', | 
 |   'gio-tool-launch.c', | 
 |   'gio-tool-list.c', | 
 |   'gio-tool-mime.c', | 
 |   'gio-tool-mkdir.c', | 
 |   'gio-tool-monitor.c', | 
 |   'gio-tool-mount.c', | 
 |   'gio-tool-move.c', | 
 |   'gio-tool-open.c', | 
 |   'gio-tool-rename.c', | 
 |   'gio-tool-remove.c', | 
 |   'gio-tool-save.c', | 
 |   'gio-tool-set.c', | 
 |   'gio-tool-trash.c', | 
 |   'gio-tool-tree.c', | 
 | ] | 
 |  | 
 | gio_tool = executable('gio', gio_tool_sources, | 
 |   install : true, | 
 |   install_tag : 'bin', | 
 |   c_args : gio_c_args, | 
 |   # intl.lib is not compatible with SAFESEH | 
 |   link_args : noseh_link_args, | 
 |   dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep]) | 
 |  | 
 | executable('gresource', 'gresource-tool.c', | 
 |   install : true, | 
 |   install_tag : 'bin', | 
 |   # intl.lib is not compatible with SAFESEH | 
 |   link_args : noseh_link_args, | 
 |   dependencies : [libelf, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep]) | 
 |  | 
 | gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodule-priv.c', | 
 |   install : true, | 
 |   install_dir : multiarch_bindir, | 
 |   install_tag : 'bin', | 
 |   c_args : gio_c_args, | 
 |   # intl.lib is not compatible with SAFESEH | 
 |   link_args : noseh_link_args, | 
 |   dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep]) | 
 |  | 
 | glib_compile_schemas = executable('glib-compile-schemas', | 
 |   ['glib-compile-schemas.c'], | 
 |   install : true, | 
 |   install_dir : multiarch_bindir, | 
 |   install_tag : 'bin', | 
 |   # intl.lib is not compatible with SAFESEH | 
 |   link_args : noseh_link_args, | 
 |   dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep, gvdb_dep]) | 
 |  | 
 | glib_compile_resources = executable('glib-compile-resources', | 
 |   [gconstructor_as_data_h, 'glib-compile-resources.c'], | 
 |   install : true, | 
 |   install_tag : 'bin-devel', | 
 |   c_args : gio_c_args, | 
 |   # intl.lib is not compatible with SAFESEH | 
 |   link_args : noseh_link_args, | 
 |   dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep, gvdb_dep]) | 
 | install_data('gresource.dtd', | 
 |   install_dir: get_option('datadir') / dtds_subdir, | 
 |   install_tag: 'devel', | 
 | ) | 
 |  | 
 | # Cannot override those programs in cross compilation case because they are | 
 | # native executables that cannot be run on the build machine. | 
 | # See https://gitlab.gnome.org/GNOME/glib/issues/1859. | 
 | if meson.can_run_host_binaries() | 
 |   meson.override_find_program('glib-compile-schemas', glib_compile_schemas) | 
 |   meson.override_find_program('glib-compile-resources', glib_compile_resources) | 
 |   meson.override_find_program('gio-querymodules', gio_querymodules) | 
 | endif | 
 |  | 
 | executable('gsettings', 'gsettings-tool.c', | 
 |   install : true, | 
 |   install_tag : 'bin', | 
 |   c_args : gio_c_args, | 
 |   # intl.lib is not compatible with SAFESEH | 
 |   link_args : noseh_link_args, | 
 |   dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep]) | 
 | install_data('gschema.dtd', | 
 |   install_dir : get_option('datadir') / schemas_subdir, | 
 |   install_tag : 'devel', | 
 | ) | 
 |  | 
 | install_data(['gschema.loc', 'gschema.its'], | 
 |   install_dir : get_option('datadir') / 'gettext' / 'its', | 
 |   install_tag : 'devel', | 
 | ) | 
 |  | 
 | executable('gdbus', 'gdbus-tool.c', | 
 |   install : true, | 
 |   install_tag : 'bin', | 
 |   c_args : gio_c_args, | 
 |   # intl.lib is not compatible with SAFESEH | 
 |   link_args : noseh_link_args, | 
 |   dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep]) | 
 |  | 
 | if host_system != 'windows' and not glib_have_cocoa | 
 |   executable('gapplication', 'gapplication-tool.c', | 
 |     install : true, | 
 |     install_tag : 'bin', | 
 |     c_args : gio_c_args, | 
 |     # intl.lib is not compatible with SAFESEH | 
 |     link_args : noseh_link_args, | 
 |     dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep]) | 
 | endif | 
 |  | 
 | if enable_systemtap | 
 |   gio_stp = configure_file(input : 'gio.stp.in', | 
 |     output : '@0@.stp'.format(libgio.full_path().split('/').get(-1)), | 
 |     configuration : stp_cdata, | 
 |     install_dir : tapset_install_dir, | 
 |     install_tag : 'systemtap', | 
 |   ) | 
 | endif | 
 |  | 
 | if multiarch_bindir != get_option('bindir') | 
 |   foreach exe : ['gio-querymodules', 'glib-compile-schemas'] | 
 |     install_symlink( | 
 |       exe, | 
 |       install_dir : get_option('bindir'), | 
 |       pointing_to : get_option('prefix') / multiarch_bindir / exe, | 
 |     ) | 
 |   endforeach | 
 | endif | 
 |  | 
 | if build_tests | 
 |     subdir('tests') | 
 | endif | 
 |  | 
 | # The following is an example for building internal marshallers that are used | 
 | # by GIO. We cannot guarantee glib-genmarshal availability while building GLib | 
 | # so they are pre-generated and placed into gmarshal-internal.[ch]. | 
 | # | 
 | # gmarshal_internal = gnome.genmarshal('gmarshal-internal', | 
 | #   sources: 'gmarshal-internal.list', | 
 | #   prefix: '_g_cclosure_marshal', | 
 | #   valist_marshallers: true, | 
 | #   internal: true, | 
 | # ) |