You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

60 lines
2.7 KiB

# We can't build glog with gflags, unless gflags is pre-installed.
# If build glog with pre-installed gflags, there will be conflict.
message(STATUS "${BoldGreen}CMAKE_CURRENT_SOURCE_DIR: ${CMAKE_CURRENT_SOURCE_DIR}${ColourReset}")
set(openfst_BUILD "${LIB_BASE_DIR}/openfst-build")
if(NOT EXISTS ${openfst_BUILD})
# install openfst
#./configure --prefix=${openfst_SOURCE_DIR}/build --enable-static --disable-shared --with-pic
# patch补丁必须打,不然会报glog无法动态识别这个库的方法,导致链接不成功。
execute_process(
COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/patch/openfst ${LIB_BASE_DIR}/openfst-src
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
execute_process(
COMMAND ./configure --prefix=${openfst_BUILD}
WORKING_DIRECTORY ${LIB_BASE_DIR}/openfst-src)
execute_process(
COMMAND cmake --build . --target install
WORKING_DIRECTORY ${openfst_BUILD})
execute_process(
COMMAND cmake --install .
WORKING_DIRECTORY ${openfst_BUILD})
endif()
# We can't build glog with gflags, unless gflags is pre-installed.
# If build glog with pre-installed gflags, there will be conflict.
# gflags和glog现在被我安装到了系统盘下/usr/lib/x86_64-linux-gnu
find_package(gflags)
if(TARGET gflags)
message(STATUS "${BoldGreen}TARGET: ${gflags_FOUND}${ColourReset}")
set_target_properties(gflags PROPERTIES INTERFACE_COMPILE_OPTIONS "-fPIC")
endif()
set(WITH_GFLAGS OFF CACHE BOOL "whether build glog with gflags" FORCE)
include(cmake-local/glog.cmake)
# 下面这堆关键字是防止cmake出一堆无关的提示
if(NOT GRAPH_TOOLS)
set(HAVE_BIN OFF CACHE BOOL "Build the fst binaries" FORCE)
set(HAVE_SCRIPT OFF CACHE BOOL "Build the fstscript" FORCE)
endif()
set(HAVE_COMPACT OFF CACHE BOOL "Build compact" FORCE)
set(HAVE_CONST OFF CACHE BOOL "Build const" FORCE)
set(HAVE_GRM OFF CACHE BOOL "Build grm" FORCE)
set(HAVE_FAR OFF CACHE BOOL "Build far" FORCE)
set(HAVE_PDT OFF CACHE BOOL "Build pdt" FORCE)
set(HAVE_MPDT OFF CACHE BOOL "Build mpdt" FORCE)
set(HAVE_LINEAR OFF CACHE BOOL "Build linear" FORCE)
set(HAVE_LOOKAHEAD OFF CACHE BOOL "Build lookahead" FORCE)
set(HAVE_NGRAM OFF CACHE BOOL "Build ngram" FORCE)
set(HAVE_SPECIAL OFF CACHE BOOL "Build special" FORCE)
FetchContent_Declare(openfst
SOURCE_DIR ${LIB_BASE_DIR}/openfst-src)
FetchContent_MakeAvailable(openfst)
include_directories(${LIB_BASE_DIR}/openfst-src/src/include)
message(STATUS "${BoldGreen}openfst_BINARY_DIR: ${openfst_BINARY_DIR}${ColourReset}")
add_dependencies(fst gflags glog)
target_link_libraries(fst PUBLIC gflags_nothreads_static glog)
list(APPEND third_party_libraries fst)