1*ccdc9c3eSSadaf Ebrahimi# Copyright 2009 The RE2 Authors. All Rights Reserved. 2*ccdc9c3eSSadaf Ebrahimi# Use of this source code is governed by a BSD-style 3*ccdc9c3eSSadaf Ebrahimi# license that can be found in the LICENSE file. 4*ccdc9c3eSSadaf Ebrahimi 5*ccdc9c3eSSadaf Ebrahimi# Bazel (http://bazel.io/) BUILD file for RE2. 6*ccdc9c3eSSadaf Ebrahimi 7*ccdc9c3eSSadaf Ebrahimilicenses(["notice"]) 8*ccdc9c3eSSadaf Ebrahimi 9*ccdc9c3eSSadaf Ebrahimiexports_files(["LICENSE"]) 10*ccdc9c3eSSadaf Ebrahimi 11*ccdc9c3eSSadaf Ebrahimiconfig_setting( 12*ccdc9c3eSSadaf Ebrahimi name = "darwin", 13*ccdc9c3eSSadaf Ebrahimi values = {"cpu": "darwin"}, 14*ccdc9c3eSSadaf Ebrahimi) 15*ccdc9c3eSSadaf Ebrahimi 16*ccdc9c3eSSadaf Ebrahimiconfig_setting( 17*ccdc9c3eSSadaf Ebrahimi name = "windows", 18*ccdc9c3eSSadaf Ebrahimi values = {"cpu": "x64_windows"}, 19*ccdc9c3eSSadaf Ebrahimi) 20*ccdc9c3eSSadaf Ebrahimi 21*ccdc9c3eSSadaf Ebrahimiconfig_setting( 22*ccdc9c3eSSadaf Ebrahimi name = "windows_msvc", 23*ccdc9c3eSSadaf Ebrahimi values = {"cpu": "x64_windows_msvc"}, 24*ccdc9c3eSSadaf Ebrahimi) 25*ccdc9c3eSSadaf Ebrahimi 26*ccdc9c3eSSadaf Ebrahimicc_library( 27*ccdc9c3eSSadaf Ebrahimi name = "re2", 28*ccdc9c3eSSadaf Ebrahimi srcs = [ 29*ccdc9c3eSSadaf Ebrahimi "re2/bitmap256.h", 30*ccdc9c3eSSadaf Ebrahimi "re2/bitstate.cc", 31*ccdc9c3eSSadaf Ebrahimi "re2/compile.cc", 32*ccdc9c3eSSadaf Ebrahimi "re2/dfa.cc", 33*ccdc9c3eSSadaf Ebrahimi "re2/filtered_re2.cc", 34*ccdc9c3eSSadaf Ebrahimi "re2/mimics_pcre.cc", 35*ccdc9c3eSSadaf Ebrahimi "re2/nfa.cc", 36*ccdc9c3eSSadaf Ebrahimi "re2/onepass.cc", 37*ccdc9c3eSSadaf Ebrahimi "re2/parse.cc", 38*ccdc9c3eSSadaf Ebrahimi "re2/perl_groups.cc", 39*ccdc9c3eSSadaf Ebrahimi "re2/prefilter.cc", 40*ccdc9c3eSSadaf Ebrahimi "re2/prefilter.h", 41*ccdc9c3eSSadaf Ebrahimi "re2/prefilter_tree.cc", 42*ccdc9c3eSSadaf Ebrahimi "re2/prefilter_tree.h", 43*ccdc9c3eSSadaf Ebrahimi "re2/prog.cc", 44*ccdc9c3eSSadaf Ebrahimi "re2/prog.h", 45*ccdc9c3eSSadaf Ebrahimi "re2/re2.cc", 46*ccdc9c3eSSadaf Ebrahimi "re2/regexp.cc", 47*ccdc9c3eSSadaf Ebrahimi "re2/regexp.h", 48*ccdc9c3eSSadaf Ebrahimi "re2/set.cc", 49*ccdc9c3eSSadaf Ebrahimi "re2/simplify.cc", 50*ccdc9c3eSSadaf Ebrahimi "re2/stringpiece.cc", 51*ccdc9c3eSSadaf Ebrahimi "re2/tostring.cc", 52*ccdc9c3eSSadaf Ebrahimi "re2/unicode_casefold.cc", 53*ccdc9c3eSSadaf Ebrahimi "re2/unicode_casefold.h", 54*ccdc9c3eSSadaf Ebrahimi "re2/unicode_groups.cc", 55*ccdc9c3eSSadaf Ebrahimi "re2/unicode_groups.h", 56*ccdc9c3eSSadaf Ebrahimi "re2/walker-inl.h", 57*ccdc9c3eSSadaf Ebrahimi "util/flags.h", 58*ccdc9c3eSSadaf Ebrahimi "util/logging.h", 59*ccdc9c3eSSadaf Ebrahimi "util/mix.h", 60*ccdc9c3eSSadaf Ebrahimi "util/mutex.h", 61*ccdc9c3eSSadaf Ebrahimi "util/pod_array.h", 62*ccdc9c3eSSadaf Ebrahimi "util/rune.cc", 63*ccdc9c3eSSadaf Ebrahimi "util/sparse_array.h", 64*ccdc9c3eSSadaf Ebrahimi "util/sparse_set.h", 65*ccdc9c3eSSadaf Ebrahimi "util/strutil.cc", 66*ccdc9c3eSSadaf Ebrahimi "util/strutil.h", 67*ccdc9c3eSSadaf Ebrahimi "util/utf.h", 68*ccdc9c3eSSadaf Ebrahimi "util/util.h", 69*ccdc9c3eSSadaf Ebrahimi ], 70*ccdc9c3eSSadaf Ebrahimi hdrs = [ 71*ccdc9c3eSSadaf Ebrahimi "re2/filtered_re2.h", 72*ccdc9c3eSSadaf Ebrahimi "re2/re2.h", 73*ccdc9c3eSSadaf Ebrahimi "re2/set.h", 74*ccdc9c3eSSadaf Ebrahimi "re2/stringpiece.h", 75*ccdc9c3eSSadaf Ebrahimi ], 76*ccdc9c3eSSadaf Ebrahimi copts = select({ 77*ccdc9c3eSSadaf Ebrahimi ":windows": [], 78*ccdc9c3eSSadaf Ebrahimi ":windows_msvc": [], 79*ccdc9c3eSSadaf Ebrahimi "//conditions:default": ["-pthread"], 80*ccdc9c3eSSadaf Ebrahimi }), 81*ccdc9c3eSSadaf Ebrahimi linkopts = select({ 82*ccdc9c3eSSadaf Ebrahimi # Darwin doesn't need `-pthread' when linking and it appears that 83*ccdc9c3eSSadaf Ebrahimi # older versions of Clang will warn about the unused command line 84*ccdc9c3eSSadaf Ebrahimi # argument, so just don't pass it. 85*ccdc9c3eSSadaf Ebrahimi ":darwin": [], 86*ccdc9c3eSSadaf Ebrahimi ":windows": [], 87*ccdc9c3eSSadaf Ebrahimi ":windows_msvc": [], 88*ccdc9c3eSSadaf Ebrahimi "//conditions:default": ["-pthread"], 89*ccdc9c3eSSadaf Ebrahimi }), 90*ccdc9c3eSSadaf Ebrahimi visibility = ["//visibility:public"], 91*ccdc9c3eSSadaf Ebrahimi) 92*ccdc9c3eSSadaf Ebrahimi 93*ccdc9c3eSSadaf Ebrahimicc_library( 94*ccdc9c3eSSadaf Ebrahimi name = "testing", 95*ccdc9c3eSSadaf Ebrahimi testonly = 1, 96*ccdc9c3eSSadaf Ebrahimi srcs = [ 97*ccdc9c3eSSadaf Ebrahimi "re2/testing/backtrack.cc", 98*ccdc9c3eSSadaf Ebrahimi "re2/testing/dump.cc", 99*ccdc9c3eSSadaf Ebrahimi "re2/testing/exhaustive_tester.cc", 100*ccdc9c3eSSadaf Ebrahimi "re2/testing/null_walker.cc", 101*ccdc9c3eSSadaf Ebrahimi "re2/testing/regexp_generator.cc", 102*ccdc9c3eSSadaf Ebrahimi "re2/testing/string_generator.cc", 103*ccdc9c3eSSadaf Ebrahimi "re2/testing/tester.cc", 104*ccdc9c3eSSadaf Ebrahimi "util/pcre.cc", 105*ccdc9c3eSSadaf Ebrahimi ], 106*ccdc9c3eSSadaf Ebrahimi hdrs = [ 107*ccdc9c3eSSadaf Ebrahimi "re2/testing/exhaustive_tester.h", 108*ccdc9c3eSSadaf Ebrahimi "re2/testing/regexp_generator.h", 109*ccdc9c3eSSadaf Ebrahimi "re2/testing/string_generator.h", 110*ccdc9c3eSSadaf Ebrahimi "re2/testing/tester.h", 111*ccdc9c3eSSadaf Ebrahimi "util/benchmark.h", 112*ccdc9c3eSSadaf Ebrahimi "util/pcre.h", 113*ccdc9c3eSSadaf Ebrahimi "util/test.h", 114*ccdc9c3eSSadaf Ebrahimi ], 115*ccdc9c3eSSadaf Ebrahimi deps = [":re2"], 116*ccdc9c3eSSadaf Ebrahimi) 117*ccdc9c3eSSadaf Ebrahimi 118*ccdc9c3eSSadaf Ebrahimicc_library( 119*ccdc9c3eSSadaf Ebrahimi name = "test", 120*ccdc9c3eSSadaf Ebrahimi testonly = 1, 121*ccdc9c3eSSadaf Ebrahimi srcs = ["util/test.cc"], 122*ccdc9c3eSSadaf Ebrahimi deps = [":testing"], 123*ccdc9c3eSSadaf Ebrahimi) 124*ccdc9c3eSSadaf Ebrahimi 125*ccdc9c3eSSadaf Ebrahimiload(":re2_test.bzl", "re2_test") 126*ccdc9c3eSSadaf Ebrahimi 127*ccdc9c3eSSadaf Ebrahimire2_test( 128*ccdc9c3eSSadaf Ebrahimi "charclass_test", 129*ccdc9c3eSSadaf Ebrahimi size = "small", 130*ccdc9c3eSSadaf Ebrahimi) 131*ccdc9c3eSSadaf Ebrahimi 132*ccdc9c3eSSadaf Ebrahimire2_test( 133*ccdc9c3eSSadaf Ebrahimi "compile_test", 134*ccdc9c3eSSadaf Ebrahimi size = "small", 135*ccdc9c3eSSadaf Ebrahimi) 136*ccdc9c3eSSadaf Ebrahimi 137*ccdc9c3eSSadaf Ebrahimire2_test( 138*ccdc9c3eSSadaf Ebrahimi "filtered_re2_test", 139*ccdc9c3eSSadaf Ebrahimi size = "small", 140*ccdc9c3eSSadaf Ebrahimi) 141*ccdc9c3eSSadaf Ebrahimi 142*ccdc9c3eSSadaf Ebrahimire2_test( 143*ccdc9c3eSSadaf Ebrahimi "mimics_pcre_test", 144*ccdc9c3eSSadaf Ebrahimi size = "small", 145*ccdc9c3eSSadaf Ebrahimi) 146*ccdc9c3eSSadaf Ebrahimi 147*ccdc9c3eSSadaf Ebrahimire2_test( 148*ccdc9c3eSSadaf Ebrahimi "parse_test", 149*ccdc9c3eSSadaf Ebrahimi size = "small", 150*ccdc9c3eSSadaf Ebrahimi) 151*ccdc9c3eSSadaf Ebrahimi 152*ccdc9c3eSSadaf Ebrahimire2_test( 153*ccdc9c3eSSadaf Ebrahimi "possible_match_test", 154*ccdc9c3eSSadaf Ebrahimi size = "small", 155*ccdc9c3eSSadaf Ebrahimi) 156*ccdc9c3eSSadaf Ebrahimi 157*ccdc9c3eSSadaf Ebrahimire2_test( 158*ccdc9c3eSSadaf Ebrahimi "re2_arg_test", 159*ccdc9c3eSSadaf Ebrahimi size = "small", 160*ccdc9c3eSSadaf Ebrahimi) 161*ccdc9c3eSSadaf Ebrahimi 162*ccdc9c3eSSadaf Ebrahimire2_test( 163*ccdc9c3eSSadaf Ebrahimi "re2_test", 164*ccdc9c3eSSadaf Ebrahimi size = "small", 165*ccdc9c3eSSadaf Ebrahimi) 166*ccdc9c3eSSadaf Ebrahimi 167*ccdc9c3eSSadaf Ebrahimire2_test( 168*ccdc9c3eSSadaf Ebrahimi "regexp_test", 169*ccdc9c3eSSadaf Ebrahimi size = "small", 170*ccdc9c3eSSadaf Ebrahimi) 171*ccdc9c3eSSadaf Ebrahimi 172*ccdc9c3eSSadaf Ebrahimire2_test( 173*ccdc9c3eSSadaf Ebrahimi "required_prefix_test", 174*ccdc9c3eSSadaf Ebrahimi size = "small", 175*ccdc9c3eSSadaf Ebrahimi) 176*ccdc9c3eSSadaf Ebrahimi 177*ccdc9c3eSSadaf Ebrahimire2_test( 178*ccdc9c3eSSadaf Ebrahimi "search_test", 179*ccdc9c3eSSadaf Ebrahimi size = "small", 180*ccdc9c3eSSadaf Ebrahimi) 181*ccdc9c3eSSadaf Ebrahimi 182*ccdc9c3eSSadaf Ebrahimire2_test( 183*ccdc9c3eSSadaf Ebrahimi "set_test", 184*ccdc9c3eSSadaf Ebrahimi size = "small", 185*ccdc9c3eSSadaf Ebrahimi) 186*ccdc9c3eSSadaf Ebrahimi 187*ccdc9c3eSSadaf Ebrahimire2_test( 188*ccdc9c3eSSadaf Ebrahimi "simplify_test", 189*ccdc9c3eSSadaf Ebrahimi size = "small", 190*ccdc9c3eSSadaf Ebrahimi) 191*ccdc9c3eSSadaf Ebrahimi 192*ccdc9c3eSSadaf Ebrahimire2_test( 193*ccdc9c3eSSadaf Ebrahimi "string_generator_test", 194*ccdc9c3eSSadaf Ebrahimi size = "small", 195*ccdc9c3eSSadaf Ebrahimi) 196*ccdc9c3eSSadaf Ebrahimi 197*ccdc9c3eSSadaf Ebrahimire2_test( 198*ccdc9c3eSSadaf Ebrahimi "dfa_test", 199*ccdc9c3eSSadaf Ebrahimi size = "large", 200*ccdc9c3eSSadaf Ebrahimi) 201*ccdc9c3eSSadaf Ebrahimi 202*ccdc9c3eSSadaf Ebrahimire2_test( 203*ccdc9c3eSSadaf Ebrahimi "exhaustive1_test", 204*ccdc9c3eSSadaf Ebrahimi size = "large", 205*ccdc9c3eSSadaf Ebrahimi) 206*ccdc9c3eSSadaf Ebrahimi 207*ccdc9c3eSSadaf Ebrahimire2_test( 208*ccdc9c3eSSadaf Ebrahimi "exhaustive2_test", 209*ccdc9c3eSSadaf Ebrahimi size = "large", 210*ccdc9c3eSSadaf Ebrahimi) 211*ccdc9c3eSSadaf Ebrahimi 212*ccdc9c3eSSadaf Ebrahimire2_test( 213*ccdc9c3eSSadaf Ebrahimi "exhaustive3_test", 214*ccdc9c3eSSadaf Ebrahimi size = "large", 215*ccdc9c3eSSadaf Ebrahimi) 216*ccdc9c3eSSadaf Ebrahimi 217*ccdc9c3eSSadaf Ebrahimire2_test( 218*ccdc9c3eSSadaf Ebrahimi "exhaustive_test", 219*ccdc9c3eSSadaf Ebrahimi size = "large", 220*ccdc9c3eSSadaf Ebrahimi) 221*ccdc9c3eSSadaf Ebrahimi 222*ccdc9c3eSSadaf Ebrahimire2_test( 223*ccdc9c3eSSadaf Ebrahimi "random_test", 224*ccdc9c3eSSadaf Ebrahimi size = "large", 225*ccdc9c3eSSadaf Ebrahimi) 226*ccdc9c3eSSadaf Ebrahimi 227*ccdc9c3eSSadaf Ebrahimicc_library( 228*ccdc9c3eSSadaf Ebrahimi name = "benchmark", 229*ccdc9c3eSSadaf Ebrahimi testonly = 1, 230*ccdc9c3eSSadaf Ebrahimi srcs = ["util/benchmark.cc"], 231*ccdc9c3eSSadaf Ebrahimi deps = [":testing"], 232*ccdc9c3eSSadaf Ebrahimi) 233*ccdc9c3eSSadaf Ebrahimi 234*ccdc9c3eSSadaf Ebrahimicc_binary( 235*ccdc9c3eSSadaf Ebrahimi name = "regexp_benchmark", 236*ccdc9c3eSSadaf Ebrahimi testonly = 1, 237*ccdc9c3eSSadaf Ebrahimi srcs = ["re2/testing/regexp_benchmark.cc"], 238*ccdc9c3eSSadaf Ebrahimi deps = [":benchmark"], 239*ccdc9c3eSSadaf Ebrahimi) 240