| load("@bazel_skylib//rules:expand_template.bzl", "expand_template") |
| load("@rules_cc//cc:defs.bzl", "cc_library") |
| |
| MODULES_LC = glob(["modules/lc/**/*.c"]) |
| |
| MODULES_OM = glob(["modules/om/**/*.c"]) |
| |
| MODULES_IM = [ |
| "modules/im/ximcp/imCallbk.c", |
| "modules/im/ximcp/imDefFlt.c", |
| "modules/im/ximcp/imDefIc.c", |
| "modules/im/ximcp/imDefIm.c", |
| "modules/im/ximcp/imDefLkup.c", |
| "modules/im/ximcp/imDispch.c", |
| "modules/im/ximcp/imEvToWire.c", |
| "modules/im/ximcp/imExten.c", |
| "modules/im/ximcp/imImSw.c", |
| "modules/im/ximcp/imInt.c", |
| "modules/im/ximcp/imInsClbk.c", |
| "modules/im/ximcp/imLcFlt.c", |
| "modules/im/ximcp/imLcGIc.c", |
| "modules/im/ximcp/imLcIc.c", |
| "modules/im/ximcp/imLcIm.c", |
| "modules/im/ximcp/imLcLkup.c", |
| "modules/im/ximcp/imLcPrs.c", |
| "modules/im/ximcp/imLcSIc.c", |
| "modules/im/ximcp/imRm.c", |
| "modules/im/ximcp/imRmAttr.c", |
| "modules/im/ximcp/imThaiFlt.c", |
| "modules/im/ximcp/imThaiIc.c", |
| "modules/im/ximcp/imThaiIm.c", |
| "modules/im/ximcp/imTrans.c", |
| "modules/im/ximcp/imTransR.c", |
| "modules/im/ximcp/imTrX.c", |
| ] |
| |
| LIBI18N_SRCS = glob( |
| [ |
| "src/xlibi18n/**/*.c", |
| "src/xlibi18n/**/*.h", |
| ], |
| exclude = [ |
| "src/xlibi18n/lcUniConv/8bit_tab_to_h.c", |
| "src/xlibi18n/lcUniConv/cjk_tab_to_h.c", |
| ], |
| ) |
| |
| XCMS_SRCS = glob([ |
| "src/xcms/**/*.c", |
| "src/xcms/**/*.h", |
| ]) |
| |
| XKB_SRCS = glob([ |
| "src/xkb/**/*.c", |
| "src/xkb/**/*.h", |
| ]) |
| |
| expand_template( |
| name = "xlibconf_h", |
| out = "include/X11/XlibConf.h", |
| substitutions = { |
| "#undef XTHREADS": "#define XTHREADS 1", |
| "#undef XUSE_MTSAFE_API": "#define XUSE_MTSAFE_API 1", |
| }, |
| template = "include/X11/XlibConf.h.in", |
| ) |
| |
| cc_binary( |
| name = "makekeys", |
| srcs = ["src/util/makekeys.c"], |
| ) |
| |
| genrule( |
| name = "ks_tables", |
| srcs = ["@xorgproto//:include/X11/" + x for x in [ |
| "keysymdef.h", |
| "XF86keysym.h", |
| "Sunkeysym.h", |
| "DECkeysym.h", |
| "HPkeysym.h", |
| ]], |
| outs = ["ks_tables.h"], |
| cmd = "$(location :makekeys) $(SRCS) > $@", |
| tools = [":makekeys"], |
| ) |
| |
| UPSTREAM_VERSION = module_version().split(".bcr.", 1)[0] |
| |
| UPSTREAM_VERSION_MAJOR = UPSTREAM_VERSION.split(".")[0] |
| |
| UPSTREAM_VERSION_MINOR = UPSTREAM_VERSION.split(".")[1] |
| |
| UPSTREAM_VERSION_PATCH = UPSTREAM_VERSION.split(".")[2] |
| |
| expand_template( |
| name = "config_h", |
| out = "src/config.h", |
| substitutions = { |
| "{LIBX11_VERSION}": UPSTREAM_VERSION, |
| "{LIBX11_VERSION_MAJOR}": UPSTREAM_VERSION_MAJOR, |
| "{LIBX11_VERSION_MINOR}": UPSTREAM_VERSION_MINOR, |
| "{LIBX11_VERSION_PATCH}": UPSTREAM_VERSION_PATCH, |
| } | select({ |
| "@platforms//os:macos": {}, |
| "//conditions:default": { |
| "#define BSD44SOCKETS 1": "/* #undef BSD44SOCKETS */", |
| "#define HAVE_SYS_FILIO_H 1": "/* #undef HAVE_SYS_FILIO_H */", |
| }, |
| }), |
| template = "src/config.h.in", |
| ) |
| |
| cc_library( |
| name = "x11", |
| srcs = glob( |
| [ |
| "src/*.c", |
| "src/*.h", |
| ], |
| exclude = ["src/os2Stubs.c"], |
| ) + XCMS_SRCS + XKB_SRCS + LIBI18N_SRCS + MODULES_LC + MODULES_OM + MODULES_IM, |
| hdrs = glob(["include/X11/**/*.h"]) + [ |
| "//:config_h", |
| "//:ks_tables", |
| "//:xlibconf_h", |
| ], |
| copts = [ |
| "-Wno-implicit-function-declaration", |
| "-Wno-int-conversion", |
| "-DHAVE_CONFIG_H", |
| ], |
| defines = [ |
| "XCMSDIR=\\\"src/xcms\\\"", |
| "XLOCALELIBDIR=\\\"/tmp\\\"", |
| ], |
| includes = [ |
| "include", |
| "include/X11", |
| "src", |
| "src/xcms", |
| "src/xkb", |
| "src/xlibi18n", |
| ], |
| visibility = ["//visibility:public"], |
| deps = [ |
| "@libxau", |
| "@libxcb", |
| "@libxtrans", |
| "@xorgproto", |
| ], |
| ) |
| |
| alias( |
| name = "libx11", |
| actual = ":x11", |
| visibility = ["//visibility:public"], |
| ) |