From 87677927b3528f743eb5039bd2ff528030e2a810 Mon Sep 17 00:00:00 2001 From: Hui Zhang Date: Mon, 6 Mar 2023 05:19:21 +0000 Subject: [PATCH] fix asr compile bug --- runtime/CMakeLists.txt | 94 +++++++++++++++++-------------------- runtime/build.sh | 2 +- runtime/cmake/gtest.cmake | 2 +- runtime/cmake/openfst.cmake | 1 + 4 files changed, 46 insertions(+), 53 deletions(-) diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt index bdce2046e..af970526a 100644 --- a/runtime/CMakeLists.txt +++ b/runtime/CMakeLists.txt @@ -16,15 +16,8 @@ if(NOT CMAKE_BUILD_TYPE) FORCE) endif() - project(paddlespeech VERSION 0.1) -# if(ANDROID) -# # when cross compile with ndk under linux, -# # UNIX and ANROID are all True -# set(UNIX) -# endif() - include(FetchContent) include(ExternalProject) @@ -71,60 +64,60 @@ if(WITH_TESTING) endif() # fastdeploy -include(fastdeploy) +if(NOT WITH_ASR) + include(fastdeploy) +endif() if(WITH_ASR) # openfst include(openfst) - add_dependencies(openfst gflags glog) + add_dependencies(openfst gflags extern_glog) endif() ############################################################################### # Find Package ############################################################################### - -# python/pybind11/threads find_package(Threads REQUIRED) -# https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3 -find_package(Python3 COMPONENTS Interpreter Development) -find_package(pybind11 CONFIG) - if(WITH_ASR) + # https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3 + find_package(Python3 COMPONENTS Interpreter Development) + find_package(pybind11 CONFIG) + if(Python3_FOUND) - message(STATUS "Python3_FOUND = ${Python3_FOUND}") - message(STATUS "Python3_EXECUTABLE = ${Python3_EXECUTABLE}") - message(STATUS "Python3_LIBRARIES = ${Python3_LIBRARIES}") - message(STATUS "Python3_INCLUDE_DIRS = ${Python3_INCLUDE_DIRS}") - message(STATUS "Python3_LINK_OPTIONS = ${Python3_LINK_OPTIONS}") - set(PYTHON_LIBRARIES ${Python3_LIBRARIES} CACHE STRING "python lib" FORCE) - set(PYTHON_INCLUDE_DIR ${Python3_INCLUDE_DIRS} CACHE STRING "python inc" FORCE) + message(STATUS "Python3_FOUND = ${Python3_FOUND}") + message(STATUS "Python3_EXECUTABLE = ${Python3_EXECUTABLE}") + message(STATUS "Python3_LIBRARIES = ${Python3_LIBRARIES}") + message(STATUS "Python3_INCLUDE_DIRS = ${Python3_INCLUDE_DIRS}") + message(STATUS "Python3_LINK_OPTIONS = ${Python3_LINK_OPTIONS}") + set(PYTHON_LIBRARIES ${Python3_LIBRARIES} CACHE STRING "python lib" FORCE) + set(PYTHON_INCLUDE_DIR ${Python3_INCLUDE_DIRS} CACHE STRING "python inc" FORCE) endif() message(STATUS "PYTHON_LIBRARIES = ${PYTHON_LIBRARIES}") message(STATUS "PYTHON_INCLUDE_DIR = ${PYTHON_INCLUDE_DIR}") if(pybind11_FOUND) - message(STATUS "pybind11_INCLUDES = ${pybind11_INCLUDE_DIRS}") - message(STATUS "pybind11_LIBRARIES=${pybind11_LIBRARIES}") - message(STATUS "pybind11_DEFINITIONS=${pybind11_DEFINITIONS}") + message(STATUS "pybind11_INCLUDES = ${pybind11_INCLUDE_DIRS}") + message(STATUS "pybind11_LIBRARIES=${pybind11_LIBRARIES}") + message(STATUS "pybind11_DEFINITIONS=${pybind11_DEFINITIONS}") endif() # paddle libpaddle.so # paddle include and link option # -L/workspace/DeepSpeech-2.x/engine/venv/lib/python3.7/site-packages/paddle/libs -L/workspace/DeepSpeech-2.x/speechx/venv/lib/python3.7/site-packages/paddle/fluid -l:libpaddle.so -l:libdnnl.so.2 -l:libiomp5.so + set(EXECUTE_COMMAND "import os" + "import paddle" + "include_dir = paddle.sysconfig.get_include()" + "paddle_dir=os.path.split(include_dir)[0]" + "libs_dir=os.path.join(paddle_dir, 'libs')" + "fluid_dir=os.path.join(paddle_dir, 'fluid')" + "out=' '.join([\"-L\" + libs_dir, \"-L\" + fluid_dir])" + "out += \" -l:libpaddle.so -l:libdnnl.so.2 -l:libiomp5.so\"; print(out)" + ) execute_process( - COMMAND python -c "\ - import os;\ - import paddle;\ - include_dir=paddle.sysconfig.get_include();\ - paddle_dir=os.path.split(include_dir)[0];\ - libs_dir=os.path.join(paddle_dir, 'libs');\ - fluid_dir=os.path.join(paddle_dir, 'fluid');\ - out=' '.join([\"-L\" + libs_dir, \"-L\" + fluid_dir]);\ - out += \" -l:libpaddle.so -l:libdnnl.so.2 -l:libiomp5.so\"; print(out);\ - " + COMMAND python -c "${EXECUTE_COMMAND}" OUTPUT_VARIABLE PADDLE_LINK_FLAGS RESULT_VARIABLE SUCESS) @@ -133,29 +126,28 @@ if(WITH_ASR) # paddle compile option # -I/workspace/DeepSpeech-2.x/engine/venv/lib/python3.7/site-packages/paddle/include + set(EXECUTE_COMMAND "import paddle" + "include_dir = paddle.sysconfig.get_include()" + "print(f\"-I{include_dir}\")" + ) execute_process( - COMMAND python -c "\ - import paddle; \ - include_dir = paddle.sysconfig.get_include(); \ - print(f\"-I{include_dir}\"); \ - " + COMMAND python -c "${EXECUTE_COMMAND}" OUTPUT_VARIABLE PADDLE_COMPILE_FLAGS) message(STATUS PADDLE_COMPILE_FLAGS= ${PADDLE_COMPILE_FLAGS}) string(STRIP ${PADDLE_COMPILE_FLAGS} PADDLE_COMPILE_FLAGS) - # for LD_LIBRARY_PATH # set(PADDLE_LIB_DIRS /workspace/DeepSpeech-2.x/tools/venv/lib/python3.7/site-packages/paddle/fluid:/workspace/DeepSpeech-2.x/tools/venv/lib/python3.7/site-packages/paddle/libs/) + set(EXECUTE_COMMAND "import os" + "import paddle" + "include_dir=paddle.sysconfig.get_include()" + "paddle_dir=os.path.split(include_dir)[0]" + "libs_dir=os.path.join(paddle_dir, 'libs')" + "fluid_dir=os.path.join(paddle_dir, 'fluid')" + "out=':'.join([libs_dir, fluid_dir]); print(out)" + ) execute_process( - COMMAND python -c "\ - import os; \ - import paddle; \ - include_dir=paddle.sysconfig.get_include(); \ - paddle_dir=os.path.split(include_dir)[0]; \ - libs_dir=os.path.join(paddle_dir, 'libs'); \ - fluid_dir=os.path.join(paddle_dir, 'fluid'); \ - out=':'.join([libs_dir, fluid_dir]); print(out); \ - " + COMMAND python -c "${EXECUTE_COMMAND}" OUTPUT_VARIABLE PADDLE_LIB_DIRS) message(STATUS PADDLE_LIB_DIRS= ${PADDLE_LIB_DIRS}) endif() @@ -167,4 +159,4 @@ include(summary) ############################################################################### set(ENGINE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/engine) -add_subdirectory(engine) +add_subdirectory(engine) \ No newline at end of file diff --git a/runtime/build.sh b/runtime/build.sh index 131fb7f1a..f7d0a2b25 100755 --- a/runtime/build.sh +++ b/runtime/build.sh @@ -4,5 +4,5 @@ set -xe # the build script had verified in the paddlepaddle docker image. # please follow the instruction below to install PaddlePaddle image. # https://www.paddlepaddle.org.cn/documentation/docs/zh/install/docker/linux-docker.html -cmake -B build -DWITH_ASR=OFF -DWITH_CLS=OFF +cmake -B build -DWITH_ASR=ON -DWITH_CLS=OFF -DWITH_VAD=OFF cmake --build build -j diff --git a/runtime/cmake/gtest.cmake b/runtime/cmake/gtest.cmake index 6b1eda409..a311721f0 100644 --- a/runtime/cmake/gtest.cmake +++ b/runtime/cmake/gtest.cmake @@ -18,7 +18,7 @@ endif() if(ANDROID) add_library(extern_gtest INTERFACE) else() # UNIX - add_dependencies(gtest gflags gflog) + add_dependencies(gtest gflags extern_glog) add_library(extern_gtest ALIAS gtest) endif() diff --git a/runtime/cmake/openfst.cmake b/runtime/cmake/openfst.cmake index 2e2f82f24..066971563 100644 --- a/runtime/cmake/openfst.cmake +++ b/runtime/cmake/openfst.cmake @@ -16,6 +16,7 @@ ExternalProject_Add(openfst PREFIX ${openfst_PREFIX_DIR} SOURCE_DIR ${openfst_SOURCE_DIR} BINARY_DIR ${openfst_BINARY_DIR} + BUILD_ALWAYS 0 CONFIGURE_COMMAND ${openfst_SOURCE_DIR}/configure --prefix=${openfst_PREFIX_DIR} "CPPFLAGS=-I${gflags_BINARY_DIR}/include -I${glog_SOURCE_DIR}/src -I${glog_BINARY_DIR}" "LDFLAGS=-L${gflags_BINARY_DIR} -L${glog_BINARY_DIR}"