diff --git a/CMakeLists.txt b/CMakeLists.txt index 308996e..c13f732 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.14 FATAL_ERROR) project(wenet VERSION 0.1) # set color +option(ONNX "whether to build with ONNX" ON) string(ASCII 27 Esc) set(ColourReset "${Esc}[m") set(BoldGreen "${Esc}[1;32m") @@ -9,6 +10,7 @@ set(BoldRed "${Esc}[31m") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -pthread -fPIC -w") set(LIB_BASE_DIR /root/CXX_ENVS/wenet_runtime) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake-linux) +set(third_party_libraries) include(onnx) include(openfst) diff --git a/cmake-linux/gflags.cmake b/cmake-linux/gflags.cmake index 69082aa..ff5e00a 100644 --- a/cmake-linux/gflags.cmake +++ b/cmake-linux/gflags.cmake @@ -16,8 +16,9 @@ find_package(gflags CONFIG REQUIRED HINTS ${GFLAGS_BUILD_DIR}) find_library(GFLAGS_LIBRARY NAMES gflags PATHS ${GFLAGS_BUILD_DIR}/lib) find_library(GFLAGS_LIBRARY_NOTHREADS NAMES gflags_nothreads PATHS ${GFLAGS_BUILD_DIR}/lib) include_directories(${GFLAGS_BUILD_DIR}/include) - - +if(third_party_libraries) + list(APPEND third_party_libraries ${GFLAGS_LIBRARY} ${GFLAGS_LIBRARY_NOTHREADS} ) +endif () include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) FIND_PACKAGE_HANDLE_STANDARD_ARGS(gflags DEFAULT_MSG GFLAGS_LIBRARY GFLAGS_LIBRARY_NOTHREADS) \ No newline at end of file diff --git a/cmake-linux/glog.cmake b/cmake-linux/glog.cmake index c5c540d..8754eda 100644 --- a/cmake-linux/glog.cmake +++ b/cmake-linux/glog.cmake @@ -17,8 +17,10 @@ function(GLOG_INSTALL DEST) endfunction() find_package(glog REQUIRED CONFIG HINTS ${GLOG_ROOT_DIR}) message(STATUS "${BoldGreen}Find Package glog: ${glog_FOUND}${ColourReset}") -include_directories(${GLOG_BUILD_DIR}) include_directories(${GLOG_ROOT_DIR}/src) link_directories(${GLOG_BUILD_DIR}) # glog::glog is imported target -find_library(GLOG_LIBRARY NAMES glog PATHS ${GLOG_BUILD_DIR}) \ No newline at end of file +find_library(GLOG_LIBRARY NAMES glog PATHS ${GLOG_BUILD_DIR}) +if(third_party_libraries) + list(APPEND third_party_libraries ${GLOG_LIBRARY} ) +endif () \ No newline at end of file diff --git a/cmake-linux/grpc.cmake b/cmake-linux/grpc.cmake index ec4f595..b83b899 100644 --- a/cmake-linux/grpc.cmake +++ b/cmake-linux/grpc.cmake @@ -56,3 +56,7 @@ include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) FIND_PACKAGE_HANDLE_STANDARD_ARGS(gRPC DEFAULT_MSG PROTOBUF_PROTOC REFLECTION GRPC_GRPCPP GRPC_CPP_PLUGIN_EXECUTABLE) +if(third_party_libraries) + list(APPEND third_party_libraries gRPC protobuf) +endif () + diff --git a/cmake-linux/onnx.cmake b/cmake-linux/onnx.cmake index c55525d..0830447 100644 --- a/cmake-linux/onnx.cmake +++ b/cmake-linux/onnx.cmake @@ -3,4 +3,8 @@ set(onnxruntime_SOURCE_DIR ${LIB_BASE_DIR}/onnxruntime-src) include_directories(${onnxruntime_SOURCE_DIR}/include) -find_library(ONNX_LIBRARY NAMES onnxruntime PATHS ${onnxruntime_SOURCE_DIR}/lib NO_DEFAULT_PATH) \ No newline at end of file +find_library(ONNX_LIBRARY NAMES onnxruntime PATHS ${onnxruntime_SOURCE_DIR}/lib NO_DEFAULT_PATH) + +if(third_party_libraries) + list(APPEND third_party_libraries ONNX_LIBRARY ) +endif () \ No newline at end of file diff --git a/cmake-linux/openfst.cmake b/cmake-linux/openfst.cmake index 0a4ae33..7206588 100644 --- a/cmake-linux/openfst.cmake +++ b/cmake-linux/openfst.cmake @@ -78,4 +78,8 @@ message("${BoldGreen} OPENFST_INCLUDE_DIR: ${OPENFST_INCLUDE_DIR} OPENFST_BINARY_DIR: ${OPENFST_BINARY_DIR} OPENFST_LIBRARY_DIR: ${OPENFST_LIBRARY_DIR} - IMPORTED OPENFST_LIBRARYS: ${OPENFST_LIBRARYS}${ColourReset}") \ No newline at end of file + IMPORTED OPENFST_LIBRARYS: ${OPENFST_LIBRARYS}${ColourReset}") + +if(third_party_libraries) + list(APPEND third_party_libraries $(OPENFST_LIBRARYS) ) +endif () \ No newline at end of file diff --git a/grpc/CMakeLists.txt b/grpc/CMakeLists.txt index 0e0ece2..3d1ef8a 100644 --- a/grpc/CMakeLists.txt +++ b/grpc/CMakeLists.txt @@ -15,7 +15,7 @@ add_custom_command( --plugin=protoc-gen-grpc=${GRPC_BINARY_DIR}/grpc_cpp_plugin ${PROTO_DIR}/wenet.proto) -add_library(wenet_grpc SHARED +add_library(wenet_grpc STATIC grpc_client.cc grpc_server.cc wenet.pb.cc @@ -25,10 +25,10 @@ target_link_libraries(wenet_grpc PUBLIC ${REFLECTION} ${PROTOBUF_LIBPROTOBUF} decoder) add_executable(grpc_server_main grpc_server_main.cc) -target_link_libraries(grpc_server_main wenet_grpc ${GFLAGS_LIBRARY} ${REFLECTION} +target_link_libraries(grpc_server_main wenet_grpc ${third_party_libraries} ${REFLECTION} ${GRPC_GRPCPP} ${PROTOBUF_LIBPROTOBUF} ) add_executable(grpc_client_main grpc_client_main.cc) -target_link_libraries(grpc_client_main wenet_grpc ${GFLAGS_LIBRARY} ${REFLECTION} +target_link_libraries(grpc_client_main wenet_grpc ${third_party_libraries} ${REFLECTION} ${GRPC_GRPCPP} ${PROTOBUF_LIBPROTOBUF} ) \ No newline at end of file