• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved.
2
3import("//build/ohos.gni")
4
5PCRE2_LIB_DIR = "//third_party/pcre2/pcre2"
6
7ohos_shared_library("glibpcre") {
8  exec_script("/usr/bin/env",
9              [
10                "cp",
11                rebase_path("$PCRE2_LIB_DIR/src/config.h.generic"),
12                rebase_path("$PCRE2_LIB_DIR/src/config.h"),
13              ])
14  exec_script("/usr/bin/env",
15              [
16                "cp",
17                rebase_path("$PCRE2_LIB_DIR/src/pcre2.h.generic"),
18                rebase_path("$PCRE2_LIB_DIR/src/pcre2.h"),
19              ])
20  exec_script("/usr/bin/env",
21              [
22                "cp",
23                rebase_path("$PCRE2_LIB_DIR/src/pcre2_chartables.c.dist"),
24                rebase_path("$PCRE2_LIB_DIR/src/pcre2_chartables.c"),
25              ])
26  sources = [
27    "$PCRE2_LIB_DIR/src/pcre2_auto_possess.c",
28    "$PCRE2_LIB_DIR/src/pcre2_chartables.c",
29    "$PCRE2_LIB_DIR/src/pcre2_compile.c",
30    "$PCRE2_LIB_DIR/src/pcre2_config.c",
31    "$PCRE2_LIB_DIR/src/pcre2_context.c",
32    "$PCRE2_LIB_DIR/src/pcre2_convert.c",
33    "$PCRE2_LIB_DIR/src/pcre2_dfa_match.c",
34    "$PCRE2_LIB_DIR/src/pcre2_error.c",
35    "$PCRE2_LIB_DIR/src/pcre2_extuni.c",
36    "$PCRE2_LIB_DIR/src/pcre2_find_bracket.c",
37    "$PCRE2_LIB_DIR/src/pcre2_jit_compile.c",
38    "$PCRE2_LIB_DIR/src/pcre2_maketables.c",
39    "$PCRE2_LIB_DIR/src/pcre2_match.c",
40    "$PCRE2_LIB_DIR/src/pcre2_match_data.c",
41    "$PCRE2_LIB_DIR/src/pcre2_newline.c",
42    "$PCRE2_LIB_DIR/src/pcre2_ord2utf.c",
43    "$PCRE2_LIB_DIR/src/pcre2_pattern_info.c",
44    "$PCRE2_LIB_DIR/src/pcre2_script_run.c",
45    "$PCRE2_LIB_DIR/src/pcre2_serialize.c",
46    "$PCRE2_LIB_DIR/src/pcre2_string_utils.c",
47    "$PCRE2_LIB_DIR/src/pcre2_study.c",
48    "$PCRE2_LIB_DIR/src/pcre2_substitute.c",
49    "$PCRE2_LIB_DIR/src/pcre2_substring.c",
50    "$PCRE2_LIB_DIR/src/pcre2_tables.c",
51    "$PCRE2_LIB_DIR/src/pcre2_ucd.c",
52    "$PCRE2_LIB_DIR/src/pcre2_valid_utf.c",
53    "$PCRE2_LIB_DIR/src/pcre2_xclass.c",
54  ]
55  include_dirs = [ "$PCRE2_LIB_DIR/src" ]
56  cflags = [
57    "-D_GNU_SOURCE",
58    "-DHAVE_CONFIG_H",
59    "-DSUPPORT_PCRE2_8=1",
60    "-DPCRE2_CODE_UNIT_WIDTH=8",
61    "-w",
62  ]
63  part_name = "multimedia_media_standard"
64  subsystem_name = "multimedia"
65}
66
67group("glib_packages") {
68  deps = [
69    ":ginotify",
70    ":gio",
71    ":glib",
72    ":gmodule",
73    ":gobject",
74    ":gxdgmime",
75  ]
76}
77
78config("glib_config") {
79  visibility = [ ":*" ]
80  include_dirs = [
81    ".",
82    "glib/libcharset",
83    "glib",
84    "glib/deprecated",
85    "//third_party/gettext/gettext-runtime/intl",
86    "//third_party/pcre2/pcre2/src",
87  ]
88  cflags = [
89    "-DG_LOG_DOMAIN=\"GLib\"",
90    "-DGLIB_CHARSETALIAS_DIR=\"system/lib64\"",
91    "-DHAVE_MEMMOVE",
92    "-DSUPPORT_UCP",
93    "-DSUPPORT_UTF",
94    "-DSUPPORT_UTF8",
95    "-DNEWLINE=-1",
96    "-DMATCH_LIMIT=10000000",
97    "-DMATCH_LIMIT_RECURSION=8192",
98    "-DMAX_NAME_SIZE=32",
99    "-DMAX_NAME_COUNT=10000",
100    "-DMAX_DUPLENGTH=30000",
101    "-DLINK_SIZE=2",
102    "-DPOSIX_MALLOC_THRESHOLD=10",
103    "-DOHOS_OPT_COMPAT",
104    "-UBSR_ANYCRLF",
105    "-UEBCDIC",
106    "-DGLIB_COMPILATION",
107    "-Wno-sign-compare",
108    "-Wno-unused-value",
109    "-Wno-unused-function",
110    "-Wno-int-conversion",
111  ]
112}
113
114ohos_source_set("glib_source") {
115  sources = [
116    "glib/deprecated/gallocator.c",
117    "glib/deprecated/gcache.c",
118    "glib/deprecated/gcompletion.c",
119    "glib/deprecated/grel.c",
120    "glib/deprecated/gthread-deprecated.c",
121    "glib/garcbox.c",
122    "glib/garray.c",
123    "glib/gasyncqueue.c",
124    "glib/gatomic.c",
125    "glib/gbacktrace.c",
126    "glib/gbase64.c",
127    "glib/gbitlock.c",
128    "glib/gbookmarkfile.c",
129    "glib/gbytes.c",
130    "glib/gcharset.c",
131    "glib/gchecksum.c",
132    "glib/gconvert.c",
133    "glib/gdataset.c",
134    "glib/gdate.c",
135    "glib/gdatetime.c",
136    "glib/gdir.c",
137    "glib/genviron.c",
138    "glib/gerror.c",
139    "glib/gfileutils.c",
140    "glib/ggettext.c",
141    "glib/ghash.c",
142    "glib/ghmac.c",
143    "glib/ghook.c",
144    "glib/ghostutils.c",
145    "glib/giochannel.c",
146    "glib/giounix.c",
147    "glib/gkeyfile.c",
148    "glib/glib-init.c",
149    "glib/glib-private.c",
150    "glib/glib-unix.c",
151    "glib/glist.c",
152    "glib/gmain.c",
153    "glib/gmappedfile.c",
154    "glib/gmarkup.c",
155    "glib/gmem.c",
156    "glib/gmessages.c",
157    "glib/gnode.c",
158    "glib/goption.c",
159    "glib/gpattern.c",
160    "glib/gpoll.c",
161    "glib/gprimes.c",
162    "glib/gprintf.c",
163    "glib/gqsort.c",
164    "glib/gquark.c",
165    "glib/gqueue.c",
166    "glib/grand.c",
167    "glib/grcbox.c",
168    "glib/grefcount.c",
169    "glib/grefstring.c",
170    "glib/gregex.c",
171    "glib/gscanner.c",
172    "glib/gsequence.c",
173    "glib/gshell.c",
174    "glib/gslice.c",
175    "glib/gslist.c",
176    "glib/gspawn.c",
177    "glib/gstdio.c",
178    "glib/gstrfuncs.c",
179    "glib/gstring.c",
180    "glib/gstringchunk.c",
181    "glib/gtestutils.c",
182    "glib/gthread-posix.c",
183    "glib/gthread.c",
184    "glib/gthreadpool.c",
185    "glib/gtimer.c",
186    "glib/gtimezone.c",
187    "glib/gtrace.c",
188    "glib/gtranslit.c",
189    "glib/gtrashstack.c",
190    "glib/gtree.c",
191    "glib/gunibreak.c",
192    "glib/gunicollate.c",
193    "glib/gunidecomp.c",
194    "glib/guniprop.c",
195    "glib/guri.c",
196    "glib/gutf8.c",
197    "glib/gutils.c",
198    "glib/gutilsprivate.h",
199    "glib/guuid.c",
200    "glib/gvariant-core.c",
201    "glib/gvariant-parser.c",
202    "glib/gvariant-serialiser.c",
203    "glib/gvariant.c",
204    "glib/gvarianttype.c",
205    "glib/gvarianttypeinfo.c",
206    "glib/gversion.c",
207    "glib/gwakeup.c",
208    "glib/libcharset/localcharset.c",
209  ]
210
211  configs = [ ":glib_config" ]
212}
213ohos_shared_library("glib") {
214  deps = [
215    ":glib_source",
216    "//third_party/gettext:libintl",
217    "//third_party/glib:glibpcre",
218  ]
219  part_name = "multimedia_media_standard"
220  subsystem_name = "multimedia"
221}
222
223config("gmodule_config") {
224  visibility = [ ":*" ]
225  include_dirs = [
226    ".",
227    "gmodule",
228    "glib",
229  ]
230  cflags = [ "-DG_LOG_DOMAIN=\"GModule\"" ]
231}
232
233ohos_source_set("gmodule_source") {
234  sources = [ "gmodule/gmodule.c" ]
235
236  configs = [ ":gmodule_config" ]
237}
238ohos_shared_library("gmodule") {
239  deps = [
240    ":glib",
241    ":gmodule_source",
242  ]
243  part_name = "multimedia_media_standard"
244  subsystem_name = "multimedia"
245}
246
247config("gobject_config") {
248  visibility = [ ":*" ]
249  include_dirs = [
250    ".",
251    "gobject",
252    "glib",
253    "//third_party/libffi/include",
254    "//third_party/gettext/gettext-runtime/intl",
255  ]
256  cflags = [
257    "-DG_LOG_DOMAIN=\"GObject\"",
258    "-DGOBJECT_COMPILATION",
259    "-Wno-sign-compare",
260    "-Wno-unused-function",
261    "-Wno-int-conversion",
262  ]
263}
264
265ohos_source_set("gobject_source") {
266  sources = [
267    "gobject/gatomicarray.c",
268    "gobject/gbinding.c",
269    "gobject/gboxed.c",
270    "gobject/gclosure.c",
271    "gobject/genums.c",
272    "gobject/gmarshal.c",
273    "gobject/gobject.c",
274    "gobject/gparam.c",
275    "gobject/gparamspecs.c",
276    "gobject/gsignal.c",
277    "gobject/gsourceclosure.c",
278    "gobject/gtype.c",
279    "gobject/gtypemodule.c",
280    "gobject/gtypeplugin.c",
281    "gobject/gvalue.c",
282    "gobject/gvaluearray.c",
283    "gobject/gvaluetransform.c",
284    "gobject/gvaluetypes.c",
285  ]
286
287  configs = [ ":gobject_config" ]
288}
289
290ohos_shared_library("gobject") {
291  deps = [
292    ":glib",
293    ":gobject_source",
294    "//third_party/gettext:libintl",
295    "//third_party/libffi:ffi",
296  ]
297  part_name = "multimedia_media_standard"
298  subsystem_name = "multimedia"
299}
300
301#############################################################################
302#############################################################################
303#############################################################################
304
305config("gio_config") {
306  visibility = [ ":*" ]
307  include_dirs = [
308    ".",
309    "gio",
310    "glib",
311    "gio/xdgmime",
312    "gio/inotify",
313    "gmodule",
314    "//third_party/gettext/gettext-runtime/intl",
315    "//third_party/zlib",
316  ]
317  cflags = [
318    "-DG_LOG_DOMAIN=\"GLib-GIO\"",
319
320    #"-DGOBJECT_COMPILATION",
321    "-Wno-sign-compare",
322    "-Wno-unused-function",
323    "-Wno-int-conversion",
324    "-DGIO_COMPILATION",
325    "-DGIO_MODULE_DIR=\"\"",
326    "-DLOCALSTATEDIR=\"var\"",
327    "-Wno-implicit-function-declaration",
328    "-Wno-format",
329    "-Wno-conditional-type-mismatch",
330    "-Wno-self-assign",
331    "-Wno-unused-value",
332    "-Wno-unused-function",
333    "-Wno-pointer-sign",
334    "-fvisibility=hidden",
335    "-DMAJOR_IN_SYSMACROS",
336    "-DG_ENABLE_DEBUG",
337  ]
338}
339
340ohos_source_set("gio_source") {
341  sources = [
342    # application_sources
343    "gio/gaction.c",
344    "gio/gactiongroup.c",
345    "gio/gactiongroupexporter.c",
346    "gio/gactionmap.c",
347    "gio/gapplication.c",
348    "gio/gapplicationcommandline.c",
349    "gio/gapplicationimpl-dbus.c",
350    "gio/gdbusactiongroup.c",
351    "gio/gdbusmenumodel.c",
352    "gio/gmenu.c",
353    "gio/gmenuexporter.c",
354    "gio/gmenumodel.c",
355    "gio/gnotification.c",
356    "gio/gnotificationbackend.c",
357    "gio/gpropertyaction.c",
358    "gio/gremoteactiongroup.c",
359    "gio/gsimpleaction.c",
360    "gio/gsimpleactiongroup.c",
361
362    # settings_sources
363    "gio/gdelayedsettingsbackend.c",
364    "gio/gkeyfilesettingsbackend.c",
365    "gio/gmemorysettingsbackend.c",
366    "gio/gnullsettingsbackend.c",
367    "gio/gsettings-mapping.c",
368    "gio/gsettings.c",
369    "gio/gsettingsbackend.c",
370    "gio/gsettingsschema.c",
371    "gio/gvdb/gvdb-reader.c",
372
373    # gdbus_sources
374    "gio/gdbusaddress.c",
375    "gio/gdbusauth.c",
376    "gio/gdbusauthmechanism.c",
377    "gio/gdbusauthmechanismanon.c",
378    "gio/gdbusauthmechanismexternal.c",
379    "gio/gdbusauthmechanismsha1.c",
380    "gio/gdbusauthobserver.c",
381    "gio/gdbusconnection.c",
382    "gio/gdbuserror.c",
383    "gio/gdbusinterface.c",
384    "gio/gdbusinterfaceskeleton.c",
385    "gio/gdbusintrospection.c",
386    "gio/gdbusmessage.c",
387    "gio/gdbusmethodinvocation.c",
388    "gio/gdbusnameowning.c",
389    "gio/gdbusnamewatching.c",
390    "gio/gdbusobject.c",
391    "gio/gdbusobjectmanager.c",
392    "gio/gdbusobjectmanagerclient.c",
393    "gio/gdbusobjectmanagerserver.c",
394    "gio/gdbusobjectproxy.c",
395    "gio/gdbusobjectskeleton.c",
396    "gio/gdbusprivate.c",
397    "gio/gdbusproxy.c",
398    "gio/gdbusserver.c",
399    "gio/gdbusutils.c",
400    "gio/gtestdbus.c",
401
402    # portal_sources
403    "gio/gdocumentportal.c",
404    "gio/gmemorymonitorportal.c",
405    "gio/gnetworkmonitorportal.c",
406    "gio/gopenuriportal.c",
407    "gio/gportalnotificationbackend.c",
408    "gio/gportalsupport.c",
409    "gio/gproxyresolverportal.c",
410    "gio/gtrashportal.c",
411
412    # local_sources
413    "gio/ghttpproxy.c",
414    "gio/glocalfile.c",
415    "gio/glocalfileenumerator.c",
416    "gio/glocalfileinfo.c",
417    "gio/glocalfileinputstream.c",
418    "gio/glocalfileiostream.c",
419    "gio/glocalfilemonitor.c",
420    "gio/glocalfileoutputstream.c",
421    "gio/glocalvfs.c",
422    "gio/gsocks4aproxy.c",
423    "gio/gsocks4proxy.c",
424    "gio/gsocks5proxy.c",
425    "gio/thumbnail-verify.c",
426
427    # unix_sources + HAVE_NETLINK
428    "gio/gnetworkmonitornetlink.c",
429    "gio/gnetworkmonitornm.c",
430
431    # unix_sources
432    "gio/gfdonotificationbackend.c",
433    "gio/gfiledescriptorbased.c",
434    "gio/ggtknotificationbackend.c",
435    "gio/giounix-private.c",
436    "gio/gunixconnection.c",
437    "gio/gunixcredentialsmessage.c",
438    "gio/gunixfdlist.c",
439    "gio/gunixfdmessage.c",
440    "gio/gunixinputstream.c",
441    "gio/gunixmount.c",
442    "gio/gunixmounts.c",
443    "gio/gunixoutputstream.c",
444    "gio/gunixsocketaddress.c",
445    "gio/gunixvolume.c",
446    "gio/gunixvolumemonitor.c",
447
448    # appinfo_sources
449    "gio/gdesktopappinfo.c",
450
451    # contenttype_sources
452    "gio/gcontenttype.c",
453
454    # gdbus_daemon_sources
455    "gio/gdbusdaemon.c",
456
457    # gio_sources
458    "gio/gappinfo.c",
459    "gio/gasynchelper.c",
460    "gio/gasyncinitable.c",
461    "gio/gasyncresult.c",
462    "gio/gbufferedinputstream.c",
463    "gio/gbufferedoutputstream.c",
464    "gio/gbytesicon.c",
465    "gio/gcancellable.c",
466    "gio/gcharsetconverter.c",
467    "gio/gcontextspecificgroup.c",
468    "gio/gconverter.c",
469    "gio/gconverterinputstream.c",
470    "gio/gconverteroutputstream.c",
471    "gio/gcredentials.c",
472    "gio/gdatagrambased.c",
473    "gio/gdatainputstream.c",
474    "gio/gdataoutputstream.c",
475    "gio/gdrive.c",
476    "gio/gdtlsclientconnection.c",
477    "gio/gdtlsconnection.c",
478    "gio/gdtlsserverconnection.c",
479    "gio/gdummyfile.c",
480    "gio/gdummyproxyresolver.c",
481    "gio/gdummytlsbackend.c",
482    "gio/gemblem.c",
483    "gio/gemblemedicon.c",
484    "gio/gfile.c",
485    "gio/gfileattribute.c",
486    "gio/gfileenumerator.c",
487    "gio/gfileicon.c",
488    "gio/gfileinfo.c",
489    "gio/gfileinputstream.c",
490    "gio/gfileiostream.c",
491    "gio/gfilemonitor.c",
492    "gio/gfilenamecompleter.c",
493    "gio/gfileoutputstream.c",
494    "gio/gfilterinputstream.c",
495    "gio/gfilteroutputstream.c",
496    "gio/gicon.c",
497    "gio/ginetaddress.c",
498    "gio/ginetaddressmask.c",
499    "gio/ginetsocketaddress.c",
500    "gio/ginitable.c",
501    "gio/ginputstream.c",
502    "gio/gioerror.c",
503    "gio/giomodule-priv.c",
504    "gio/giomodule.c",
505    "gio/gioscheduler.c",
506    "gio/giostream.c",
507    "gio/glistmodel.c",
508    "gio/gliststore.c",
509    "gio/gloadableicon.c",
510    "gio/gmarshal-internal.c",
511    "gio/gmemoryinputstream.c",
512    "gio/gmemorymonitor.c",
513    "gio/gmemorymonitordbus.c",
514    "gio/gmemoryoutputstream.c",
515    "gio/gmount.c",
516    "gio/gmountoperation.c",
517    "gio/gnativesocketaddress.c",
518    "gio/gnativevolumemonitor.c",
519    "gio/gnetworkaddress.c",
520    "gio/gnetworking.c",
521    "gio/gnetworkmonitor.c",
522    "gio/gnetworkmonitorbase.c",
523    "gio/gnetworkservice.c",
524    "gio/goutputstream.c",
525    "gio/gpermission.c",
526    "gio/gpollableinputstream.c",
527    "gio/gpollableoutputstream.c",
528    "gio/gpollableutils.c",
529    "gio/gpollfilemonitor.c",
530    "gio/gproxy.c",
531    "gio/gproxyaddress.c",
532    "gio/gproxyaddressenumerator.c",
533    "gio/gproxyresolver.c",
534    "gio/gresolver.c",
535    "gio/gresource.c",
536    "gio/gresourcefile.c",
537    "gio/gseekable.c",
538    "gio/gsimpleasyncresult.c",
539    "gio/gsimpleiostream.c",
540    "gio/gsimplepermission.c",
541    "gio/gsimpleproxyresolver.c",
542    "gio/gsocket.c",
543    "gio/gsocketaddress.c",
544    "gio/gsocketaddressenumerator.c",
545    "gio/gsocketclient.c",
546    "gio/gsocketconnectable.c",
547    "gio/gsocketconnection.c",
548    "gio/gsocketcontrolmessage.c",
549    "gio/gsocketinputstream.c",
550    "gio/gsocketlistener.c",
551    "gio/gsocketoutputstream.c",
552    "gio/gsocketservice.c",
553    "gio/gsrvtarget.c",
554    "gio/gsubprocess.c",
555    "gio/gsubprocesslauncher.c",
556    "gio/gtask.c",
557    "gio/gtcpconnection.c",
558    "gio/gtcpwrapperconnection.c",
559    "gio/gthemedicon.c",
560    "gio/gthreadedresolver.c",
561    "gio/gthreadedresolver.h",
562    "gio/gthreadedsocketservice.c",
563    "gio/gtlsbackend.c",
564    "gio/gtlscertificate.c",
565    "gio/gtlsclientconnection.c",
566    "gio/gtlsconnection.c",
567    "gio/gtlsdatabase.c",
568    "gio/gtlsfiledatabase.c",
569    "gio/gtlsinteraction.c",
570    "gio/gtlspassword.c",
571    "gio/gtlsserverconnection.c",
572    "gio/gunionvolumemonitor.c",
573    "gio/gvfs.c",
574    "gio/gvolume.c",
575    "gio/gvolumemonitor.c",
576    "gio/gzlibcompressor.c",
577    "gio/gzlibdecompressor.c",
578
579    # out
580    "gio/gdbus-daemon-generated.c",
581    "gio/gioenumtypes.c",
582    "gio/xdp-dbus.c",
583  ]
584
585  configs = [ ":gio_config" ]
586}
587
588ohos_shared_library("gio") {
589  deps = [
590    ":ginotify",
591    ":gio_source",
592    ":glib",
593    ":gmodule",
594    ":gobject",
595    ":gxdgmime",
596    "//third_party/gettext:libintl",
597    "//third_party/zlib:libz",
598  ]
599  part_name = "multimedia_media_standard"
600  subsystem_name = "multimedia"
601}
602
603config("gxdgmime_config") {
604  visibility = [ ":*" ]
605  include_dirs = [
606    ".",
607    "gmodule",
608    "glib",
609  ]
610  cflags = [
611    "-DXDG_PREFIX=_gio_xdg",
612    "-fvisibility=hidden",
613    "-Wno-shift-negative-value",
614    "-Wno-sign-compare",
615  ]
616}
617
618ohos_source_set("gxdgmime_source") {
619  sources = [
620    "gio/xdgmime/xdgmime.c",
621    "gio/xdgmime/xdgmimealias.c",
622    "gio/xdgmime/xdgmimecache.c",
623    "gio/xdgmime/xdgmimeglob.c",
624    "gio/xdgmime/xdgmimeicon.c",
625    "gio/xdgmime/xdgmimeint.c",
626    "gio/xdgmime/xdgmimemagic.c",
627    "gio/xdgmime/xdgmimeparent.c",
628  ]
629
630  configs = [ ":gxdgmime_config" ]
631}
632
633ohos_static_library("gxdgmime") {
634  deps = [ ":gxdgmime_source" ]
635  part_name = "multimedia_media_standard"
636  subsystem_name = "multimedia"
637}
638
639config("ginotify_config") {
640  visibility = [ ":*" ]
641  include_dirs = [
642    ".",
643    "gmodule",
644    "glib",
645  ]
646  cflags = [
647    "-DXDG_PREFIX=_gio_xdg",
648    "-fvisibility=hidden",
649    "-Wno-shift-negative-value",
650    "-Wno-sign-compare",
651    "-DGIO_COMPILATION",
652  ]
653}
654
655ohos_source_set("ginotify_source") {
656  sources = [
657    "gio/inotify/ginotifyfilemonitor.c",
658    "gio/inotify/inotify-helper.c",
659    "gio/inotify/inotify-kernel.c",
660    "gio/inotify/inotify-missing.c",
661    "gio/inotify/inotify-path.c",
662    "gio/inotify/inotify-sub.c",
663  ]
664
665  configs = [ ":ginotify_config" ]
666}
667
668ohos_static_library("ginotify") {
669  deps = [ ":ginotify_source" ]
670  part_name = "multimedia_media_standard"
671  subsystem_name = "multimedia"
672}
673