mirror of
https://github.com/k2-fsa/sherpa-onnx.git
synced 2026-11-10 21:11:03 +08:00
78 lines
2.5 KiB
CMake
78 lines
2.5 KiB
CMake
include_guard(GLOBAL)
|
|
|
|
# Copyright (c) 2020 Xiaomi Corporation (author: Fangjun Kuang)
|
|
|
|
function(download_openfst)
|
|
include(FetchContent)
|
|
|
|
set(openfst_URL "https://github.com/csukuangfj/openfst/archive/refs/tags/v1.8.5-2026-07-09.tar.gz")
|
|
set(openfst_HASH "SHA256=2ff712a32952fcb01d351121a6bc8ccf4fdc6b2aa06ce8df2b3095dedd518c0e")
|
|
|
|
# If you don't have access to the Internet,
|
|
# please pre-download it
|
|
set(possible_file_locations
|
|
$ENV{HOME}/Downloads/openfst-1.8.5-2026-07-09.tar.gz
|
|
${CMAKE_SOURCE_DIR}/openfst-1.8.5-2026-07-09.tar.gz
|
|
${CMAKE_BINARY_DIR}/openfst-1.8.5-2026-07-09.tar.gz
|
|
/tmp/openfst-1.8.5-2026-07-09.tar.gz
|
|
/star-fj/fangjun/download/github/openfst-1.8.5-2026-07-09.tar.gz
|
|
)
|
|
|
|
foreach(f IN LISTS possible_file_locations)
|
|
if(EXISTS ${f})
|
|
set(openfst_URL "${f}")
|
|
file(TO_CMAKE_PATH "${openfst_URL}" openfst_URL)
|
|
break()
|
|
endif()
|
|
endforeach()
|
|
|
|
set(HAVE_BIN OFF CACHE BOOL "" FORCE)
|
|
set(HAVE_SCRIPT OFF CACHE BOOL "" FORCE)
|
|
set(HAVE_COMPACT OFF CACHE BOOL "" FORCE)
|
|
set(HAVE_COMPRESS OFF CACHE BOOL "" FORCE)
|
|
set(HAVE_CONST OFF CACHE BOOL "" FORCE)
|
|
set(HAVE_FAR ON CACHE BOOL "" FORCE)
|
|
set(HAVE_GRM OFF CACHE BOOL "" FORCE)
|
|
set(HAVE_PDT OFF CACHE BOOL "" FORCE)
|
|
set(HAVE_MPDT OFF CACHE BOOL "" FORCE)
|
|
set(HAVE_LINEAR OFF CACHE BOOL "" FORCE)
|
|
set(HAVE_LOOKAHEAD OFF CACHE BOOL "" FORCE)
|
|
set(HAVE_NGRAM OFF CACHE BOOL "" FORCE)
|
|
set(HAVE_PYTHON OFF CACHE BOOL "" FORCE)
|
|
set(HAVE_SPECIAL OFF CACHE BOOL "" FORCE)
|
|
|
|
FetchContent_Declare(openfst
|
|
URL ${openfst_URL}
|
|
URL_HASH ${openfst_HASH}
|
|
)
|
|
|
|
FetchContent_GetProperties(openfst)
|
|
if(NOT openfst_POPULATED)
|
|
message(STATUS "Downloading openfst from ${openfst_URL}")
|
|
FetchContent_Populate(openfst)
|
|
endif()
|
|
message(STATUS "openfst is downloaded to ${openfst_SOURCE_DIR}")
|
|
|
|
set(_build_shared_libs_bak ${BUILD_SHARED_LIBS})
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
|
|
add_subdirectory(${openfst_SOURCE_DIR} ${openfst_BINARY_DIR} EXCLUDE_FROM_ALL)
|
|
|
|
if(_build_shared_libs_bak)
|
|
set_target_properties(fst fstfar
|
|
PROPERTIES
|
|
POSITION_INDEPENDENT_CODE ON
|
|
C_VISIBILITY_PRESET hidden
|
|
CXX_VISIBILITY_PRESET hidden
|
|
)
|
|
set(BUILD_SHARED_LIBS ON)
|
|
endif()
|
|
|
|
set(openfst_SOURCE_DIR ${openfst_SOURCE_DIR} PARENT_SCOPE)
|
|
|
|
set_target_properties(fst PROPERTIES OUTPUT_NAME "sherpa-onnx-fst")
|
|
set_target_properties(fstfar PROPERTIES OUTPUT_NAME "sherpa-onnx-fstfar")
|
|
endfunction()
|
|
|
|
download_openfst()
|