| # Yeti's custom BUILD file |
| package(default_visibility = ["//visibility:public"]) |
| |
| licenses(["restricted"]) # GPL (binary), LGPL (library) |
| |
| exports_files(["COPYING"]) |
| |
| # ------------------------------------------------------------------------------ |
| # Public libraries |
| # ------------------------------------------------------------------------------ |
| |
| DEFINES = [ |
| "_FILE_OFFSET_BITS=64", |
| "FUSE_USE_VERSION=26", |
| ] |
| |
| COPTS = [ |
| "-DHAVE_CONFIG_H=1", |
| "-DFUSERMOUNT_DIR=\\\"$(BINDIR)\\\"", |
| "-D_REENTRANT", |
| "-pthread", |
| "-fno-strict-aliasing", |
| "-iquote", |
| "third_party/fuse", |
| "-fvisibility=default", # override -fvisibility=hidden from Yeti toolchain |
| ] |
| |
| cc_library( |
| name = "fuse_shared", |
| srcs = [":libfuse.so"], |
| copts = COPTS, |
| deps = [":fuse_headers"], |
| ) |
| |
| cc_binary( |
| name = "libfuse.so", |
| linkopts = [ |
| "-Wl,-soname,libfuse.so", |
| ], |
| linkshared = 1, |
| linkstatic = 0, |
| deps = ["fuse_internal"], |
| ) |
| |
| cc_library( |
| name = "fuse_internal", |
| srcs = [ |
| "lib/buffer.c", |
| "lib/cuse_lowlevel.c", |
| "lib/fuse.c", |
| "lib/fuse_i.h", |
| "lib/fuse_kern_chan.c", |
| "lib/fuse_loop.c", |
| "lib/fuse_loop_mt.c", |
| "lib/fuse_lowlevel.c", |
| "lib/fuse_misc.h", |
| "lib/fuse_mt.c", |
| "lib/fuse_opt.c", |
| "lib/fuse_session.c", |
| "lib/fuse_signals.c", |
| "lib/helper.c", |
| "lib/modules/iconv.c", |
| "lib/modules/subdir.c", |
| "lib/mount.c", |
| "lib/mount_util.c", |
| "lib/mount_util.h", |
| ], |
| copts = COPTS, |
| linkopts = [ |
| "-lpthread", |
| "-ldl", |
| ], |
| visibility = ["//visibility:private"], |
| deps = [":fuse_headers"], |
| alwayslink = 1, |
| ) |
| |
| cc_library( |
| name = "fuse_headers", |
| hdrs = glob(["include/*.h"]) + ["include/fuse/fuse.h"], |
| copts = COPTS, |
| defines = DEFINES, |
| includes = ["include"], |
| visibility = ["//visibility:private"], |
| deps = [":fuse_config"], |
| ) |
| |
| cc_library( |
| name = "ulockmgr", |
| srcs = [ |
| "lib/ulockmgr.c", |
| ], |
| hdrs = [ |
| "include/ulockmgr.h", |
| ], |
| copts = COPTS, |
| defines = DEFINES, |
| includes = ["include"], |
| linkopts = [ |
| "-lpthread", |
| "-ldl", |
| ], |
| ) |
| |
| # ------------------------------------------------------------------------------ |
| # Genrules |
| # ------------------------------------------------------------------------------ |
| |
| # A crude hack to make #include <fuse/fuse.h> work. |
| genrule( |
| name = "fuse_fuse_h", |
| outs = ["include/fuse/fuse.h"], |
| cmd = "echo '#include <fuse.h>' > $@", |
| visibility = ["//visibility:private"], |
| ) |
| |
| genrule( |
| name = "config_h", |
| srcs = ["config.h.yeti_linux"], |
| outs = ["config.h"], |
| cmd = "cp $< $@", |
| visibility = ["//visibility:private"], |
| ) |
| |
| cc_library( |
| name = "fuse_config", |
| srcs = ["config.h"], |
| includes = ["."], |
| ) |