This repository has been archived on 2025-08-26. You can view files and clone it, but cannot push or open issues or pull requests.
Files
enginex_bi_series-sherpa-onnx/sherpa-onnx/csrc/CMakeLists.txt

287 lines
9.0 KiB
CMake
Raw Normal View History

2022-10-12 11:27:05 +08:00
include_directories(${CMAKE_SOURCE_DIR})
if(SHERPA_ONNX_ENABLE_PYTHON)
message(STATUS "PYTHON_EXECUTABLE: ${PYTHON_EXECUTABLE}")
execute_process(
COMMAND "${PYTHON_EXECUTABLE}" -c "import sys; print('.'.join(sys.version.split('.')[:2]))"
OUTPUT_STRIP_TRAILING_WHITESPACE
OUTPUT_VARIABLE PYTHON_VERSION
)
message(STATUS "PYTHON_VERSION: ${PYTHON_VERSION}")
endif()
2023-02-22 15:35:55 +08:00
set(sources
2023-02-21 20:00:03 +08:00
cat.cc
context-graph.cc
2023-02-22 15:35:55 +08:00
endpoint.cc
2023-02-18 21:35:15 +08:00
features.cc
file-utils.cc
2023-03-01 15:32:54 +08:00
hypothesis.cc
offline-ctc-greedy-search-decoder.cc
offline-ctc-model.cc
offline-lm-config.cc
offline-lm.cc
2023-03-28 17:59:54 +08:00
offline-model-config.cc
offline-nemo-enc-dec-ctc-model-config.cc
offline-nemo-enc-dec-ctc-model.cc
2023-03-28 17:59:54 +08:00
offline-paraformer-greedy-search-decoder.cc
offline-paraformer-model-config.cc
offline-paraformer-model.cc
offline-recognizer-impl.cc
offline-recognizer.cc
offline-rnn-lm.cc
2023-03-26 08:53:42 +08:00
offline-stream.cc
offline-transducer-greedy-search-decoder.cc
offline-transducer-model-config.cc
offline-transducer-model.cc
offline-transducer-modified-beam-search-decoder.cc
online-conformer-transducer-model.cc
online-lm-config.cc
2023-05-12 15:57:44 +08:00
online-lm.cc
2023-02-18 21:35:15 +08:00
online-lstm-transducer-model.cc
2023-02-19 12:45:38 +08:00
online-recognizer.cc
online-rnn-lm.cc
2023-02-19 11:42:15 +08:00
online-stream.cc
online-transducer-decoder.cc
2023-02-19 10:39:07 +08:00
online-transducer-greedy-search-decoder.cc
2023-02-18 21:35:15 +08:00
online-transducer-model-config.cc
online-transducer-model.cc
online-transducer-modified-beam-search-decoder.cc
2023-02-21 20:00:03 +08:00
online-zipformer-transducer-model.cc
online-zipformer2-transducer-model.cc
2023-02-18 21:35:15 +08:00
onnx-utils.cc
2023-05-12 15:57:44 +08:00
session.cc
2023-03-08 14:12:20 +08:00
packed-sequence.cc
2023-03-05 22:02:50 +08:00
pad-sequence.cc
2023-02-22 15:35:55 +08:00
parse-options.cc
2023-05-12 15:57:44 +08:00
provider.cc
resample.cc
slice.cc
stack.cc
symbol-table.cc
2023-02-21 20:00:03 +08:00
text-utils.cc
2023-03-05 11:27:17 +08:00
transpose.cc
2023-02-21 20:00:03 +08:00
unbind.cc
wave-reader.cc
)
2022-09-23 08:46:25 +03:00
2023-02-22 15:35:55 +08:00
if(SHERPA_ONNX_ENABLE_CHECK)
list(APPEND sources log.cc)
endif()
add_library(sherpa-onnx-core ${sources})
if(ANDROID_NDK)
target_link_libraries(sherpa-onnx-core android log)
endif()
target_link_libraries(sherpa-onnx-core kaldi-native-fbank-core)
if(BUILD_SHARED_LIBS OR NOT WIN32)
target_link_libraries(sherpa-onnx-core onnxruntime)
else()
target_link_libraries(sherpa-onnx-core ${onnxruntime_lib_files})
endif()
if(SHERPA_ONNX_ENABLE_GPU)
target_link_libraries(sherpa-onnx-core
onnxruntime_providers_cuda
)
endif()
2023-02-22 15:35:55 +08:00
if(SHERPA_ONNX_ENABLE_CHECK)
target_compile_definitions(sherpa-onnx-core PUBLIC SHERPA_ONNX_ENABLE_CHECK=1)
if(SHERPA_ONNX_HAVE_EXECINFO_H)
target_compile_definitions(sherpa-onnx-core PRIVATE SHERPA_ONNX_HAVE_EXECINFO_H=1)
endif()
if(SHERPA_ONNX_HAVE_CXXABI_H)
target_compile_definitions(sherpa-onnx-core PRIVATE SHERPA_ONNX_HAVE_CXXABI_H=1)
endif()
endif()
2023-02-19 19:36:03 +08:00
add_executable(sherpa-onnx sherpa-onnx.cc)
2023-03-26 08:53:42 +08:00
add_executable(sherpa-onnx-offline sherpa-onnx-offline.cc)
2023-02-19 19:36:03 +08:00
target_link_libraries(sherpa-onnx sherpa-onnx-core)
2023-03-26 08:53:42 +08:00
target_link_libraries(sherpa-onnx-offline sherpa-onnx-core)
2023-02-19 19:36:03 +08:00
if(NOT WIN32)
target_link_libraries(sherpa-onnx "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib")
target_link_libraries(sherpa-onnx "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../../../sherpa_onnx/lib")
2023-03-26 08:53:42 +08:00
target_link_libraries(sherpa-onnx-offline "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib")
target_link_libraries(sherpa-onnx-offline "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../../../sherpa_onnx/lib")
if(SHERPA_ONNX_ENABLE_PYTHON)
target_link_libraries(sherpa-onnx "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib/python${PYTHON_VERSION}/site-packages/sherpa_onnx/lib")
target_link_libraries(sherpa-onnx-offline "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib/python${PYTHON_VERSION}/site-packages/sherpa_onnx/lib")
endif()
2023-02-19 19:36:03 +08:00
endif()
if(SHERPA_ONNX_ENABLE_PYTHON AND WIN32)
install(TARGETS sherpa-onnx-core DESTINATION ..)
else()
install(TARGETS sherpa-onnx-core DESTINATION lib)
endif()
2023-03-26 08:53:42 +08:00
install(
TARGETS
sherpa-onnx
sherpa-onnx-offline
DESTINATION
bin
)
2023-02-21 20:00:03 +08:00
if(SHERPA_ONNX_HAS_ALSA)
add_executable(sherpa-onnx-alsa sherpa-onnx-alsa.cc alsa.cc)
target_link_libraries(sherpa-onnx-alsa sherpa-onnx-core)
if(DEFINED ENV{SHERPA_ONNX_ALSA_LIB_DIR})
target_link_libraries(sherpa-onnx-alsa -L$ENV{SHERPA_ONNX_ALSA_LIB_DIR} -lasound)
else()
target_link_libraries(sherpa-onnx-alsa asound)
endif()
install(TARGETS sherpa-onnx-alsa DESTINATION bin)
endif()
if(SHERPA_ONNX_ENABLE_PORTAUDIO)
add_executable(sherpa-onnx-microphone
sherpa-onnx-microphone.cc
microphone.cc
)
add_executable(sherpa-onnx-microphone-offline
sherpa-onnx-microphone-offline.cc
microphone.cc
)
if(BUILD_SHARED_LIBS)
set(PA_LIB portaudio)
else()
set(PA_LIB portaudio_static)
endif()
target_link_libraries(sherpa-onnx-microphone ${PA_LIB} sherpa-onnx-core)
target_link_libraries(sherpa-onnx-microphone-offline ${PA_LIB} sherpa-onnx-core)
if(NOT WIN32)
target_link_libraries(sherpa-onnx-microphone "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib")
target_link_libraries(sherpa-onnx-microphone "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../../../sherpa_onnx/lib")
target_link_libraries(sherpa-onnx-microphone-offline "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib")
target_link_libraries(sherpa-onnx-microphone-offline "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../../../sherpa_onnx/lib")
if(SHERPA_ONNX_ENABLE_PYTHON)
target_link_libraries(sherpa-onnx-microphone "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib/python${PYTHON_VERSION}/site-packages/sherpa_onnx/lib")
target_link_libraries(sherpa-onnx-microphone-offline "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib/python${PYTHON_VERSION}/site-packages/sherpa_onnx/lib")
endif()
endif()
install(
TARGETS
sherpa-onnx-microphone
sherpa-onnx-microphone-offline
DESTINATION
bin
)
endif()
if(SHERPA_ONNX_ENABLE_WEBSOCKET)
add_definitions(-DASIO_STANDALONE)
add_definitions(-D_WEBSOCKETPP_CPP11_STL_)
add_executable(sherpa-onnx-online-websocket-server
online-websocket-server-impl.cc
online-websocket-server.cc
)
target_link_libraries(sherpa-onnx-online-websocket-server sherpa-onnx-core)
add_executable(sherpa-onnx-online-websocket-client
online-websocket-client.cc
)
target_link_libraries(sherpa-onnx-online-websocket-client sherpa-onnx-core)
if(NOT WIN32)
target_link_libraries(sherpa-onnx-online-websocket-server -pthread)
target_compile_options(sherpa-onnx-online-websocket-server PRIVATE -Wno-deprecated-declarations)
target_link_libraries(sherpa-onnx-online-websocket-client -pthread)
target_compile_options(sherpa-onnx-online-websocket-client PRIVATE -Wno-deprecated-declarations)
endif()
# For offline websocket
add_executable(sherpa-onnx-offline-websocket-server
offline-websocket-server-impl.cc
offline-websocket-server.cc
)
target_link_libraries(sherpa-onnx-offline-websocket-server sherpa-onnx-core)
if(NOT WIN32)
target_link_libraries(sherpa-onnx-offline-websocket-server -pthread)
target_compile_options(sherpa-onnx-offline-websocket-server PRIVATE -Wno-deprecated-declarations)
endif()
if(NOT WIN32)
target_link_libraries(sherpa-onnx-online-websocket-server "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib")
target_link_libraries(sherpa-onnx-online-websocket-server "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../../../sherpa_onnx/lib")
target_link_libraries(sherpa-onnx-online-websocket-client "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib")
target_link_libraries(sherpa-onnx-online-websocket-client "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../../../sherpa_onnx/lib")
target_link_libraries(sherpa-onnx-offline-websocket-server "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib")
target_link_libraries(sherpa-onnx-offline-websocket-server "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../../../sherpa_onnx/lib")
if(SHERPA_ONNX_ENABLE_PYTHON)
target_link_libraries(sherpa-onnx-online-websocket-server "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib/python${PYTHON_VERSION}/site-packages/sherpa_onnx/lib")
target_link_libraries(sherpa-onnx-online-websocket-client "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib/python${PYTHON_VERSION}/site-packages/sherpa_onnx/lib")
target_link_libraries(sherpa-onnx-offline-websocket-server "-Wl,-rpath,${SHERPA_ONNX_RPATH_ORIGIN}/../lib/python${PYTHON_VERSION}/site-packages/sherpa_onnx/lib")
endif()
endif()
install(
TARGETS
sherpa-onnx-online-websocket-server
sherpa-onnx-online-websocket-client
sherpa-onnx-offline-websocket-server
DESTINATION
bin
)
endif()
2023-02-21 20:00:03 +08:00
if(SHERPA_ONNX_ENABLE_TESTS)
set(sherpa_onnx_test_srcs
cat-test.cc
context-graph-test.cc
2023-03-08 14:12:20 +08:00
packed-sequence-test.cc
2023-03-05 22:02:50 +08:00
pad-sequence-test.cc
slice-test.cc
stack-test.cc
2023-03-05 11:27:17 +08:00
transpose-test.cc
2023-02-21 20:00:03 +08:00
unbind-test.cc
)
function(sherpa_onnx_add_test source)
get_filename_component(name ${source} NAME_WE)
set(target_name ${name})
add_executable(${target_name} "${source}")
target_link_libraries(${target_name}
PRIVATE
gtest
gtest_main
sherpa-onnx-core
)
add_test(NAME "${target_name}"
COMMAND
$<TARGET_FILE:${target_name}>
)
endfunction()
foreach(source IN LISTS sherpa_onnx_test_srcs)
sherpa_onnx_add_test(${source})
endforeach()
endif()