Update Friulian translation
[glib.git] / gio / meson.build
blobeae9bada8d5cc2458573d319e0c2f16dc2afc2e1
1 gio_c_args = [
2   '-DG_LOG_DOMAIN="GLib-GIO"',
3   '-DGIO_COMPILATION',
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 endif
23 if host_system.contains('android')
24   # Android does not have C_IN in public headers, we define it wherever necessary
25   if not cc.compiles('''#include <sys/types.h>
26                         #include <arpa/nameser.h>
27                         int qclass = C_IN;''',
28                      name : 'C_IN in public headers (no arpa/nameser_compat.h needed)')
29     if cc.compiles('''#include <sys/types.h>
30                       #include <arpa/nameser.h>
31                       #include <arpa/nameser_compat.h>
32                       int qclass = C_IN;''',
33                    name : 'arpa/nameser_compat.h needed for C_IN')
34       gnetworking_h_nameser_compat_include = '#include <arpa/nameser_compat.h>'
35     else
36       error('Could not find required includes for ARPA C_IN')
37     endif
38   endif
39 endif
41 network_libs = [ ]
42 network_args = [ ]
43 if host_system != 'windows'
44   # res_query()
45   res_query_test = '''#include <resolv.h>
46                       int main (int argc, char ** argv) {
47                         return res_query("test", 0, 0, (void *)0, 0);
48                       }'''
49   res_query_test_full = '''#include <sys/types.h>
50                            #include <netinet/in.h>
51                            #include <arpa/nameser.h>
52                         ''' + res_query_test
53   if not cc.links(res_query_test_full, name : 'res_query()')
54     if cc.links(res_query_test_full, args : '-lresolv', name : 'res_query() in -lresolv')
55       network_libs += [ cc.find_library('resolv') ]
56       network_args += [ '-lresolv' ]
57     elif cc.links(res_query_test, args : '-lbind', name : 'res_query() in -lbind')
58       network_libs += [ cc.find_library('bind') ]
59       network_args += [ '-lbind' ]
60     else
61       error('Could not find res_query()')
62     endif
63   endif
65   # socket()
66   socket_test = '''#include <sys/types.h>
67                    #include <sys/socket.h>
68                    int main (int argc, char ** argv) {
69                      return socket(1, 2, 3);
70                    }'''
71   if not cc.links(socket_test, name : 'socket()')
72     if cc.links(socket_test, args : '-lsocket', name : 'socket() in -lsocket')
73       network_libs += [ cc.find_library('socket') ]
74       network_args += [ '-lsocket' ]
75     else
76       error('Could not find socket()')
77     endif
78   endif
80   # res_init()
81   if cc.links('''#include <sys/types.h>
82                  #include <netinet/in.h>
83                  #include <arpa/nameser.h>
84                  #include <resolv.h>
85                  int main (int argc, char ** argv) {
86                    return res_init();
87                  }''', args : network_args, name : 'res_init()')
88     glib_conf.set('HAVE_RES_INIT', 1)
89   endif
91   if cc.compiles('''#include <netinet/in.h>
92                     struct ip_mreqn foo;''',
93                  name : 'struct ip_mreqn')
94     glib_conf.set('HAVE_IP_MREQN', '/**/')
95   endif
96 endif
98 network_args_string = ''
99 foreach arg : network_args
100   network_args_string += arg + ' '
101 endforeach
102 glib_conf.set('NETWORK_LIBS', network_args_string)
104 gnetworking_h_conf.set('WSPIAPI_INCLUDE', gnetworking_h_wspiapi_include)
105 gnetworking_h_conf.set('NAMESER_COMPAT_INCLUDE', gnetworking_h_nameser_compat_include)
107 gnetworking_h = configure_file(input : 'gnetworking.h.in',
108                                output : 'gnetworking.h',
109                                install_dir : join_paths(get_option('includedir'), 'glib-2.0/gio'),
110                                configuration : gnetworking_h_conf)
112 gdbus_headers = files([
113   'gdbusauthobserver.h',
114   'gcredentials.h',
115   'gdbusutils.h',
116   'gdbuserror.h',
117   'gdbusaddress.h',
118   'gdbusconnection.h',
119   'gdbusmessage.h',
120   'gdbusnameowning.h',
121   'gdbusnamewatching.h',
122   'gdbusproxy.h',
123   'gdbusintrospection.h',
124   'gdbusmethodinvocation.h',
125   'gdbusserver.h',
126   'gdbusinterface.h',
127   'gdbusinterfaceskeleton.h',
128   'gdbusobject.h',
129   'gdbusobjectskeleton.h',
130   'gdbusobjectproxy.h',
131   'gdbusobjectmanager.h',
132   'gdbusobjectmanagerclient.h',
133   'gdbusobjectmanagerserver.h',
134   'gtestdbus.h',
137 gdbus_sources = [
138   'gdbusutils.c',
139   'gdbusaddress.c',
140   'gdbusauthobserver.c',
141   'gdbusauth.c',
142   'gdbusauthmechanism.c',
143   'gdbusauthmechanismanon.c',
144   'gdbusauthmechanismexternal.c',
145   'gdbusauthmechanismsha1.c',
146   'gdbuserror.c',
147   'gdbusconnection.c',
148   'gdbusmessage.c',
149   'gdbusnameowning.c',
150   'gdbusnamewatching.c',
151   'gdbusproxy.c',
152   'gdbusprivate.c',
153   'gdbusintrospection.c',
154   'gdbusmethodinvocation.c',
155   'gdbusserver.c',
156   'gdbusinterface.c',
157   'gdbusinterfaceskeleton.c',
158   'gdbusobject.c',
159   'gdbusobjectskeleton.c',
160   'gdbusobjectproxy.c',
161   'gdbusobjectmanager.c',
162   'gdbusobjectmanagerclient.c',
163   'gdbusobjectmanagerserver.c',
164   'gtestdbus.c',
167 # Generate gdbus-codegen
168 subdir('gdbus-2.0/codegen')
170 # Generate xdp-dbus.{c,h}
171 xdp_dbus_generated = custom_target('xdp-dbus',
172     input : ['org.freedesktop.portal.Documents.xml',
173              'org.freedesktop.portal.OpenURI.xml',
174              'org.freedesktop.portal.NetworkMonitor.xml',
175              'org.freedesktop.portal.ProxyResolver.xml'],
176     output : ['xdp-dbus.h', 'xdp-dbus.c'],
177     command : [python, gdbus_codegen,
178                '--interface-prefix', 'org.freedesktop.portal.',
179                '--output-directory', '@OUTDIR@',
180                '--generate-c-code', 'xdp-dbus',
181                '--c-namespace', 'GXdp',
182                '--annotate', 'org.freedesktop.portal.Documents.Add()',
183                              'org.gtk.GDBus.C.UnixFD', 'true',
184                '--annotate', 'org.freedesktop.portal.Documents.AddNamed()',
185                              'org.gtk.GDBus.C.UnixFD', 'true',
186                '--annotate', 'org.freedesktop.portal.Documents.AddFull()',
187                              'org.gtk.GDBus.C.UnixFD', 'true',
188                '--annotate', 'org.freedesktop.portal.OpenURI.OpenFile()',
189                              'org.gtk.GDBus.C.UnixFD', 'true',
190                '@INPUT@'])
192 # Generate gdbus-generated.{c,h}
193 gdbus_daemon_generated = custom_target('gdbus-daemon-generated',
194     input : ['dbus-daemon.xml'],
195     output : ['gdbus-daemon-generated.h', 'gdbus-daemon-generated.c'],
196     command : [python, gdbus_codegen,
197                '--interface-prefix', 'org.',
198                '--output-directory', '@OUTDIR@',
199                '--generate-c-code', 'gdbus-daemon-generated',
200                '--c-namespace', '_G', '@INPUT@'])
202 settings_headers = files([
203   'gsettingsbackend.h',
204   'gsettingsschema.h',
205   'gsettings.h',
208 settings_sources = [
209   'gvdb/gvdb-reader.c',
210   'gdelayedsettingsbackend.c',
211   'gkeyfilesettingsbackend.c',
212   'gmemorysettingsbackend.c',
213   'gnullsettingsbackend.c',
214   'gsettingsbackend.c',
215   'gsettingsschema.c',
216   'gsettings-mapping.c',
217   'gsettings.c',
220 if host_system == 'windows'
221   settings_sources += [ 'gregistrysettingsbackend.c' ]
222 endif
224 # FIXME:
225 #if OS_COCOA
226 #settings_sources += [ 'gnextstepsettingsbackend.c' ]
227 #endif
229 application_headers = files([
230   'gapplication.h',
231   'gapplicationcommandline.h',
233   'gactiongroup.h',
234   'gactionmap.h',
235   'gsimpleactiongroup.h',
236   'gremoteactiongroup.h',
237   'gactiongroupexporter.h',
238   'gdbusactiongroup.h',
239   'gaction.h',
240   'gpropertyaction.h',
241   'gsimpleaction.h',
243   'gmenumodel.h',
244   'gmenu.h',
245   'gmenuexporter.h',
246   'gdbusmenumodel.h',
247   'gnotification.h',
250 application_sources = [
251   'gapplication.c',
252   'gapplicationcommandline.c',
253   'gapplicationimpl-dbus.c',
255   'gactiongroup.c',
256   'gactionmap.c',
257   'gsimpleactiongroup.c',
258   'gremoteactiongroup.c',
259   'gactiongroupexporter.c',
260   'gdbusactiongroup.c',
261   'gaction.c',
262   'gpropertyaction.c',
263   'gsimpleaction.c',
265   'gmenumodel.c',
266   'gmenu.c',
267   'gmenuexporter.c',
268   'gdbusmenumodel.c',
269   'gnotification.c',
270   'gnotificationbackend.c',
273 local_sources = [
274   'ghttpproxy.c',
275   'glocalfile.c',
276   'glocalfileenumerator.c',
277   'glocalfileinfo.c',
278   'glocalfileinputstream.c',
279   'glocalfilemonitor.c',
280   'glocalfileoutputstream.c',
281   'glocalfileiostream.c',
282   'glocalvfs.c',
283   'gsocks4proxy.c',
284   'gsocks4aproxy.c',
285   'gsocks5proxy.c',
286   'thumbnail-verify.c',
289 platform_deps = []
290 internal_deps = []
291 appinfo_sources = []
292 contenttype_sources = []
293 portal_sources = []
294 unix_sources = []
296 if host_system != 'windows'
297   unix_sources = [
298     'gfiledescriptorbased.c',
299     'gunixconnection.c',
300     'gunixcredentialsmessage.c',
301     'gunixfdlist.c',
302     'gunixfdmessage.c',
303     'gunixmount.c',
304     'gunixmounts.c',
305     'gunixsocketaddress.c',
306     'gunixvolume.c',
307     'gunixvolumemonitor.c',
308     'gunixinputstream.c',
309     'gunixoutputstream.c',
310     'gfdonotificationbackend.c',
311     'ggtknotificationbackend.c',
312   ]
314   portal_sources = [
315     'gdocumentportal.c',
316     'gopenuriportal.c',
317     'gnetworkmonitorportal.c',
318     'gproxyresolverportal.c',
319     'gportalsupport.c',
320     'gportalnotificationbackend.c',
321     xdp_dbus_generated
322   ]
324   gio_unix_include_headers = [
325     'gfiledescriptorbased.h',
326     'gunixconnection.h',
327     'gunixcredentialsmessage.h',
328     'gunixmounts.h',
329     'gunixfdlist.h',
330     'gunixfdmessage.h',
331     'gunixinputstream.h',
332     'gunixoutputstream.h',
333     'gunixsocketaddress.h',
334   ]
336   if glib_have_cocoa
337     contenttype_sources += ['gosxcontenttype.c']
338     appinfo_sources += ['gosxappinfo.c']
339     if glib_have_os_x_9_or_later
340       unix_sources += ['gcocoanotificationbackend.c']
341     endif
342   else
343     contenttype_sources += ['gcontenttype.c']
344     appinfo_sources += ['gdesktopappinfo.c']
345     gio_unix_include_headers += ['gdesktopappinfo.h']
346     subdir('xdgmime')
347     internal_deps += [xdgmime_lib]
348   endif
350   install_headers(gio_unix_include_headers, subdir : 'gio-unix-2.0/gio')
352   if glib_conf.has('HAVE_NETLINK')
353     unix_sources += [
354       'gnetworkmonitornetlink.c',
355       'gnetworkmonitornm.c',
356     ]
357   endif
358 endif
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 win32_sources = gdbus_daemon_sources
367 if host_system == 'windows'
368   appinfo_sources += ['gwin32appinfo.c']
369   contenttype_sources += ['gcontenttype-win32.c']
370   platform_deps += [cc.find_library('shlwapi'),
371                     cc.find_library('dnsapi'),
372                     iphlpapi_dep,
373                     winsock2]
374   win32_sources += [
375     'gwin32registrykey.c',
376     'gwin32mount.c',
377     'gwin32volumemonitor.c',
378     'gwin32inputstream.c',
379     'gwin32outputstream.c',
380   ]
382   gio_win32_include_headers = [
383     'gwin32inputstream.h',
384     'gwin32outputstream.h',
385   ]
386   install_headers(gio_win32_include_headers, subdir : 'gio-win32-2.0/gio')
387 endif
389 gio_sources = [
390   'gappinfo.c',
391   'gasynchelper.c',
392   'gasyncinitable.c',
393   'gasyncresult.c',
394   'gbufferedinputstream.c',
395   'gbufferedoutputstream.c',
396   'gbytesicon.c',
397   'gcancellable.c',
398   'gcharsetconverter.c',
399   'gcontextspecificgroup.c',
400   'gconverter.c',
401   'gconverterinputstream.c',
402   'gconverteroutputstream.c',
403   'gcredentials.c',
404   'gdatagrambased.c',
405   'gdatainputstream.c',
406   'gdataoutputstream.c',
407   'gdrive.c',
408   'gdummyfile.c',
409   'gdummyproxyresolver.c',
410   'gdummytlsbackend.c',
411   'gemblem.c',
412   'gemblemedicon.c',
413   'gfile.c',
414   'gfileattribute.c',
415   'gfileenumerator.c',
416   'gfileicon.c',
417   'gfileinfo.c',
418   'gfileinputstream.c',
419   'gfilemonitor.c',
420   'gfilenamecompleter.c',
421   'gfileoutputstream.c',
422   'gfileiostream.c',
423   'gfilterinputstream.c',
424   'gfilteroutputstream.c',
425   'gicon.c',
426   'ginetaddress.c',
427   'ginetaddressmask.c',
428   'ginetsocketaddress.c',
429   'ginitable.c',
430   'ginputstream.c',
431   'gioerror.c',
432   'giomodule.c',
433   'gioscheduler.c',
434   'giostream.c',
435   'gloadableicon.c',
436   'gmount.c',
437   'gmemoryinputstream.c',
438   'gmemoryoutputstream.c',
439   'gmountoperation.c',
440   'gnativevolumemonitor.c',
441   'gnativesocketaddress.c',
442   'gnetworkaddress.c',
443   'gnetworking.c',
444   'gnetworkmonitor.c',
445   'gnetworkmonitorbase.c',
446   'gnetworkservice.c',
447   'goutputstream.c',
448   'gpermission.c',
449   'gpollableinputstream.c',
450   'gpollableoutputstream.c',
451   'gpollableutils.c',
452   'gpollfilemonitor.c',
453   'gproxy.c',
454   'gproxyaddress.c',
455   'gproxyaddressenumerator.c',
456   'gproxyresolver.c',
457   'gresolver.c',
458   'gresource.c',
459   'gresourcefile.c',
460   'gseekable.c',
461   'gsimpleasyncresult.c',
462   'gsimpleiostream.c',
463   'gsimplepermission.c',
464   'gsocket.c',
465   'gsocketaddress.c',
466   'gsocketaddressenumerator.c',
467   'gsocketclient.c',
468   'gsocketconnectable.c',
469   'gsocketconnection.c',
470   'gsocketcontrolmessage.c',
471   'gsocketinputstream.c',
472   'gsocketlistener.c',
473   'gsocketoutputstream.c',
474   'gsubprocesslauncher.c',
475   'gsubprocess.c',
476   'gsocketservice.c',
477   'gsrvtarget.c',
478   'gsimpleproxyresolver.c',
479   'gtask.c',
480   'gtcpconnection.c',
481   'gtcpwrapperconnection.c',
482   'gthreadedsocketservice.c',
483   'gthemedicon.c',
484   'gthreadedresolver.c',
485   'gthreadedresolver.h',
486   'gtlsbackend.c',
487   'gtlscertificate.c',
488   'gtlsclientconnection.c',
489   'gtlsconnection.c',
490   'gtlsdatabase.c',
491   'gtlsfiledatabase.c',
492   'gtlsinteraction.c',
493   'gtlspassword.c',
494   'gtlsserverconnection.c',
495   'gdtlsconnection.c',
496   'gdtlsclientconnection.c',
497   'gdtlsserverconnection.c',
498   'gunionvolumemonitor.c',
499   'gvfs.c',
500   'gvolume.c',
501   'gvolumemonitor.c',
502   'gzlibcompressor.c',
503   'gzlibdecompressor.c',
504   'glistmodel.c',
505   'gliststore.c',
508 gio_sources += appinfo_sources
509 gio_sources += contenttype_sources
510 gio_sources += unix_sources
511 gio_sources += win32_sources
512 gio_sources += application_sources
513 gio_sources += settings_sources
514 gio_sources += gdbus_sources
515 gio_sources += portal_sources
516 gio_sources += local_sources
518 MISSING_STUFF = '''
519 if OS_WIN32_AND_DLL_COMPILATION
520 gio_win32_res = gio-win32-res.o
521 gio_win32_res_ldflag = -Wl,$(gio_win32_res)
522 endif
524 gio-win32-res.o: gio.rc
525   '$(WINDRES) gio.rc $@
527 # This is read by gobject-introspection/misc/ and gtk-doc
528 gio-public-headers.txt: Makefile
529   '$(AM_V_GEN) echo $(gioinclude_HEADERS) $(giowin32include_HEADERS) $(giounixinclude_HEADERS) > $@.tmp && mv $@.tmp $@
531 gio.def: libgio-2.0.la
532   '$(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
534 gio-2.0.lib: libgio-2.0.la gio.def
535   '$(AM_V_GEN) lib.exe -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:$(builddir)/gio.def -out:$@
538 gio_headers = files([
539   'gappinfo.h',
540   'gasyncinitable.h',
541   'gasyncresult.h',
542   'gbufferedinputstream.h',
543   'gbufferedoutputstream.h',
544   'gbytesicon.h',
545   'gcancellable.h',
546   'gcontenttype.h',
547   'gcharsetconverter.h',
548   'gconverter.h',
549   'gconverterinputstream.h',
550   'gconverteroutputstream.h',
551   'gdatagrambased.h',
552   'gdatainputstream.h',
553   'gdataoutputstream.h',
554   'gdrive.h',
555   'gemblem.h',
556   'gemblemedicon.h',
557   'gfile.h',
558   'gfileattribute.h',
559   'gfileenumerator.h',
560   'gfileicon.h',
561   'gfileinfo.h',
562   'gfileinputstream.h',
563   'gfilemonitor.h',
564   'gfilenamecompleter.h',
565   'gfileoutputstream.h',
566   'gfileiostream.h',
567   'gfilterinputstream.h',
568   'gfilteroutputstream.h',
569   'gicon.h',
570   'ginetaddress.h',
571   'ginetaddressmask.h',
572   'ginetsocketaddress.h',
573   'ginputstream.h',
574   'ginitable.h',
575   'gio.h',
576   'gio-autocleanups.h',
577   'giotypes.h',
578   'gioenums.h',
579   'gioerror.h',
580   'giomodule.h',
581   'gioscheduler.h',
582   'giostream.h',
583   'gloadableicon.h',
584   'gmount.h',
585   'gmemoryinputstream.h',
586   'gmemoryoutputstream.h',
587   'gmountoperation.h',
588   'gnativevolumemonitor.h',
589   'gnetworkaddress.h',
590   'gnetworkmonitor.h',
591   'gnetworkservice.h',
592   'goutputstream.h',
593   'gpermission.h',
594   'gpollableinputstream.h',
595   'gpollableoutputstream.h',
596   'gpollableutils.h',
597   'gproxyaddress.h',
598   'gproxy.h',
599   'gproxyaddressenumerator.h',
600   'gproxyresolver.h',
601   'gresolver.h',
602   'gresource.h',
603   'gseekable.h',
604   'gsimpleasyncresult.h',
605   'gsimpleiostream.h',
606   'gsimplepermission.h',
607   'gsocket.h',
608   'gsocketaddress.h',
609   'gsocketaddressenumerator.h',
610   'gsocketclient.h',
611   'gsocketconnectable.h',
612   'gsocketconnection.h',
613   'gsocketcontrolmessage.h',
614   'gsocketlistener.h',
615   'gsocketservice.h',
616   'gsrvtarget.h',
617   'gsimpleproxyresolver.h',
618   'gtask.h',
619   'gsubprocess.h',
620   'gsubprocesslauncher.h',
621   'gtcpconnection.h',
622   'gtcpwrapperconnection.h',
623   'gthreadedsocketservice.h',
624   'gthemedicon.h',
625   'gtlsbackend.h',
626   'gtlscertificate.h',
627   'gtlsclientconnection.h',
628   'gtlsconnection.h',
629   'gtlsdatabase.h',
630   'gtlsfiledatabase.h',
631   'gtlsinteraction.h',
632   'gtlspassword.h',
633   'gtlsserverconnection.h',
634   'gdtlsconnection.h',
635   'gdtlsclientconnection.h',
636   'gdtlsserverconnection.h',
637   'gvfs.h',
638   'gvolume.h',
639   'gvolumemonitor.h',
640   'gzlibcompressor.h',
641   'gzlibdecompressor.h',
642   'glistmodel.h',
643   'gliststore.h',
646 gio_headers += application_headers
647 gio_headers += settings_headers
648 gio_headers += gdbus_headers
649 install_headers(gio_headers, subdir : 'glib-2.0/gio/')
651 # We can't use gnome.mkenums() because the GNOME module looks for glib-mkenums
652 # in PATH, which means you can't bootstrap glib with its own glib-mkenums.
653 gioenumtypes_h = custom_target('gioenumtypes_h',
654   output : 'gioenumtypes.h',
655   capture : true,
656   input : gio_headers,
657   install : true,
658   install_dir : join_paths(get_option('includedir'), 'glib-2.0/gio'),
659   command : [python, glib_mkenums,
660              '--template', files('gioenumtypes.h.template'),
661              '@INPUT@', gnetworking_h])
663 gioenumtypes_c = custom_target('gioenumtypes_c',
664   output : 'gioenumtypes.c',
665   capture : true,
666   input : gio_headers,
667   depends : [gioenumtypes_h],
668   command : [python, glib_mkenums,
669              '--template', files('gioenumtypes.c.template'),
670              '@INPUT@', gnetworking_h])
672 gioenumtypes_dep = declare_dependency(sources : [gioenumtypes_h])
674 # inotify
675 if glib_conf.has('HAVE_SYS_INOTIFY_H') and have_func_inotify_init1
676   subdir('inotify')
677   internal_deps += [ inotify_lib ]
678 endif
680 # kevent
681 if have_func_kqueue and have_func_kevent
682   subdir('kqueue')
683   internal_deps += [ kqueue_lib ]
684 endif
686 if host_system == 'windows'
687   subdir('win32')
688   internal_deps += [ giowin32_lib ]
689 endif
691 # FIXME: FAM support
692 #if HAVE_FAM
693 #  subdir('fam')
694 #endif
696 install_data([
697   'completion/gapplication',
698   'completion/gdbus',
699   'completion/gsettings',
700   'completion/gresource'
702 install_dir: join_paths(get_option('datadir'), 'bash-completion/completions'))
704 if enable_dtrace
705   gio_dtrace_obj = dtrace_obj_gen.process('gio_probes.d')
706   gio_dtrace_hdr = dtrace_hdr_gen.process('gio_probes.d')
707 else
708   gio_dtrace_obj = []
709   gio_dtrace_hdr = []
710 endif
712 libgio = shared_library('gio-2.0',
713   gioenumtypes_h, gioenumtypes_c, gnetworking_h, gio_sources,
714   gio_dtrace_hdr, gio_dtrace_obj,
715   version : library_version,
716   soversion : soversion,
717   install : true,
718   include_directories : [configinc, gioinc],
719   link_with : internal_deps,
720   #libgio_2_0_la_LDFLAGS = $(GLIB_LINK_FLAGS)',
721   #  '$(gio_win32_res_ldflag)',
722   #$(SELINUX_LIBS)
723   #$(XATTR_LIBS)
724   dependencies : [libintl, libz_dep, libdl_dep, libmount_dep, libglib_dep,
725                   libgobject_dep, libgmodule_dep] + platform_deps + network_libs,
726   c_args : gio_c_args,
727   # intl.lib is not compatible with SAFESEH
728   link_args : noseh_link_args,
731 libgio_dep = declare_dependency(link_with : libgio,
732   dependencies : [gioenumtypes_dep],
733   # We sadly need to export configinc here because everyone includes <gio/*.h>
734   include_directories : [configinc, gioinc])
736 # Dependencies used by executables below
737 libelf = dependency('libelf', version : '>= 0.8.12', required : false)
738 if libelf.found()
739   glib_conf.set('HAVE_LIBELF', 1)
740 endif
742 gconstructor_as_data_h = custom_target('gconstructor_as_data.h',
743     input : ['data-to-c.py', files('../glib/gconstructor.h')],
744     output : ['gconstructor_as_data.h'],
745     command : [python, '@INPUT0@', '@INPUT1@', 'gconstructor_code', '@OUTPUT@'])
747 # Several installed executables
748 gio_tool_sources = [
749   'gio-tool.c',
750   'gio-tool.h',
751   'gio-tool-cat.c',
752   'gio-tool-copy.c',
753   'gio-tool-info.c',
754   'gio-tool-list.c',
755   'gio-tool-mime.c',
756   'gio-tool-mkdir.c',
757   'gio-tool-monitor.c',
758   'gio-tool-mount.c',
759   'gio-tool-move.c',
760   'gio-tool-open.c',
761   'gio-tool-rename.c',
762   'gio-tool-remove.c',
763   'gio-tool-save.c',
764   'gio-tool-set.c',
765   'gio-tool-trash.c',
766   'gio-tool-tree.c',
769 # FIXME: are all these HAVE_CONFIG_H needed/used here?
770 executable('gio', gio_tool_sources,
771   install : true,
772   c_args : ['-DHAVE_CONFIG_H=1'] + gio_c_args,
773   # intl.lib is not compatible with SAFESEH
774   link_args : noseh_link_args,
775   dependencies : [libintl, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
777 executable('gresource', 'gresource-tool.c',
778   install : true,
779   c_args : ['-DHAVE_CONFIG_H=1'],
780   # intl.lib is not compatible with SAFESEH
781   link_args : noseh_link_args,
782   dependencies : [libelf, libintl, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
784 executable('gio-querymodules', 'gio-querymodules.c',
785   install : true,
786   c_args : ['-DHAVE_CONFIG_H=1'] + gio_c_args,
787   # intl.lib is not compatible with SAFESEH
788   link_args : noseh_link_args,
789   dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
791 glib_compile_schemas = executable('glib-compile-schemas',
792   [gconstructor_as_data_h, 'gvdb/gvdb-builder.c', 'glib-compile-schemas.c'],
793   install : true,
794   c_args : ['-DHAVE_CONFIG_H=1'],
795   # intl.lib is not compatible with SAFESEH
796   link_args : noseh_link_args,
797   dependencies : [libintl, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
799 glib_compile_resources = executable('glib-compile-resources',
800   [gconstructor_as_data_h, 'gvdb/gvdb-builder.c', 'glib-compile-resources.c'],
801   install : true,
802   c_args : ['-DHAVE_CONFIG_H=1'] + gio_c_args,
803   # intl.lib is not compatible with SAFESEH
804   link_args : noseh_link_args,
805   dependencies : [libintl, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
807 executable('gsettings', 'gsettings-tool.c',
808   install : true,
809   c_args : ['-DHAVE_CONFIG_H=1'] + gio_c_args,
810   # intl.lib is not compatible with SAFESEH
811   link_args : noseh_link_args,
812   dependencies : [libintl, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
813 install_data('gschema.dtd',
814   install_dir : join_paths(get_option('datadir'), 'glib-2.0/schemas'))
816 install_data(['gschema.loc', 'gschema.its'],
817   install_dir : join_paths(get_option('datadir'), 'gettext/its'))
819 executable('gdbus', 'gdbus-tool.c',
820   install : true,
821   c_args : ['-DHAVE_CONFIG_H=1'] + gio_c_args,
822   # intl.lib is not compatible with SAFESEH
823   link_args : noseh_link_args,
824   dependencies : [libintl, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
826 if host_system != 'windows'
827   executable('gapplication', 'gapplication-tool.c',
828     install : true,
829     c_args : ['-DHAVE_CONFIG_H=1'] + gio_c_args,
830     # intl.lib is not compatible with SAFESEH
831     link_args : noseh_link_args,
832     dependencies : [libintl, libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
833 endif
835 if enable_systemtap
836   gio_stp = configure_file(input : 'gio.stp.in',
837     output : '@0@.stp'.format(libgio.full_path().split('/').get(-1)),
838     configuration : stp_cdata,
839     install_dir : tapset_install_dir,
840     install : true)
841 endif
843 if host_system != 'windows'
844   subdir('tests')
845 endif