From 77f08769736aafabd8422a05e6692b81ffb5a618 Mon Sep 17 00:00:00 2001 From: Daniel Galvez Date: Fri, 5 Aug 2022 11:16:06 -0700 Subject: [PATCH] Correctly create fst-type object library. This allows me to remove the SHARED library fstscript_base, which is not correctly copied into the created wheel. Con is that total size of the built project increases. Also create fstconvert, which is used in graph construction. --- CMakeLists.txt | 11 +++++++---- setup.py | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b8ce33..f6b9b18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,8 +63,13 @@ if(NOT openfst_POPULATED) set_target_properties(riva_asrlib_openfst PROPERTIES POSITION_INDEPENDENT_CODE TRUE) target_compile_options(riva_asrlib_openfst PUBLIC -Wno-unused-local-typedefs -Wno-sign-compare -Wno-unused-variable) + add_library(fst-types OBJECT "${openfst_SOURCE_DIR}/src/lib/fst-types.cc") + target_include_directories(fst-types SYSTEM PUBLIC ${openfst_SOURCE_DIR}/src/include/) + set_target_properties(fst-types PROPERTIES POSITION_INDEPENDENT_CODE TRUE) + target_compile_options(fst-types PUBLIC -Wno-unused-local-typedefs -Wno-sign-compare -Wno-unused-variable) + + add_library(fstscript_base - SHARED "${openfst_SOURCE_DIR}/src/script/arciterator-class.cc" "${openfst_SOURCE_DIR}/src/script/encodemapper-class.cc" "${openfst_SOURCE_DIR}/src/script/fst-class.cc" @@ -72,10 +77,8 @@ if(NOT openfst_POPULATED) "${openfst_SOURCE_DIR}/src/script/stateiterator-class.cc" "${openfst_SOURCE_DIR}/src/script/text-io.cc" "${openfst_SOURCE_DIR}/src/script/weight-class.cc" - ${openfst_SOURCE_DIR}/src/lib/fst-types.cc - # $ ) - target_link_libraries(fstscript_base PUBLIC riva_asrlib_openfst ${CMAKE_DL_LIBS}) + target_link_libraries(fstscript_base PUBLIC riva_asrlib_openfst ${CMAKE_DL_LIBS} $) foreach(operation arcsort closure compile concat connect convert decode determinize disambiguate encode epsnormalize equal equivalent invert isomorphic map minimize project prune push randequivalent randgen relabel replace reverse reweight synchronize topsort union) # decode verify diff --git a/setup.py b/setup.py index 6f80cd2..7c8e1a0 100644 --- a/setup.py +++ b/setup.py @@ -65,7 +65,7 @@ def build_extension(self, ext: setuptools.extension.Extension): fst_binaries = "arpa2fst arpa-to-const-arpa fstdeterminizestar fstrmsymbols fstisstochastic fstminimizeencoded fstmakecontextfst fstmakecontextsyms fstaddsubsequentialloop fstaddselfloops fstrmepslocal fstcomposecontext fsttablecompose fstrand fstdeterminizelog fstphicompose fstcopy fstpushspecial fsts-to-transcripts fsts-project fsts-union fsts-concat transcripts-to-fsts".split(" ") fst_binaries.extend(openfst_binaries) # ERROR to fix: "fstcompose" is used in mkgraph_ctc.sh... - fst_binaries = ["arpa2fst", "fsttablecompose", "fstdeterminizestar", "fstminimizeencoded", "fstarcsort", "fstcompile", "fstaddselfloops", "transcripts-to-fsts"] + fst_binaries = ["arpa2fst", "fsttablecompose", "fstdeterminizestar", "fstminimizeencoded", "fstarcsort", "fstcompile", "fstaddselfloops", "transcripts-to-fsts", "fstconvert"] build_cmd = f''' cd {self.build_temp}