1# Copyright (c) 2009-2021, Google LLC 2# All rights reserved. 3# 4# Use of this source code is governed by a BSD-style 5# license that can be found in the LICENSE file or at 6# https://developers.google.com/open-source/licenses/bsd 7 8load("//upb/bazel:build_defs.bzl", "UPB_DEFAULT_COPTS") 9 10package(default_applicable_licenses = ["//:license"]) 11 12cc_library( 13 name = "mem", 14 srcs = [ 15 "alloc.c", 16 "arena.c", 17 ], 18 hdrs = [ 19 "alloc.h", 20 "arena.h", 21 "arena.hpp", 22 ], 23 copts = UPB_DEFAULT_COPTS, 24 visibility = ["//visibility:public"], 25 deps = [ 26 ":internal", 27 "//upb:port", 28 ], 29) 30 31cc_library( 32 name = "internal", 33 hdrs = [ 34 "internal/arena.h", 35 ], 36 copts = UPB_DEFAULT_COPTS, 37 visibility = ["//visibility:public"], 38 deps = [ 39 "//upb:port", 40 ], 41) 42 43cc_test( 44 name = "arena_test", 45 srcs = ["arena_test.cc"], 46 deps = [ 47 ":mem", 48 "//upb:port", 49 "@com_google_absl//absl/random", 50 "@com_google_absl//absl/random:distributions", 51 "@com_google_absl//absl/synchronization", 52 "@com_google_absl//absl/time", 53 "@com_google_googletest//:gtest", 54 "@com_google_googletest//:gtest_main", 55 ], 56) 57 58filegroup( 59 name = "source_files", 60 srcs = glob( 61 [ 62 "**/*.c", 63 "**/*.h", 64 "**/*.hpp", 65 ], 66 ), 67 visibility = [ 68 "//python/dist:__pkg__", 69 "//upb/cmake:__pkg__", 70 ], 71) 72 73filegroup( 74 name = "test_srcs", 75 srcs = glob( 76 [ 77 "**/*test.cc", 78 ], 79 ), 80 visibility = ["//upb:__pkg__"], 81) 82