diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2024-02-02 02:29:54 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-02-02 02:29:54 +0000 |
commit | 3ace8ccd4f1520059c7bddaafdc657bba9e87dfc (patch) | |
tree | 00ca4c4647b33f8273015925c56f25f0c4138650 | |
parent | 97c53ec57731a8db92c4af19d2c8505115922daa (diff) | |
parent | 8ba6d930aa3336fc698b50ec1d11e7ce297fd0fa (diff) | |
download | glib-3ace8ccd4f1520059c7bddaafdc657bba9e87dfc.tar.gz |
Merge "Split glib into shared and static libs" into emu-dev
-rw-r--r-- | BUILD | 390 |
1 files changed, 271 insertions, 119 deletions
@@ -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 = [ |