tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

BUILD.bazel (3887B)


      1 # © 2021 and later: Unicode, Inc. and others.
      2 # License & terms of use: http://www.unicode.org/copyright.html
      3 
      4 # This file defines Bazel targets for a subset of the ICU4C "i18n" library header and source files.
      5 # The configuration of dependencies among targets is strongly assisted by the
      6 # file in depstest that maintains such information, at
      7 # icu4c/source/test/depstest/dependencies.txt .
      8 
      9 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
     10 
     11 package(
     12    default_visibility = ["//visibility:public"],
     13 )
     14 
     15 # When compiling code in the `common` dir, the constant
     16 # `U_I18n_IMPLEMENTATION` needs to be defined. See 
     17 # https://unicode-org.github.io/icu/userguide/howtouseicu#c-with-your-own-build-system .
     18 
     19 # If linker errors occur, then this may be a sign that the dependencies were 
     20 # not specified correctly. Use dependencies.txt in depstest for assistance. See
     21 # https://stackoverflow.com/q/66111709/2077918 .
     22 
     23 cc_library(
     24    name = "headers",
     25    hdrs = glob([
     26        "unicode/*.h", # public
     27        "*.h",         # internal
     28    ]),
     29    # We need to add includes in order to preserve existing source files'
     30    # include directives that use traditional paths, not paths relative to
     31    # Bazel workspace:
     32    # https://stackoverflow.com/a/65635893/2077918
     33    includes = ["."],
     34    local_defines = [
     35        "U_I18N_IMPLEMENTATION",
     36    ],
     37 )
     38 
     39 cc_library(
     40    name = "collation",
     41    srcs = [
     42        "bocsu.cpp",
     43        "coleitr.cpp",
     44        "coll.cpp",
     45        "collation.cpp",
     46        "collationcompare.cpp",
     47        "collationdata.cpp",
     48        "collationdatareader.cpp",
     49        "collationdatawriter.cpp",
     50        "collationfastlatin.cpp",
     51        # collationfcd.cpp is generated by genuca;
     52        # probably hard to build genuca without depending on the old version.
     53        "collationfcd.cpp",
     54        "collationiterator.cpp",
     55        "collationkeys.cpp",
     56        "collationroot.cpp",
     57        "collationrootelements.cpp",
     58        "collationsets.cpp",
     59        "collationsettings.cpp",
     60        "collationtailoring.cpp",
     61        "rulebasedcollator.cpp",
     62        "sortkey.cpp",
     63        "ucol.cpp",
     64        "ucol_res.cpp",
     65        "ucol_sit.cpp",
     66        "ucoleitr.cpp",
     67        "uitercollationiterator.cpp",
     68        "utf16collationiterator.cpp",
     69        "utf8collationiterator.cpp",
     70    ],
     71    includes = ["."],
     72    deps = [
     73        ":headers",
     74        ":uclean_i18n",
     75        "//icu4c/source/common:bytestream",
     76        "//icu4c/source/common:normalizer2",
     77        "//icu4c/source/common:platform",
     78        "//icu4c/source/common:propname",
     79        "//icu4c/source/common:resourcebundle",
     80        "//icu4c/source/common:service_registration",
     81        "//icu4c/source/common:ucharstrieiterator",
     82        "//icu4c/source/common:uiter",
     83        "//icu4c/source/common:ulist",
     84        "//icu4c/source/common:unifiedcache",
     85        "//icu4c/source/common:uset",
     86        "//icu4c/source/common:usetiter",
     87        "//icu4c/source/common:utrie2",
     88        "//icu4c/source/common:uvector32",
     89        "//icu4c/source/common:uvector64",
     90    ],
     91    local_defines = [
     92        "U_I18N_IMPLEMENTATION",
     93    ],
     94 )
     95 
     96 cc_library(
     97    name = "collation_builder",
     98    srcs = [
     99        "collationbuilder.cpp",
    100        "collationdatabuilder.cpp",
    101        "collationfastlatinbuilder.cpp",
    102        "collationruleparser.cpp",
    103        "collationweights.cpp",
    104    ],
    105    includes = ["."],
    106    deps = [
    107        ":collation",
    108        "//icu4c/source/common:canonical_iterator",
    109        "//icu4c/source/common:ucharstriebuilder",
    110        "//icu4c/source/common:uset_props"
    111    ],
    112    local_defines = [
    113        "U_I18N_IMPLEMENTATION",
    114    ],
    115 )
    116 
    117 cc_library(
    118    name = "uclean_i18n",
    119    srcs = [
    120        "ucln_in.cpp",
    121    ],
    122    hdrs = ["ucln_in.h"],
    123    includes = ["."],
    124    deps = [
    125        "//icu4c/source/common:platform",
    126    ],
    127    local_defines = [
    128        "U_I18N_IMPLEMENTATION",
    129    ],
    130 )