# We can't build glog with gflags, unless gflags is pre-installed. # If build glog with pre-installed gflags, there will be conflict. set(openfst_ROOT ${LIB_BASE_DIR}/openfst-src) 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 include(gflags) if(TARGET gflags) message(STATUS "${BoldGreen}Find Package gflags: ${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(glog) message(STATUS "${BoldGreen}Find Package glog: ${glog_FOUND}${ColourReset}") # 下面这堆关键字是防止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) find_package(openfst REQUIRED CONFIG HINTS ${openfst_ROOT}) message(STATUS "${BoldGreen}Find Package openfst: ${openfst_FOUND}${ColourReset}") include_directories(${openfst_ROOT}/src/include) message(STATUS "${BoldGreen}openfst_BINARY_DIR: ${openfst_BINARY_DIR}${ColourReset}") add_dependencies(fst ${third_party_libraries}) target_link_libraries(fst PUBLIC gflags_nothreads_static glog dl) list(APPEND third_party_libraries fst)