FunASR/runtime/onnxruntime/third_party/openfst/BUILD.bazel

932 lines
26 KiB
Python
Raw Permalink Normal View History

2024-05-18 15:50:56 +08:00
# Copyright 2015-2019 Google LLC. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
package(default_visibility = ["//visibility:public"])
licenses(["notice"]) # Apache 2.0
exports_files(["COPYING"])
prefix_dir = "src/"
static_binary = 1
# Core library (lib/)
cc_library(
name = "fst-decl",
hdrs = [prefix_dir + "include/fst/fst-decl.h"],
includes = [prefix_dir + "include"],
deps = [":base"],
)
PUBLIC_HEADERS = [
# One-stop header file which includes the remaining headers below:
prefix_dir + "include/fst/fstlib.h",
# Fine-grained headers:
prefix_dir + "include/fst/accumulator.h",
prefix_dir + "include/fst/add-on.h",
prefix_dir + "include/fst/arc-arena.h",
prefix_dir + "include/fst/arc-map.h",
prefix_dir + "include/fst/arc.h",
prefix_dir + "include/fst/arcfilter.h",
prefix_dir + "include/fst/arcsort.h",
prefix_dir + "include/fst/bi-table.h",
prefix_dir + "include/fst/cache.h",
prefix_dir + "include/fst/closure.h",
prefix_dir + "include/fst/compact-fst.h",
prefix_dir + "include/fst/complement.h",
prefix_dir + "include/fst/compose-filter.h",
prefix_dir + "include/fst/compose.h",
prefix_dir + "include/fst/concat.h",
prefix_dir + "include/fst/connect.h",
prefix_dir + "include/fst/const-fst.h",
prefix_dir + "include/fst/determinize.h",
prefix_dir + "include/fst/dfs-visit.h",
prefix_dir + "include/fst/difference.h",
prefix_dir + "include/fst/disambiguate.h",
prefix_dir + "include/fst/edit-fst.h",
prefix_dir + "include/fst/encode.h",
prefix_dir + "include/fst/epsnormalize.h",
prefix_dir + "include/fst/equal.h",
prefix_dir + "include/fst/equivalent.h",
prefix_dir + "include/fst/expanded-fst.h",
prefix_dir + "include/fst/factor-weight.h",
prefix_dir + "include/fst/filter-state.h",
prefix_dir + "include/fst/fst.h",
prefix_dir + "include/fst/heap.h",
prefix_dir + "include/fst/intersect.h",
prefix_dir + "include/fst/invert.h",
prefix_dir + "include/fst/isomorphic.h",
prefix_dir + "include/fst/label-reachable.h",
prefix_dir + "include/fst/lookahead-filter.h",
prefix_dir + "include/fst/lookahead-matcher.h",
prefix_dir + "include/fst/map.h",
prefix_dir + "include/fst/matcher-fst.h",
prefix_dir + "include/fst/matcher.h",
prefix_dir + "include/fst/memory.h",
prefix_dir + "include/fst/minimize.h",
prefix_dir + "include/fst/mutable-fst.h",
prefix_dir + "include/fst/partition.h",
prefix_dir + "include/fst/project.h",
prefix_dir + "include/fst/properties.h",
prefix_dir + "include/fst/prune.h",
prefix_dir + "include/fst/push.h",
prefix_dir + "include/fst/queue.h",
prefix_dir + "include/fst/randequivalent.h",
prefix_dir + "include/fst/randgen.h",
prefix_dir + "include/fst/rational.h",
prefix_dir + "include/fst/relabel.h",
prefix_dir + "include/fst/replace-util.h",
prefix_dir + "include/fst/replace.h",
prefix_dir + "include/fst/reverse.h",
prefix_dir + "include/fst/reweight.h",
prefix_dir + "include/fst/rmepsilon.h",
prefix_dir + "include/fst/rmfinalepsilon.h",
prefix_dir + "include/fst/shortest-distance.h",
prefix_dir + "include/fst/shortest-path.h",
prefix_dir + "include/fst/state-map.h",
prefix_dir + "include/fst/state-reachable.h",
prefix_dir + "include/fst/state-table.h",
prefix_dir + "include/fst/statesort.h",
prefix_dir + "include/fst/string.h",
prefix_dir + "include/fst/symbol-table-ops.h",
prefix_dir + "include/fst/synchronize.h",
prefix_dir + "include/fst/test-properties.h",
prefix_dir + "include/fst/topsort.h",
prefix_dir + "include/fst/union.h",
prefix_dir + "include/fst/vector-fst.h",
prefix_dir + "include/fst/verify.h",
prefix_dir + "include/fst/visit.h",
]
# This version does not have the export-dynamic flag set and should not be
# used to load dynamic-shared object FST extensions. Please see the
# "lib_export_dynamic" target below for binaries that need DSO loading.
cc_library(
name = "lib_lite",
srcs = [
prefix_dir + "lib/fst.cc",
prefix_dir + "lib/properties.cc",
prefix_dir + "lib/symbol-table-ops.cc",
],
hdrs = PUBLIC_HEADERS,
copts = ["-Wno-sign-compare"],
includes = [prefix_dir + "include"],
linkopts = ["-lm"],
deps = [
":base",
":fst-decl",
":icu",
":interval-set",
":register",
":symbol-table",
":union-find",
":util",
":weight",
],
)
cc_library(
name = "fst",
hdrs = PUBLIC_HEADERS,
includes = [prefix_dir + "include"],
deps = [
":fst-types",
":lib_lite",
],
)
cc_library(
name = "lib_export_dynamic",
linkopts = ["-Wl,--export-dynamic"],
deps = [":fst"],
)
cc_library(
name = "fst-types",
srcs = [prefix_dir + "lib/fst-types.cc"],
deps = [":lib_lite"],
alwayslink = 1, # because of registration
)
cc_library(
name = "symbol-table",
srcs = [prefix_dir + "lib/symbol-table.cc"],
hdrs = [prefix_dir + "include/fst/symbol-table.h"],
copts = ["-Wno-sign-compare"],
includes = [prefix_dir + "include"],
deps = [
":base",
":util",
],
)
cc_library(
name = "weight",
srcs = [prefix_dir + "lib/weight.cc"],
hdrs = [
prefix_dir + "include/fst/expectation-weight.h",
prefix_dir + "include/fst/float-weight.h",
prefix_dir + "include/fst/lexicographic-weight.h",
prefix_dir + "include/fst/pair-weight.h",
prefix_dir + "include/fst/power-weight.h",
prefix_dir + "include/fst/product-weight.h",
prefix_dir + "include/fst/set-weight.h",
prefix_dir + "include/fst/signed-log-weight.h",
prefix_dir + "include/fst/sparse-power-weight.h",
prefix_dir + "include/fst/sparse-tuple-weight.h",
prefix_dir + "include/fst/string-weight.h",
prefix_dir + "include/fst/tuple-weight.h",
prefix_dir + "include/fst/union-weight.h",
prefix_dir + "include/fst/weight.h",
],
includes = [prefix_dir + "include"],
linkopts = ["-lm"],
deps = [
":base",
":util",
],
)
cc_library(
name = "interval-set",
hdrs = [prefix_dir + "include/fst/interval-set.h"],
includes = [prefix_dir + "include"],
deps = [
":base",
":util",
],
)
cc_library(
name = "register",
hdrs = [
prefix_dir + "include/fst/generic-register.h",
prefix_dir + "include/fst/register.h",
],
includes = [prefix_dir + "include"],
linkopts = ["-ldl"],
deps = [
":base",
":util",
],
)
cc_library(
name = "icu",
hdrs = [
prefix_dir + "include/fst/icu.h",
],
)
cc_library(
name = "union-find",
hdrs = [prefix_dir + "include/fst/union-find.h"],
includes = [prefix_dir + "include"],
deps = [":base"],
)
cc_library(
name = "util",
srcs = [
prefix_dir + "lib/mapped-file.cc",
prefix_dir + "lib/util.cc",
],
hdrs = [
prefix_dir + "include/fst/mapped-file.h",
prefix_dir + "include/fst/util.h",
],
includes = [prefix_dir + "include"],
deps = [":base"],
)
cc_library(
name = "base",
srcs = [
prefix_dir + "lib/compat.cc",
prefix_dir + "lib/flags.cc",
],
hdrs = [
prefix_dir + "include/fst/compat.h",
prefix_dir + "include/fst/config.h",
prefix_dir + "include/fst/flags.h",
prefix_dir + "include/fst/icu.h",
prefix_dir + "include/fst/lock.h",
prefix_dir + "include/fst/log.h",
prefix_dir + "include/fst/types.h",
],
includes = [prefix_dir + "include"],
)
# Core library tests (test/)
cc_test(
name = "fst_test",
timeout = "short",
srcs = [
prefix_dir + "test/fst_test.cc",
prefix_dir + "include/fst/test/fst_test.h",
],
deps = [":fst"],
)
cc_library(
name = "weight-tester",
testonly = 1,
hdrs = [prefix_dir + "include/fst/test/weight-tester.h"],
includes = [prefix_dir],
deps = [":weight"],
)
cc_test(
name = "weight_test",
timeout = "short",
srcs = [prefix_dir + "test/weight_test.cc"],
copts = ["-Wno-unused-local-typedefs"],
deps = [
":fst",
":weight-tester",
],
)
[
cc_test(
name = "algo_test_%s" % weight,
srcs = [
prefix_dir + "test/algo_test.cc",
prefix_dir + "include/fst/test/algo_test.h",
prefix_dir + "include/fst/test/rand-fst.h",
],
defines = ["TEST_%s" % weight.upper()],
deps = [":fst"],
)
for weight in [
"tropical",
"log",
"minmax",
"lexicographic",
"power",
]
]
# Non-template scripting-language integration (script/)
cc_library(
name = "fstscript_base",
srcs = [
prefix_dir + "script/arciterator-class.cc",
prefix_dir + "script/encodemapper-class.cc",
prefix_dir + "script/fst-class.cc",
prefix_dir + "script/getters.cc",
prefix_dir + "script/stateiterator-class.cc",
prefix_dir + "script/text-io.cc",
prefix_dir + "script/weight-class.cc",
],
hdrs = [
prefix_dir + "include/fst/script/arc-class.h",
prefix_dir + "include/fst/script/arciterator-class.h",
prefix_dir + "include/fst/script/arg-packs.h",
prefix_dir + "include/fst/script/encodemapper-class.h",
prefix_dir + "include/fst/script/fst-class.h",
prefix_dir + "include/fst/script/fstscript-decl.h",
prefix_dir + "include/fst/script/fstscript.h",
prefix_dir + "include/fst/script/getters.h",
prefix_dir + "include/fst/script/register.h",
prefix_dir + "include/fst/script/script-impl.h",
prefix_dir + "include/fst/script/stateiterator-class.h",
prefix_dir + "include/fst/script/text-io.h",
prefix_dir + "include/fst/script/weight-class.h",
#
prefix_dir + "include/fst/script/arcsort.h",
prefix_dir + "include/fst/script/closure.h",
prefix_dir + "include/fst/script/compile.h",
prefix_dir + "include/fst/script/compile-impl.h",
prefix_dir + "include/fst/script/compose.h",
prefix_dir + "include/fst/script/concat.h",
prefix_dir + "include/fst/script/connect.h",
prefix_dir + "include/fst/script/convert.h",
prefix_dir + "include/fst/script/decode.h",
prefix_dir + "include/fst/script/determinize.h",
prefix_dir + "include/fst/script/difference.h",
prefix_dir + "include/fst/script/disambiguate.h",
prefix_dir + "include/fst/script/draw.h",
prefix_dir + "include/fst/script/draw-impl.h",
prefix_dir + "include/fst/script/encode.h",
prefix_dir + "include/fst/script/epsnormalize.h",
prefix_dir + "include/fst/script/equal.h",
prefix_dir + "include/fst/script/equivalent.h",
prefix_dir + "include/fst/script/info.h",
prefix_dir + "include/fst/script/info-impl.h",
prefix_dir + "include/fst/script/intersect.h",
prefix_dir + "include/fst/script/invert.h",
prefix_dir + "include/fst/script/isomorphic.h",
prefix_dir + "include/fst/script/map.h",
prefix_dir + "include/fst/script/minimize.h",
prefix_dir + "include/fst/script/print.h",
prefix_dir + "include/fst/script/print-impl.h",
prefix_dir + "include/fst/script/project.h",
prefix_dir + "include/fst/script/prune.h",
prefix_dir + "include/fst/script/push.h",
prefix_dir + "include/fst/script/randequivalent.h",
prefix_dir + "include/fst/script/randgen.h",
prefix_dir + "include/fst/script/relabel.h",
prefix_dir + "include/fst/script/replace.h",
prefix_dir + "include/fst/script/reverse.h",
prefix_dir + "include/fst/script/reweight.h",
prefix_dir + "include/fst/script/rmepsilon.h",
prefix_dir + "include/fst/script/shortest-distance.h",
prefix_dir + "include/fst/script/shortest-path.h",
prefix_dir + "include/fst/script/synchronize.h",
prefix_dir + "include/fst/script/topsort.h",
prefix_dir + "include/fst/script/union.h",
prefix_dir + "include/fst/script/verify.h",
],
copts = ["-Wno-sign-compare"],
includes = [prefix_dir + "include"],
deps = [":fst"],
)
[
cc_library(
name = "fstscript_%s" % operation,
srcs = [prefix_dir + "script/%s.cc" % operation],
hdrs = [prefix_dir + "include/fst/script/%s.h" % operation],
includes = [prefix_dir + "include"],
deps = [":fstscript_base"],
)
for operation in [
"arcsort",
"closure",
"concat",
"connect",
"convert",
"decode",
"determinize",
"disambiguate",
"encode",
"epsnormalize",
"equal",
"equivalent",
"invert",
"isomorphic",
"map",
"minimize",
"project",
"prune",
"push",
"randgen",
"relabel",
"replace",
"reverse",
"reweight",
"synchronize",
"topsort",
"union",
"verify",
]
]
cc_library(
name = "fstscript_compile",
srcs = [prefix_dir + "script/compile.cc"],
hdrs = [
prefix_dir + "include/fst/script/compile.h",
prefix_dir + "include/fst/script/compile-impl.h",
],
includes = [prefix_dir + "include"],
deps = [":fstscript_base"],
)
cc_library(
name = "fstscript_compose",
srcs = [prefix_dir + "script/compose.cc"],
hdrs = [prefix_dir + "include/fst/script/compose.h"],
includes = [prefix_dir + "include"],
deps = [
":fstscript_base",
":fstscript_connect",
],
)
cc_library(
name = "fstscript_difference",
srcs = [prefix_dir + "script/difference.cc"],
hdrs = [prefix_dir + "include/fst/script/difference.h"],
includes = [prefix_dir + "include"],
deps = [
":fstscript_base",
":fstscript_compose",
],
)
cc_library(
name = "fstscript_draw",
srcs = [prefix_dir + "script/draw.cc"],
hdrs = [
prefix_dir + "include/fst/script/draw.h",
prefix_dir + "include/fst/script/draw-impl.h",
],
includes = [prefix_dir + "include"],
deps = [":fstscript_base"],
)
cc_library(
name = "fstscript_info",
srcs = [
prefix_dir + "script/info.cc",
prefix_dir + "script/info-impl.cc",
],
hdrs = [
prefix_dir + "include/fst/script/info.h",
prefix_dir + "include/fst/script/info-impl.h",
],
includes = [prefix_dir + "include"],
deps = [":fstscript_base"],
)
cc_library(
name = "fstscript_intersect",
srcs = [prefix_dir + "script/intersect.cc"],
hdrs = [prefix_dir + "include/fst/script/intersect.h"],
includes = [prefix_dir + "include"],
deps = [
":fstscript_base",
":fstscript_compose",
],
)
cc_library(
name = "fstscript_print",
srcs = [prefix_dir + "script/print.cc"],
hdrs = [
prefix_dir + "include/fst/script/print.h",
prefix_dir + "include/fst/script/print-impl.h",
],
includes = [prefix_dir + "include"],
deps = [":fstscript_base"],
)
cc_library(
name = "fstscript_randequivalent",
srcs = [prefix_dir + "script/randequivalent.cc"],
hdrs = [prefix_dir + "include/fst/script/randequivalent.h"],
includes = [prefix_dir + "include"],
deps = [
":fstscript_base",
":fstscript_randgen",
],
)
cc_library(
name = "fstscript_rmepsilon",
srcs = [prefix_dir + "script/rmepsilon.cc"],
hdrs = [prefix_dir + "include/fst/script/rmepsilon.h"],
includes = [prefix_dir + "include"],
deps = [
":fstscript_base",
":fstscript_shortest_distance",
],
)
cc_library(
name = "fstscript_shortest_distance",
srcs = [prefix_dir + "script/shortest-distance.cc"],
hdrs = [prefix_dir + "include/fst/script/shortest-distance.h"],
includes = [prefix_dir + "include"],
deps = [
":fstscript_base",
":fstscript_prune",
],
)
cc_library(
name = "fstscript_shortest_path",
srcs = [prefix_dir + "script/shortest-path.cc"],
hdrs = [prefix_dir + "include/fst/script/shortest-path.h"],
includes = [prefix_dir + "include"],
deps = [
":fstscript_base",
":fstscript_shortest_distance",
],
)
cc_library(
name = "fstscript",
deps = [
":fstscript_arcsort",
":fstscript_closure",
":fstscript_compile",
":fstscript_compose",
":fstscript_concat",
":fstscript_connect",
":fstscript_convert",
":fstscript_decode",
":fstscript_determinize",
":fstscript_difference",
":fstscript_disambiguate",
":fstscript_draw",
":fstscript_encode",
":fstscript_epsnormalize",
":fstscript_equal",
":fstscript_equivalent",
":fstscript_info",
":fstscript_intersect",
":fstscript_invert",
":fstscript_isomorphic",
":fstscript_map",
":fstscript_minimize",
":fstscript_print",
":fstscript_project",
":fstscript_prune",
":fstscript_push",
":fstscript_randequivalent",
":fstscript_randgen",
":fstscript_relabel",
":fstscript_replace",
":fstscript_reverse",
":fstscript_reweight",
":fstscript_rmepsilon",
":fstscript_shortest_distance",
":fstscript_shortest_path",
":fstscript_synchronize",
":fstscript_topsort",
":fstscript_union",
":fstscript_verify",
],
)
# Command-line binaries (bin/)
[
cc_binary(
name = "fst%s" % operation.replace("_", ""),
srcs = [
prefix_dir + "bin/fst%s.cc" % operation.replace("_", ""),
prefix_dir + "bin/fst%s-main.cc" % operation.replace("_", ""),
],
linkstatic = static_binary,
deps = [":fstscript_%s" % operation],
)
for operation in [
"arcsort",
"closure",
"compile",
"compose",
"concat",
"connect",
"convert",
"determinize",
"difference",
"disambiguate",
"draw",
"epsnormalize",
"equal",
"info",
"intersect",
"invert",
"isomorphic",
"map",
"minimize",
"print",
"project",
"prune",
"push",
"randgen",
"relabel",
"replace",
"reverse",
"reweight",
"rmepsilon",
"shortest_distance",
"shortest_path",
"synchronize",
"topsort",
"union",
]
]
cc_binary(
name = "fstencode",
srcs = [
prefix_dir + "bin/fstencode.cc",
prefix_dir + "bin/fstencode-main.cc",
],
linkstatic = static_binary,
deps = [
":fstscript_decode",
":fstscript_encode",
],
)
cc_binary(
name = "fstequivalent",
srcs = [
prefix_dir + "bin/fstequivalent.cc",
prefix_dir + "bin/fstequivalent-main.cc",
],
linkstatic = static_binary,
deps = [
":fstscript_equivalent",
":fstscript_randequivalent",
],
)
cc_binary(
name = "fstsymbols",
srcs = [
prefix_dir + "bin/fstsymbols.cc",
prefix_dir + "bin/fstsymbols-main.cc",
],
linkstatic = static_binary,
deps = [":fstscript_verify"],
)
# Extension: Fst ARchive a/k/a FAR (extensions/far/)
cc_library(
name = "sttable",
srcs = [
prefix_dir + "extensions/far/stlist.cc",
prefix_dir + "extensions/far/sttable.cc",
],
hdrs = [
prefix_dir + "include/fst/extensions/far/stlist.h",
prefix_dir + "include/fst/extensions/far/sttable.h",
],
includes = [prefix_dir + "include"],
deps = [":util"],
)
cc_library(
name = "far_base",
hdrs = [
prefix_dir + "include/fst/extensions/far/far.h",
],
includes = [prefix_dir + "include"],
deps = [
":fst",
":sttable",
],
)
cc_library(
name = "far",
srcs = [prefix_dir + "extensions/far/strings.cc"],
hdrs = [
prefix_dir + "include/fst/extensions/far/compile-strings.h",
prefix_dir + "include/fst/extensions/far/create.h",
prefix_dir + "include/fst/extensions/far/equal.h",
prefix_dir + "include/fst/extensions/far/extract.h",
prefix_dir + "include/fst/extensions/far/farlib.h",
prefix_dir + "include/fst/extensions/far/info.h",
prefix_dir + "include/fst/extensions/far/isomorphic.h",
prefix_dir + "include/fst/extensions/far/print-strings.h",
],
includes = [prefix_dir + "include"],
deps = [
":far_base",
":fst",
],
)
cc_library(
name = "farscript",
srcs = [
prefix_dir + "extensions/far/far-class.cc",
prefix_dir + "extensions/far/farscript.cc",
prefix_dir + "extensions/far/getters.cc",
prefix_dir + "extensions/far/script-impl.cc",
prefix_dir + "extensions/far/strings.cc",
],
hdrs = [
prefix_dir + "include/fst/extensions/far/compile-strings.h",
prefix_dir + "include/fst/extensions/far/far-class.h",
prefix_dir + "include/fst/extensions/far/farscript.h",
prefix_dir + "include/fst/extensions/far/getters.h",
prefix_dir + "include/fst/extensions/far/script-impl.h",
],
includes = [prefix_dir + "include"],
deps = [
":base",
":far",
":fstscript_base",
],
)
[
cc_binary(
name = "far%s" % operation,
srcs = [prefix_dir + "extensions/far/far%s.cc" % operation],
linkstatic = static_binary,
deps = [":farscript"],
)
for operation in [
"compilestrings",
"create",
"equal",
"extract",
"info",
"isomorphic",
"printstrings",
]
]
# Extension: PushDown Transducers a/k/a PDT (extensions/pdt/)
cc_library(
name = "pdt",
hdrs = [
prefix_dir + "include/fst/extensions/pdt/collection.h",
prefix_dir + "include/fst/extensions/pdt/compose.h",
prefix_dir + "include/fst/extensions/pdt/expand.h",
prefix_dir + "include/fst/extensions/pdt/getters.h",
prefix_dir + "include/fst/extensions/pdt/info.h",
prefix_dir + "include/fst/extensions/pdt/paren.h",
prefix_dir + "include/fst/extensions/pdt/pdt.h",
prefix_dir + "include/fst/extensions/pdt/pdtlib.h",
prefix_dir + "include/fst/extensions/pdt/replace.h",
prefix_dir + "include/fst/extensions/pdt/reverse.h",
prefix_dir + "include/fst/extensions/pdt/shortest-path.h",
],
includes = [prefix_dir + "include"],
deps = [
":fst",
],
)
cc_library(
name = "pdtscript",
srcs = [
prefix_dir + "extensions/pdt/getters.cc",
prefix_dir + "extensions/pdt/pdtscript.cc",
],
hdrs = [
prefix_dir + "include/fst/extensions/pdt/getters.h",
prefix_dir + "include/fst/extensions/pdt/pdtscript.h",
],
includes = [prefix_dir + "include"],
deps = [
":fst",
":fstscript_base",
":pdt",
],
)
cc_binary(
name = "pdtcompose",
srcs = [prefix_dir + "extensions/pdt/pdtcompose.cc"],
linkstatic = static_binary,
deps = [
":fstscript_connect",
":pdtscript",
],
)
[
cc_binary(
name = "pdt%s" % operation,
srcs = [prefix_dir + "extensions/pdt/pdt%s.cc" % operation],
linkstatic = static_binary,
deps = [":pdtscript"],
)
for operation in [
"expand",
"info",
"replace",
"reverse",
"shortestpath",
]
]
# Extension: Multi PushDown Transducers a/k/a MPDT (extensions/mpdt/)
cc_library(
name = "mpdt",
hdrs = [
prefix_dir + "include/fst/extensions/mpdt/compose.h",
prefix_dir + "include/fst/extensions/mpdt/expand.h",
prefix_dir + "include/fst/extensions/mpdt/info.h",
prefix_dir + "include/fst/extensions/mpdt/mpdt.h",
prefix_dir + "include/fst/extensions/mpdt/mpdtlib.h",
prefix_dir + "include/fst/extensions/mpdt/read_write_utils.h",
prefix_dir + "include/fst/extensions/mpdt/reverse.h",
],
includes = [prefix_dir + "include"],
deps = [
":fst",
":pdt",
],
)
cc_library(
name = "mpdtscript",
srcs = [prefix_dir + "extensions/mpdt/mpdtscript.cc"],
hdrs = [prefix_dir + "include/fst/extensions/mpdt/mpdtscript.h"],
includes = [prefix_dir + "include"],
deps = [
":fst",
":fstscript_base",
":mpdt",
":pdtscript",
],
)
cc_binary(
name = "mpdtcompose",
srcs = [prefix_dir + "extensions/mpdt/mpdtcompose.cc"],
linkstatic = static_binary,
deps = [
":fstscript_connect",
":mpdtscript",
],
)
[
cc_binary(
name = "mpdt%s" % operation,
srcs = [prefix_dir + "extensions/mpdt/mpdt%s.cc" % operation],
linkstatic = static_binary,
deps = [":mpdtscript"],
)
for operation in [
"expand",
"info",
"reverse",
]
]
# Extension: LOUDS compressed n-gram language models (extensions/ngram/)
cc_library(
name = "ngram",
srcs = [
prefix_dir + "extensions/ngram/bitmap-index.cc",
prefix_dir + "extensions/ngram/ngram-fst.cc",
prefix_dir + "extensions/ngram/nthbit.cc",
],
hdrs = [
prefix_dir + "include/fst/extensions/ngram/bitmap-index.h",
prefix_dir + "include/fst/extensions/ngram/ngram-fst.h",
prefix_dir + "include/fst/extensions/ngram/nthbit.h",
],
includes = [prefix_dir + "include"],
deps = [
":fst",
],
)
# TODO: Extensions compact, compress, const, linear, lookahead, python, special