blob: b873a31408320d925c9220cea0a8fc9cdd025ca6 [file] [log] [blame]
import("//build/config/linux/pkg_config.gni")
import("//third_party/glib/visibility.gni")
assert(is_linux)
pkg_config("pcre2") {
packages = [ "libpcre2-8" ]
}
config("glib_common_config") {
cflags_c = [
# cflags as per upstream toplevel meson.build:
"-D_GNU_SOURCE",
"-fno-strict-aliasing",
"-DG_DISABLE_ASSERT",
"-DG_DISABLE_CAST_CHECKS",
"-Wimplicit-fallthrough",
"-Wmisleading-indentation",
"-Wmissing-field-initializers",
"-Wnonnull",
"-Wnull-dereference",
"-Wno-unused-parameter",
"-Wno-cast-function-type",
"-Wno-pedantic",
"-Wno-format-zero-length",
"-Wno-variadic-macros",
"-Werror=format=2",
"-Werror=init-self",
"-Werror=missing-include-dirs",
"-Werror=pointer-arith",
"-Werror=unused-result",
"-Wstrict-prototypes",
"-Wno-bad-function-cast",
"-Werror=implicit-function-declaration",
"-Werror=missing-prototypes",
"-Werror=pointer-sign",
]
# gvariant.c triggers a -Walloc-size warning which seems benign; see
# crbug.com/443913107#comment1.
cflags_c += [ "-Wno-alloc-size" ]
include_dirs = [ "include" ]
}
config("glib_public_config") {
include_dirs = [
"include",
"include/glib",
"src",
"src/glib",
]
}
shared_library("glib") {
testonly = true
output_name = "glib-2.0"
output_extension = "so.0"
# charset defines
defines = [ "GLIB_CHARSETALIAS_DIR=\"/usr/lib\"" ]
cflags_c = [
# cflags as per upstream meson.build:
"-DG_LOG_DOMAIN=\"GLib\"",
"-DGLIB_COMPILATION",
]
# charset includes
include_dirs = [ "src/glib/libcharset" ]
sources = [
"src/glib/deprecated/gallocator.c",
"src/glib/deprecated/gcache.c",
"src/glib/deprecated/gcompletion.c",
"src/glib/deprecated/grel.c",
"src/glib/deprecated/gthread-deprecated.c",
"src/glib/garcbox.c",
"src/glib/garray.c",
"src/glib/gasyncqueue.c",
"src/glib/gatomic.c",
"src/glib/gbacktrace.c",
"src/glib/gbase64.c",
"src/glib/gbitlock.c",
"src/glib/gbookmarkfile.c",
"src/glib/gbytes.c",
"src/glib/gcharset.c",
"src/glib/gchecksum.c",
"src/glib/gconvert.c",
"src/glib/gdataset.c",
"src/glib/gdate.c",
"src/glib/gdatetime-private.c",
"src/glib/gdatetime.c",
"src/glib/gdir.c",
"src/glib/genviron.c",
"src/glib/gerror.c",
"src/glib/gfileutils.c",
"src/glib/ggettext.c",
"src/glib/ghash.c",
"src/glib/ghmac.c",
"src/glib/ghook.c",
"src/glib/ghostutils.c",
"src/glib/giochannel.c",
"src/glib/giounix.c",
"src/glib/gjournal-private.c",
"src/glib/gkeyfile.c",
"src/glib/glib-init.c",
"src/glib/glib-private.c",
"src/glib/glib-unix.c",
"src/glib/glist.c",
"src/glib/gmain.c",
"src/glib/gmappedfile.c",
"src/glib/gmarkup.c",
"src/glib/gmem.c",
"src/glib/gmessages.c",
"src/glib/gnode.c",
"src/glib/goption.c",
"src/glib/gpathbuf.c",
"src/glib/gpattern.c",
"src/glib/gpoll.c",
"src/glib/gprimes.c",
"src/glib/gprint.c",
"src/glib/gprintf.c",
"src/glib/gprintprivate.h",
"src/glib/gqsort.c",
"src/glib/gquark.c",
"src/glib/gqueue.c",
"src/glib/grand.c",
"src/glib/grcbox.c",
"src/glib/grefcount.c",
"src/glib/grefstring.c",
"src/glib/gregex.c",
"src/glib/gscanner.c",
"src/glib/gsequence.c",
"src/glib/gshell.c",
"src/glib/gslice.c",
"src/glib/gslist.c",
"src/glib/gspawn-posix.c",
"src/glib/gspawn.c",
"src/glib/gstdio.c",
"src/glib/gstrfuncs.c",
"src/glib/gstring.c",
"src/glib/gstringchunk.c",
"src/glib/gstrvbuilder.c",
"src/glib/gtestutils.c",
"src/glib/gthread.c",
"src/glib/gthreadpool.c",
"src/glib/gtimer.c",
"src/glib/gtimezone.c",
"src/glib/gtrace.c",
"src/glib/gtranslit.c",
"src/glib/gtrashstack.c",
"src/glib/gtree.c",
"src/glib/gunibreak.c",
"src/glib/gunicollate.c",
"src/glib/gunidecomp.c",
"src/glib/guniprop.c",
"src/glib/guri.c",
"src/glib/gutf8.c",
"src/glib/gutils.c",
"src/glib/guuid.c",
"src/glib/gvariant-core.c",
"src/glib/gvariant-parser.c",
"src/glib/gvariant-serialiser.c",
"src/glib/gvariant.c",
"src/glib/gvarianttype-private.h",
"src/glib/gvarianttype.c",
"src/glib/gvarianttypeinfo.c",
"src/glib/gversion.c",
"src/glib/gwakeup.c",
"src/glib/gwin32private.h",
# charset sources
"src/glib/libcharset/localcharset.c",
]
configs += [
":glib_common_config",
":pcre2",
]
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
public_configs = [ ":glib_public_config" ]
}
config("gobject_public_config") {
include_dirs = [
"include/gobject",
"src/gobject",
]
}
shared_library("gobject") {
testonly = true
output_name = "gobject-2.0"
output_extension = "so.0"
cflags_c = [
# cflags as per upstream meson.build:
"-DG_LOG_DOMAIN=\"GLib-GObject\"",
"-DGOBJECT_COMPILATION",
]
sources = [
"src/gobject/gatomicarray.c",
"src/gobject/gbinding.c",
"src/gobject/gbindinggroup.c",
"src/gobject/gboxed.c",
"src/gobject/gclosure.c",
"src/gobject/genums.c",
"src/gobject/gmarshal.c",
"src/gobject/gobject.c",
"src/gobject/gparam.c",
"src/gobject/gparamspecs.c",
"src/gobject/gsignal.c",
"src/gobject/gsignalgroup.c",
"src/gobject/gsourceclosure.c",
"src/gobject/gtype.c",
"src/gobject/gtypemodule.c",
"src/gobject/gtypeplugin.c",
"src/gobject/gvalue.c",
"src/gobject/gvaluearray.c",
"src/gobject/gvaluetransform.c",
"src/gobject/gvaluetypes.c",
# generated sources
"gobject/glib-enumtypes.c",
]
configs += [
":glib_common_config",
"//build/config/linux/libffi",
]
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
public_configs = [ ":gobject_public_config" ]
deps = [ ":glib" ]
}
config("gmodule_public_config") {
include_dirs = [
"include/gmodule",
"src/gmodule",
]
}
shared_library("gmodule") {
testonly = true
output_name = "gmodule-2.0"
output_extension = "so.0"
sources = [
"src/gmodule/gmodule-deprecated.c",
"src/gmodule/gmodule.c",
]
cflags_c = [
# cflags as per upstream meson.build:
"-DG_LOG_DOMAIN=\"GModule\"",
"-DGMODULE_COMPILATION",
]
configs += [ ":glib_common_config" ]
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
public_configs = [ ":gmodule_public_config" ]
deps = [ ":glib" ]
}
shared_library("gio") {
testonly = true
output_name = "gio-2.0"
output_extension = "so.0"
# xdgmime defines
defines = [
"HAVE_CONFIG_H",
"XDG_PREFIX=_gio_xdg",
]
cflags_c = [
# cflags as per upstream meson.build:
"-DG_LOG_DOMAIN=\"GLib-GIO\"",
"-DG_LOG_DOMAIN=\"GLib-GIO\"",
"-DGIO_LAUNCH_DESKTOP=\"/usr/libexec/gio-launch-desktop\"",
"-DGIO_MODULE_DIR=\"/usr/lib/gio/modules\"",
"-DLOCALSTATEDIR=\"/var\"",
"-DGIO_COMPILATION",
]
include_dirs = [
"include/gio",
"src/gio",
"src/gio/inotify",
"src/gio/xdgmime",
]
sources = [
"src/gio/gaction.c",
"src/gio/gactiongroup.c",
"src/gio/gactiongroupexporter.c",
"src/gio/gactionmap.c",
"src/gio/gappinfo.c",
"src/gio/gapplication.c",
"src/gio/gapplicationcommandline.c",
"src/gio/gapplicationimpl-dbus.c",
"src/gio/gasynchelper.c",
"src/gio/gasyncinitable.c",
"src/gio/gasyncresult.c",
"src/gio/gbufferedinputstream.c",
"src/gio/gbufferedoutputstream.c",
"src/gio/gbytesicon.c",
"src/gio/gcancellable.c",
"src/gio/gcharsetconverter.c",
"src/gio/gcontenttype-fdo.c",
"src/gio/gcontenttype.c",
"src/gio/gcontextspecificgroup.c",
"src/gio/gconverter.c",
"src/gio/gconverterinputstream.c",
"src/gio/gconverteroutputstream.c",
"src/gio/gcredentials.c",
"src/gio/gdatagrambased.c",
"src/gio/gdatainputstream.c",
"src/gio/gdataoutputstream.c",
"src/gio/gdbusactiongroup.c",
"src/gio/gdbusaddress.c",
"src/gio/gdbusauth.c",
"src/gio/gdbusauthmechanism.c",
"src/gio/gdbusauthmechanismanon.c",
"src/gio/gdbusauthmechanismexternal.c",
"src/gio/gdbusauthmechanismsha1.c",
"src/gio/gdbusauthobserver.c",
"src/gio/gdbusconnection.c",
"src/gio/gdbusdaemon.c",
"src/gio/gdbuserror.c",
"src/gio/gdbusinterface.c",
"src/gio/gdbusinterfaceskeleton.c",
"src/gio/gdbusintrospection.c",
"src/gio/gdbusmenumodel.c",
"src/gio/gdbusmessage.c",
"src/gio/gdbusmethodinvocation.c",
"src/gio/gdbusnameowning.c",
"src/gio/gdbusnamewatching.c",
"src/gio/gdbusobject.c",
"src/gio/gdbusobjectmanager.c",
"src/gio/gdbusobjectmanagerclient.c",
"src/gio/gdbusobjectmanagerserver.c",
"src/gio/gdbusobjectproxy.c",
"src/gio/gdbusobjectskeleton.c",
"src/gio/gdbusprivate.c",
"src/gio/gdbusproxy.c",
"src/gio/gdbusserver.c",
"src/gio/gdbusutils.c",
"src/gio/gdebugcontroller.c",
"src/gio/gdebugcontrollerdbus.c",
"src/gio/gdelayedsettingsbackend.c",
"src/gio/gdesktopappinfo.c",
"src/gio/gdocumentportal.c",
"src/gio/gdrive.c",
"src/gio/gdtlsclientconnection.c",
"src/gio/gdtlsconnection.c",
"src/gio/gdtlsserverconnection.c",
"src/gio/gdummyfile.c",
"src/gio/gdummyproxyresolver.c",
"src/gio/gdummytlsbackend.c",
"src/gio/gemblem.c",
"src/gio/gemblemedicon.c",
"src/gio/gfdonotificationbackend.c",
"src/gio/gfile.c",
"src/gio/gfileattribute.c",
"src/gio/gfiledescriptorbased.c",
"src/gio/gfileenumerator.c",
"src/gio/gfileicon.c",
"src/gio/gfileinfo.c",
"src/gio/gfileinputstream.c",
"src/gio/gfileiostream.c",
"src/gio/gfilemonitor.c",
"src/gio/gfilenamecompleter.c",
"src/gio/gfileoutputstream.c",
"src/gio/gfilterinputstream.c",
"src/gio/gfilteroutputstream.c",
"src/gio/ggtknotificationbackend.c",
"src/gio/ghttpproxy.c",
"src/gio/gicon.c",
"src/gio/ginetaddress.c",
"src/gio/ginetaddressmask.c",
"src/gio/ginetsocketaddress.c",
"src/gio/ginitable.c",
"src/gio/ginputstream.c",
"src/gio/gioerror.c",
"src/gio/giomodule-priv.c",
"src/gio/giomodule.c",
"src/gio/gioscheduler.c",
"src/gio/giostream.c",
"src/gio/giounix-private.c",
"src/gio/gkeyfilesettingsbackend.c",
"src/gio/glistmodel.c",
"src/gio/gliststore.c",
"src/gio/gloadableicon.c",
"src/gio/glocalfile.c",
"src/gio/glocalfileenumerator.c",
"src/gio/glocalfileinfo.c",
"src/gio/glocalfileinputstream.c",
"src/gio/glocalfileiostream.c",
"src/gio/glocalfilemonitor.c",
"src/gio/glocalfileoutputstream.c",
"src/gio/glocalvfs.c",
"src/gio/gmarshal-internal.c",
"src/gio/gmemoryinputstream.c",
"src/gio/gmemorymonitor.c",
"src/gio/gmemorymonitorbase.c",
"src/gio/gmemorymonitorbase.h",
"src/gio/gmemorymonitordbus.c",
"src/gio/gmemorymonitorpoll.c",
"src/gio/gmemorymonitorpoll.h",
"src/gio/gmemorymonitorportal.c",
"src/gio/gmemorymonitorpsi.c",
"src/gio/gmemorymonitorpsi.h",
"src/gio/gmemoryoutputstream.c",
"src/gio/gmemorysettingsbackend.c",
"src/gio/gmenu.c",
"src/gio/gmenuexporter.c",
"src/gio/gmenumodel.c",
"src/gio/gmount.c",
"src/gio/gmountoperation.c",
"src/gio/gnativesocketaddress.c",
"src/gio/gnativevolumemonitor.c",
"src/gio/gnetworkaddress.c",
"src/gio/gnetworking.c",
"src/gio/gnetworkmonitor.c",
"src/gio/gnetworkmonitorbase.c",
"src/gio/gnetworkmonitornetlink.c",
"src/gio/gnetworkmonitornm.c",
"src/gio/gnetworkmonitorportal.c",
"src/gio/gnetworkservice.c",
"src/gio/gnotification.c",
"src/gio/gnotificationbackend.c",
"src/gio/gnullsettingsbackend.c",
"src/gio/gopenuriportal.c",
"src/gio/goutputstream.c",
"src/gio/gpermission.c",
"src/gio/gpollableinputstream.c",
"src/gio/gpollableoutputstream.c",
"src/gio/gpollableutils.c",
"src/gio/gpollfilemonitor.c",
"src/gio/gportalnotificationbackend.c",
"src/gio/gportalsupport.c",
"src/gio/gpowerprofilemonitor.c",
"src/gio/gpowerprofilemonitordbus.c",
"src/gio/gpowerprofilemonitorportal.c",
"src/gio/gpropertyaction.c",
"src/gio/gproxy.c",
"src/gio/gproxyaddress.c",
"src/gio/gproxyaddressenumerator.c",
"src/gio/gproxyresolver.c",
"src/gio/gproxyresolverportal.c",
"src/gio/gremoteactiongroup.c",
"src/gio/gresolver.c",
"src/gio/gresource.c",
"src/gio/gresourcefile.c",
"src/gio/gsandbox.c",
"src/gio/gseekable.c",
"src/gio/gsettings-mapping.c",
"src/gio/gsettings.c",
"src/gio/gsettingsbackend.c",
"src/gio/gsettingsschema.c",
"src/gio/gsimpleaction.c",
"src/gio/gsimpleactiongroup.c",
"src/gio/gsimpleasyncresult.c",
"src/gio/gsimpleiostream.c",
"src/gio/gsimplepermission.c",
"src/gio/gsimpleproxyresolver.c",
"src/gio/gsocket.c",
"src/gio/gsocketaddress.c",
"src/gio/gsocketaddressenumerator.c",
"src/gio/gsocketclient.c",
"src/gio/gsocketconnectable.c",
"src/gio/gsocketconnection.c",
"src/gio/gsocketcontrolmessage.c",
"src/gio/gsocketinputstream.c",
"src/gio/gsocketlistener.c",
"src/gio/gsocketoutputstream.c",
"src/gio/gsocketservice.c",
"src/gio/gsocks4aproxy.c",
"src/gio/gsocks4proxy.c",
"src/gio/gsocks5proxy.c",
"src/gio/gsrvtarget.c",
"src/gio/gsubprocess.c",
"src/gio/gsubprocesslauncher.c",
"src/gio/gtask.c",
"src/gio/gtcpconnection.c",
"src/gio/gtcpwrapperconnection.c",
"src/gio/gtestdbus.c",
"src/gio/gthemedicon.c",
"src/gio/gthreadedresolver.c",
"src/gio/gthreadedsocketservice.c",
"src/gio/gtlsbackend.c",
"src/gio/gtlscertificate.c",
"src/gio/gtlsclientconnection.c",
"src/gio/gtlsconnection.c",
"src/gio/gtlsdatabase.c",
"src/gio/gtlsfiledatabase.c",
"src/gio/gtlsinteraction.c",
"src/gio/gtlspassword.c",
"src/gio/gtlsserverconnection.c",
"src/gio/gtrashportal.c",
"src/gio/gunionvolumemonitor.c",
"src/gio/gunixconnection.c",
"src/gio/gunixcredentialsmessage.c",
"src/gio/gunixfdlist.c",
"src/gio/gunixfdmessage.c",
"src/gio/gunixinputstream.c",
"src/gio/gunixmount.c",
"src/gio/gunixmounts.c",
"src/gio/gunixoutputstream.c",
"src/gio/gunixsocketaddress.c",
"src/gio/gunixvolume.c",
"src/gio/gunixvolumemonitor.c",
"src/gio/gvfs.c",
"src/gio/gvolume.c",
"src/gio/gvolumemonitor.c",
"src/gio/gzlibcompressor.c",
"src/gio/gzlibdecompressor.c",
"src/gio/thumbnail-verify.c",
# generated sources
"gio/gdbus-daemon-generated.c",
"gio/gioenumtypes.c",
"gio/xdp-dbus.c",
# inotify sources
"src/gio/inotify/ginotifyfilemonitor.c",
"src/gio/inotify/inotify-helper.c",
"src/gio/inotify/inotify-kernel.c",
"src/gio/inotify/inotify-missing.c",
"src/gio/inotify/inotify-path.c",
"src/gio/inotify/inotify-sub.c",
# xdgmime sources
"src/gio/xdgmime/xdgmime.c",
"src/gio/xdgmime/xdgmimealias.c",
"src/gio/xdgmime/xdgmimecache.c",
"src/gio/xdgmime/xdgmimeglob.c",
"src/gio/xdgmime/xdgmimeicon.c",
"src/gio/xdgmime/xdgmimeint.c",
"src/gio/xdgmime/xdgmimemagic.c",
"src/gio/xdgmime/xdgmimeparent.c",
]
configs += [
":glib_common_config",
"//build/config/linux:libresolv",
]
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
deps = [
":glib",
":gmodule",
":gobject",
"//third_party/gvdb",
"//third_party/zlib",
]
}