From 6c4fbbcde83e2fe44807e28e9da422ce39a0248d Mon Sep 17 00:00:00 2001 From: Erwin Jansen Date: Mon, 9 Oct 2023 11:02:02 -0700 Subject: Bazel build of GLIB Change-Id: Ic51b4a81ed0f49529be4cadb9bf1b183b2c67d49 --- BUILD | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++++ glibconfig.h | 226 ----------------------------------------------------------- 2 files changed, 200 insertions(+), 226 deletions(-) create mode 100644 BUILD delete mode 100644 glibconfig.h diff --git a/BUILD b/BUILD new file mode 100644 index 000000000..999ab970d --- /dev/null +++ b/BUILD @@ -0,0 +1,200 @@ +objc_library( + name = "glib-darwin", + srcs = [ + "glib/gosxutils.m", + "os/darwin/config.h", + "os/darwin/glib/glibconfig.h", + ] + glob(["glib/*.h"]), + copts = [ + "-DGLIB_COMPILATION", + "-D_GNU_SOURCE", + "-DG_DISABLE_CAST_CHECKS", + '-DGLIB_CHARSETALIAS_DIR=""', + "-I $(execpath os/darwin)", + "-I $(execpath os/darwin/glib)", + "-I $(execpath glib)", + ], + data = [ + # These paths are here so we can use them in copts with $(execpath ...) + "os/darwin", + "os/darwin/glib", + "glib", + ], + includes = [ + ".", + ], +) + +cc_library( + # Named "glib2" so it doesn't shadow the "glib" directory in this package. + name = "glib2", + 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", + # "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", + ] + select({ + "@platforms//os:macos": [ + "glib/giounix.c", + "glib/glib-unix.c", + "glib/glib-unixprivate.h", + "glib/gspawn.c", + "glib/gthread-posix.c", + "os/darwin/config.h", + "os/darwin/glib/glibconfig.h", + ], + "//conditions:default": [], + }) + glob( + [ + "glib/*.h", + "glib/deprecated/*.h", + "glib/libcharset/*.h", + ], + exclude = [ + "glib/glib-unixprivate.h", + ], + ), + hdrs = [ + "glib.h", + ], + copts = [ + "-fvisibility=hidden", + "-Winvalid-pch", + "-Wextra", + "-Wpedantic", + "-std=gnu99", + "-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({ + "@platforms//os:macos": [ + "-I $(execpath os/darwin)", + "-I $(execpath os/darwin/glib)", + "-I $(execpath glib)", + ], + "//conditions:default": [], + }), + data = select({ + "@platforms//os:macos": [ + # These paths are here so we can use them in copts with $(execpath ...) + "os/darwin", + "os/darwin/glib", + "glib", + ], + "//conditions:default": [], + }), + includes = [ + ".", + ], + local_defines = [ + "GLIB_COMPILATION", + "_GNU_SOURCE", + "G_DISABLE_CAST_CHECKS", + 'GLIB_CHARSETALIAS_DIR=\\"\\"', + ], + deps = select({ + "@platforms//os:macos": [":glib-darwin"], + "//conditions:default": [], + }), +) diff --git a/glibconfig.h b/glibconfig.h deleted file mode 100644 index ecae49180..000000000 --- a/glibconfig.h +++ /dev/null @@ -1,226 +0,0 @@ -/* glibconfig.h - * - * This is a generated file. Please modify 'configure.in' - */ - -#ifndef __G_LIBCONFIG_H__ -#define __G_LIBCONFIG_H__ - -#include - -#include -#include -#define GLIB_HAVE_ALLOCA_H -#define GLIB_HAVE_SYS_POLL_H - -/* Specifies that GLib's g_print*() functions wrap the - * system printf functions. This is useful to know, for example, - * when using glibc's register_printf_function(). - */ -#define GLIB_USING_SYSTEM_PRINTF - -G_BEGIN_DECLS - -#define G_MINFLOAT FLT_MIN -#define G_MAXFLOAT FLT_MAX -#define G_MINDOUBLE DBL_MIN -#define G_MAXDOUBLE DBL_MAX -#define G_MINSHORT SHRT_MIN -#define G_MAXSHORT SHRT_MAX -#define G_MAXUSHORT USHRT_MAX -#define G_MININT INT_MIN -#define G_MAXINT INT_MAX -#define G_MAXUINT UINT_MAX -#define G_MINLONG LONG_MIN -#define G_MAXLONG LONG_MAX -#define G_MAXULONG ULONG_MAX - -typedef signed char gint8; -typedef unsigned char guint8; -typedef signed short gint16; -typedef unsigned short guint16; -#define G_GINT16_MODIFIER "h" -#define G_GINT16_FORMAT "hi" -#define G_GUINT16_FORMAT "hu" -typedef signed int gint32; -typedef unsigned int guint32; -#define G_GINT32_MODIFIER "" -#define G_GINT32_FORMAT "i" -#define G_GUINT32_FORMAT "u" -#define G_HAVE_GINT64 1 /* deprecated, always true */ - -typedef signed long gint64; -typedef unsigned long guint64; - -#define G_GINT64_CONSTANT(val) (val##L) -#define G_GUINT64_CONSTANT(val) (val##UL) -#define G_GINT64_MODIFIER "l" -#define G_GINT64_FORMAT "li" -#define G_GUINT64_FORMAT "lu" - -#define GLIB_SIZEOF_VOID_P 8 -#define GLIB_SIZEOF_LONG 8 -#define GLIB_SIZEOF_SIZE_T 8 - -typedef signed long gssize; -typedef unsigned long gsize; -#define G_GSIZE_MODIFIER "l" -#define G_GSSIZE_FORMAT "li" -#define G_GSIZE_FORMAT "lu" - -#define G_MAXSIZE G_MAXULONG -#define G_MINSSIZE G_MINLONG -#define G_MAXSSIZE G_MAXLONG - -typedef gint64 goffset; -#define G_MINOFFSET G_MININT64 -#define G_MAXOFFSET G_MAXINT64 - -#define G_GOFFSET_MODIFIER G_GINT64_MODIFIER -#define G_GOFFSET_FORMAT G_GINT64_FORMAT -#define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val) - - -#define GPOINTER_TO_INT(p) ((gint) (glong) (p)) -#define GPOINTER_TO_UINT(p) ((guint) (gulong) (p)) - -#define GINT_TO_POINTER(i) ((gpointer) (glong) (i)) -#define GUINT_TO_POINTER(u) ((gpointer) (gulong) (u)) - -typedef signed long gintptr; -typedef unsigned long guintptr; - -#ifdef NeXT /* @#%@! NeXTStep */ -# define g_ATEXIT(proc) (!atexit (proc)) -#else -# define g_ATEXIT(proc) (atexit (proc)) -#endif - -#define g_memmove(dest,src,len) G_STMT_START { memmove ((dest), (src), (len)); } G_STMT_END - -#define GLIB_MAJOR_VERSION 2 -#define GLIB_MINOR_VERSION 20 -#define GLIB_MICRO_VERSION 0 - -#define G_OS_UNIX - - -#define G_VA_COPY va_copy -#define G_VA_COPY_AS_ARRAY 1 - -#ifdef __cplusplus -#define G_HAVE_INLINE 1 -#else /* !__cplusplus */ -#define G_HAVE_INLINE 1 -#define G_HAVE___INLINE 1 -#define G_HAVE___INLINE__ 1 -#endif /* !__cplusplus */ - -#ifdef __cplusplus -#define G_CAN_INLINE 1 -#else /* !__cplusplus */ -#define G_CAN_INLINE 1 -#endif - -#ifndef __cplusplus -# define G_HAVE_ISO_VARARGS 1 -#endif -#ifdef __cplusplus -# define G_HAVE_ISO_VARARGS 1 -#endif - -/* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi - * is passed ISO vararg support is turned off, and there is no work - * around to turn it on, so we unconditionally turn it off. - */ -#if __GNUC__ == 2 && __GNUC_MINOR__ == 95 -# undef G_HAVE_ISO_VARARGS -#endif - -#define G_HAVE_GNUC_VARARGS 1 -#define G_HAVE_GROWING_STACK 0 - -#define G_HAVE_GNUC_VISIBILITY 1 -#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) -#define G_GNUC_INTERNAL __attribute__((visibility("hidden"))) -#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) -#define G_GNUC_INTERNAL __hidden -#elif defined (__GNUC__) && defined (G_HAVE_GNUC_VISIBILITY) -#define G_GNUC_INTERNAL __attribute__((visibility("hidden"))) -#else -#define G_GNUC_INTERNAL -#endif - -#define G_THREADS_ENABLED -#define G_THREADS_IMPL_POSIX -typedef struct _GStaticMutex GStaticMutex; -struct _GStaticMutex -{ - struct _GMutex *runtime_mutex; - union { - char pad[40]; - double dummy_double; - void *dummy_pointer; - long dummy_long; - } static_mutex; -}; -#define G_STATIC_MUTEX_INIT { NULL, { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} } } -#define g_static_mutex_get_mutex(mutex) \ - (g_thread_use_default_impl ? ((GMutex*)(gpointer) ((mutex)->static_mutex.pad)) : \ - g_static_mutex_get_mutex_impl_shortcut (&((mutex)->runtime_mutex))) -/* This represents a system thread as used by the implementation. An - * alien implementaion, as loaded by g_thread_init can only count on - * "sizeof (gpointer)" bytes to store their info. We however need more - * for some of our native implementations. */ -typedef union _GSystemThread GSystemThread; -union _GSystemThread -{ - char data[8]; - double dummy_double; - void *dummy_pointer; - long dummy_long; -}; - -#define GINT16_TO_LE(val) ((gint16) (val)) -#define GUINT16_TO_LE(val) ((guint16) (val)) -#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val)) -#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val)) -#define GINT32_TO_LE(val) ((gint32) (val)) -#define GUINT32_TO_LE(val) ((guint32) (val)) -#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val)) -#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val)) -#define GINT64_TO_LE(val) ((gint64) (val)) -#define GUINT64_TO_LE(val) ((guint64) (val)) -#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val)) -#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val)) -#define GLONG_TO_LE(val) ((glong) GINT64_TO_LE (val)) -#define GULONG_TO_LE(val) ((gulong) GUINT64_TO_LE (val)) -#define GLONG_TO_BE(val) ((glong) GINT64_TO_BE (val)) -#define GULONG_TO_BE(val) ((gulong) GUINT64_TO_BE (val)) -#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val)) -#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val)) -#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val)) -#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val)) -#define G_BYTE_ORDER G_LITTLE_ENDIAN - -#define GLIB_SYSDEF_POLLIN =1 -#define GLIB_SYSDEF_POLLOUT =4 -#define GLIB_SYSDEF_POLLPRI =2 -#define GLIB_SYSDEF_POLLHUP =16 -#define GLIB_SYSDEF_POLLERR =8 -#define GLIB_SYSDEF_POLLNVAL =32 - -#define G_MODULE_SUFFIX "so" - -/* A GPid is an abstraction for a process "handle". It is *not* an - * abstraction for a process identifier in general. GPid is used in - * GLib only for descendant processes spawned with the g_spawn* - * functions. On POSIX there is no "process handle" concept as such, - * but on Windows a GPid is a handle to a process, a kind of pointer, - * not a process identifier. - */ -typedef int GPid; - -G_END_DECLS - -#endif /* GLIBCONFIG_H */ -- cgit v1.2.3