summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2024-02-02 02:29:54 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2024-02-02 02:29:54 +0000
commit3ace8ccd4f1520059c7bddaafdc657bba9e87dfc (patch)
tree00ca4c4647b33f8273015925c56f25f0c4138650
parent97c53ec57731a8db92c4af19d2c8505115922daa (diff)
parent8ba6d930aa3336fc698b50ec1d11e7ce297fd0fa (diff)
downloadglib-3ace8ccd4f1520059c7bddaafdc657bba9e87dfc.tar.gz
Merge "Split glib into shared and static libs" into emu-dev
-rw-r--r--BUILD390
1 files changed, 271 insertions, 119 deletions
diff --git a/BUILD b/BUILD
index e23b477ac..b0a431c15 100644
--- a/BUILD
+++ b/BUILD
@@ -67,15 +67,53 @@ cc_library(
"-Wno-#pragma-messages",
"-Wno-implicit-function-declaration",
],
+ defines = [
+ "GLIB_STATIC_COMPILATION",
+ ],
includes = ["glib"] + common_os_includes(),
local_defines = [
"_GNU_SOURCE",
"G_DISABLE_CAST_CHECKS",
"GMODULE_COMPILATION",
],
+ visibility = ["//visibility:public"],
deps = [":glib-static"],
)
+
+cc_library(
+ name = "gmodule-shared",
+ srcs = [
+ "gmodule/gmodule.c",
+ "gmodule/gmodule-deprecated.c",
+ ] + glob([
+ "glib/*.h",
+ "glib/deprecated/*.h",
+ ]) + common_os_headers() + select({
+ "@platforms//os:windows": ["gmodule/gmodule-win32.h"],
+ "//conditions:default": [],
+ }),
+ hdrs = [
+ "glib.h",
+ "gmodule/gmodule.h",
+ "gmodule/gmodule-visibility.h",
+ ] + common_os_headers() + select({
+ "@platforms//os:windows": [],
+ "//conditions:default": ["gmodule/gmodule-dl.c"],
+ }),
+ copts = [
+ "-Wno-#pragma-messages",
+ "-Wno-implicit-function-declaration",
+ ],
+ includes = ["glib"] + common_os_includes(),
+ local_defines = [
+ "_GNU_SOURCE",
+ "G_DISABLE_CAST_CHECKS",
+ "GMODULE_COMPILATION",
+ ],
+ visibility = ["//visibility:public"],
+ deps = [":glib-static"],
+)
# This is a windows only library that providing common gnu based printing
cc_library(
name = "gnulib",
@@ -122,6 +160,7 @@ cc_library(
"HAVE_ISNANF_IN_LIBC",
"HAVE_ISNANL_IN_LIBC",
],
+ visibility = ["//visibility:public"],
)
# Windows only dirent implementation
@@ -137,96 +176,127 @@ cc_library(
],
)
+glib_sourceset = [
+ "glib/garcbox.c",
+ "glib/garray.c",
+ "glib/gasyncqueue.c",
+ "glib/gatomic.c",
+ "glib/gbacktrace.c",
+ "glib/gbase64.c",
+ "glib/gbitlock.c",
+ "glib/gbookmarkfile.c",
+ "glib/gbytes.c",
+ "glib/gcharset.c",
+ "glib/gchecksum.c",
+ "glib/gconvert.c",
+ "glib/gdataset.c",
+ "glib/gdate.c",
+ "glib/gdatetime.c",
+ "glib/gdir.c",
+ "glib/genviron.c",
+ "glib/gerror.c",
+ "glib/gfileutils.c",
+ # "ggettext.c", # This requires the gettext packages.
+ "glib/ghash.c",
+ "glib/ghmac.c",
+ "glib/ghook.c",
+ "glib/ghostutils.c",
+ "glib/giochannel.c",
+ "glib/gkeyfile.c",
+ "glib/glib-init.c",
+ "glib/glib-private.c",
+ "glib/glist.c",
+ "glib/gmain.c",
+ "glib/gmappedfile.c",
+ "glib/gmarkup.c",
+ "glib/gmem.c",
+ "glib/gunicollate.c",
+ "glib/gmessages.c",
+ "glib/gnode.c",
+ "glib/goption.c",
+ "glib/gpathbuf.c",
+ "glib/gpattern.c",
+ "glib/gpoll.c",
+ "glib/gprimes.c",
+ "glib/gprintf.c",
+ "glib/gqsort.c",
+ "glib/gquark.c",
+ "glib/gqueue.c",
+ "glib/grand.c",
+ "glib/grcbox.c",
+ "glib/grefcount.c",
+ "glib/grefstring.c",
+ "glib/gregex.c",
+ "glib/gscanner.c",
+ "glib/gsequence.c",
+ "glib/gshell.c",
+ "glib/gslice.c",
+ "glib/gslist.c",
+ "glib/gstdio.c",
+ "glib/gstrfuncs.c",
+ "glib/gstring.c",
+ "glib/gstringchunk.c",
+ "glib/gstrvbuilder.c",
+ "glib/gtestutils.c",
+ "glib/gthread.c",
+ "glib/gthreadpool.c",
+ "glib/gtimer.c",
+ "glib/gtimezone.c",
+ "glib/gtrace.c",
+ "glib/gtranslit.c",
+ "glib/gtrashstack.c",
+ "glib/gtree.c",
+ "glib/gunibreak.c",
+ "glib/gunidecomp.c",
+ "glib/guniprop.c",
+ "glib/guri.c",
+ "glib/gutf8.c",
+ "glib/gutils.c",
+ # "guuid.c", # needs libintl.h from gettext
+ "glib/gvariant-core.c",
+ "glib/gvariant-parser.c",
+ "glib/gvariant-serialiser.c",
+ "glib/gvariant.c",
+ "glib/gvarianttype.c",
+ "glib/gvarianttypeinfo.c",
+ "glib/gversion.c",
+ "glib/gwakeup.c",
+ "glib/libcharset/localcharset.c",
+ "gmodule/gmodule.h",
+]
+
+glib_warnings = [
+ "-Winvalid-pch",
+ "-Wextra",
+ "-Wpedantic",
+ "-fno-strict-aliasing",
+ "-Wimplicit-fallthrough",
+ "-Wmisleading-indentation",
+ "-Wmissing-field-initializers",
+ "-Wnonnull",
+ "-Wunused",
+ "-Wno-missing-prototypes",
+ "-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",
+ "-Wduplicate-decl-specifier",
+ "-Werror=pointer-sign",
+ "-Wno-string-plus-int",
+]
+
cc_library(
name = "glib-static",
- srcs = [
- "glib/garcbox.c",
- "glib/garray.c",
- "glib/gasyncqueue.c",
- "glib/gatomic.c",
- "glib/gbacktrace.c",
- "glib/gbase64.c",
- "glib/gbitlock.c",
- "glib/gbookmarkfile.c",
- "glib/gbytes.c",
- "glib/gcharset.c",
- "glib/gchecksum.c",
- "glib/gconvert.c",
- "glib/gdataset.c",
- "glib/gdate.c",
- "glib/gdatetime.c",
- "glib/gdir.c",
- "glib/genviron.c",
- "glib/gerror.c",
- "glib/gfileutils.c",
- # "ggettext.c", # This requires the gettext packages.
- "glib/ghash.c",
- "glib/ghmac.c",
- "glib/ghook.c",
- "glib/ghostutils.c",
- "glib/giochannel.c",
- "glib/gkeyfile.c",
- "glib/glib-init.c",
- "glib/glib-private.c",
- "glib/glist.c",
- "glib/gmain.c",
- "glib/gmappedfile.c",
- "glib/gmarkup.c",
- "glib/gmem.c",
- "glib/gunicollate.c",
- "glib/gmessages.c",
- "glib/gnode.c",
- "glib/goption.c",
- "glib/gpathbuf.c",
- "glib/gpattern.c",
- "glib/gpoll.c",
- "glib/gprimes.c",
- "glib/gprintf.c",
- "glib/gqsort.c",
- "glib/gquark.c",
- "glib/gqueue.c",
- "glib/grand.c",
- "glib/grcbox.c",
- "glib/grefcount.c",
- "glib/grefstring.c",
- "glib/gregex.c",
- "glib/gscanner.c",
- "glib/gsequence.c",
- "glib/gshell.c",
- "glib/gslice.c",
- "glib/gslist.c",
- "glib/gstdio.c",
- "glib/gstrfuncs.c",
- "glib/gstring.c",
- "glib/gstringchunk.c",
- "glib/gstrvbuilder.c",
- "glib/gtestutils.c",
- "glib/gthread.c",
- "glib/gthreadpool.c",
- "glib/gtimer.c",
- "glib/gtimezone.c",
- "glib/gtrace.c",
- "glib/gtranslit.c",
- "glib/gtrashstack.c",
- "glib/gtree.c",
- "glib/gunibreak.c",
- "glib/gunidecomp.c",
- "glib/guniprop.c",
- "glib/guri.c",
- "glib/gutf8.c",
- "glib/gutils.c",
- # "guuid.c", # needs libintl.h from gettext
- "glib/gvariant-core.c",
- "glib/gvariant-parser.c",
- "glib/gvariant-serialiser.c",
- "glib/gvariant.c",
- "glib/gvarianttype.c",
- "glib/gvarianttypeinfo.c",
- "glib/gversion.c",
- "glib/gwakeup.c",
- "glib/libcharset/localcharset.c",
- "gmodule/gmodule.h",
- ] + select({
+ srcs = glib_sourceset + select({
"@platforms//os:macos": [
"glib/giounix.c",
"glib/glib-unix.c",
@@ -265,34 +335,114 @@ cc_library(
"glib.h",
"glib/glib-visibility.h",
],
- copts = [
- "-Winvalid-pch",
- "-Wextra",
- "-Wpedantic",
- "-fno-strict-aliasing",
- "-Wimplicit-fallthrough",
- "-Wmisleading-indentation",
- "-Wmissing-field-initializers",
- "-Wnonnull",
- "-Wunused",
- "-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",
- "-Wduplicate-decl-specifier",
- "-Werror=pointer-sign",
- "-Wno-string-plus-int",
- ] + select({
+ copts = glib_warnings + select({
+ # Needed for using <glib/xxx> vs "glib/xxxx"
+ "@platforms//os:macos": [
+ "-fvisibility=hidden",
+ "-std=gnu99",
+ "-I $(execpath os/darwin)",
+ "-I $(execpath os/darwin/glib)",
+ "-I $(execpath os/darwin/gmodule)",
+ "-I $(execpath glib)",
+ "-I $(execpath .)",
+ ],
+ "@platforms//os:windows": [
+ "-Wno-inconsistent-dllimport",
+ "-Wno-implicit-fallthrough",
+ "-Wno-unused-function",
+ "-Wno-#pragma-messages",
+ ],
+ "@platforms//os:linux": [
+ "-fvisibility=hidden",
+ "-std=gnu99",
+ ],
+ "//conditions:default": [],
+ }),
+ data = [
+ # These paths are here so we can use them in copts with $(execpath ...)
+ "os/darwin",
+ "os/darwin/glib",
+ "os/darwin/gmodule",
+ "os/windows/gmodule",
+ "glib",
+ ".",
+ ],
+ defines = [
+ "GLIB_STATIC_COMPILATION",
+ ],
+ includes = [
+ ".",
+ "glib",
+ "gmodule",
+ ] + common_os_includes(),
+ linkopts = [
+ "-DEFAULTLIB:ws2_32.lib",
+ "-DEFAULTLIB:User32.lib",
+ "-DEFAULTLIB:Shell32.lib",
+ "-DEFAULTLIB:Ole32.lib",
+ "-DEFAULTLIB:Advapi32.lib",
+ ],
+ local_defines = [
+ "GLIB_COMPILATION",
+ "_GNU_SOURCE",
+ "G_DISABLE_CAST_CHECKS",
+ 'GLIB_CHARSETALIAS_DIR=\\"\\"',
+ ],
+ visibility = ["//visibility:public"],
+ deps = select({
+ "@platforms//os:macos": [":glib-darwin"],
+ "@platforms//os:windows": [
+ ":dirent",
+ ":gnulib",
+ ],
+ "//conditions:default": [],
+ }) + [
+ "@pcre2",
+ ],
+)
+
+cc_library(
+ name = "glib-shared",
+ srcs = glib_sourceset + select({
+ "@platforms//os:macos": [
+ "glib/giounix.c",
+ "glib/glib-unix.c",
+ "glib/glib-unixprivate.h",
+ "glib/gspawn.c",
+ "glib/gthread-posix.c",
+ ],
+ "@platforms//os:windows": [
+ "glib/giowin32.c",
+ "glib/gspawn-win32.c",
+ "glib/gthread-win32.c",
+ "glib/gwin32.c",
+ ],
+ "@platforms//os:linux": [
+ "glib/giounix.c",
+ "glib/gjournal-private.c",
+ "glib/glib-unix.c",
+ "glib/glib-unixprivate.h",
+ "glib/gspawn.c",
+ "glib/gthread-posix.c",
+ ],
+ "//conditions:default": [],
+ }) + glob(
+ [
+ "glib/*.h",
+ "glib/gnulib/*.h",
+ "glib/deprecated/*.h",
+ "glib/libcharset/*.h",
+ ],
+ exclude = [
+ "glib/glib-unixprivate.h",
+ "glib/glib-visibility.h",
+ ],
+ ) + common_os_headers(),
+ hdrs = [
+ "glib.h",
+ "glib/glib-visibility.h",
+ ],
+ copts = glib_warnings + select({
# Needed for using <glib/xxx> vs "glib/xxxx"
"@platforms//os:macos": [
"-fvisibility=hidden",
@@ -342,6 +492,7 @@ cc_library(
"G_DISABLE_CAST_CHECKS",
'GLIB_CHARSETALIAS_DIR=\\"\\"',
],
+ visibility = ["//visibility:public"],
deps = select({
"@platforms//os:macos": [":glib-darwin"],
"@platforms//os:windows": [
@@ -350,19 +501,20 @@ cc_library(
],
"//conditions:default": [],
}) + [
- # ":gmodule",
"@pcre2",
],
)
cc_shared_library(
name = "glib-2.0",
- deps = [":glib-static"],
+ visibility = ["//visibility:public"],
+ deps = [":glib-shared"],
)
cc_shared_library(
name = "gmodule-2.0",
- deps = [":gmodule-static"],
+ visibility = ["//visibility:public"],
+ deps = [":gmodule-shared"],
)
glib_tests = [