Skip to content

Commit

Permalink
[cmake] Fetch OpenFST at configure time. (#4558)
Browse files Browse the repository at this point in the history
  • Loading branch information
vzxxbacq committed Jun 11, 2021
1 parent ea2b433 commit ca6d133
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 25 deletions.
24 changes: 12 additions & 12 deletions CMakeLists.txt
Expand Up @@ -7,8 +7,11 @@ endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake;${CMAKE_MODULE_PATH}")
include(GNUInstallDirs)
include(Utils)

include(third_party/get_third_party)

include(cmake/third_party/openfst.cmake)

find_package(PythonInterp)
if(NOT PYTHON_EXECUTABLE)
message(FATAL_ERROR "Needs python to auto-generate most CMake files, but not found.")
Expand Down Expand Up @@ -172,18 +175,15 @@ endif()
# get_third_party(openfst)
# set(OPENFST_ROOT_DIR ${CMAKE_CURRENT_BINARY_DIR}/openfst)
# include(third_party/openfst_lib_target)
find_library(OpenFST_LIBRARY
NAMES fst
PATHS ${CMAKE_CURRENT_SOURCE_DIR}/tools/openfst/lib
REQUIRED)
find_path(OpenFST_INCLUDE_DIR
NAMES "fst/fst.h"
PATHS "${CMAKE_CURRENT_SOURCE_DIR}/tools/openfst/include"
REQUIRED)
get_filename_component(OpenFST_LIBRARY_DIR ${OpenFST_LIBRARY} DIRECTORY CACHE)
mark_as_advanced(FORCE OpenFST_INCLUDE_DIR OpenFST_LIBRARY OpenFST_LIBRARY_DIR)
include_directories(${OpenFST_INCLUDE_DIR})
link_directories(${OpenFST_LIBRARY_DIR})
#find_library(OpenFST_LIBRARY
# NAMES fst
# PATHS ${CMAKE_CURRENT_SOURCE_DIR}/tools/openfst/lib
# REQUIRED)
#find_path(OpenFST_INCLUDE_DIR
# NAMES "fst/fst.h"
# PATHS "${CMAKE_CURRENT_SOURCE_DIR}/tools/openfst/include"
# REQUIRED)

link_libraries(fst)

# add all native libraries
Expand Down
37 changes: 24 additions & 13 deletions cmake/third_party/openfst.cmake
@@ -1,14 +1,25 @@
cmake_minimum_required(VERSION 2.8.2)
project(openfst-download NONE)

include(ExternalProject)
ExternalProject_Add(openfst
GIT_REPOSITORY https://github.com/kkm000/openfst
GIT_TAG 0bca6e76d24647427356dc242b0adbf3b5f1a8d9 # tag win/1.7.2.1
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/openfst"
BINARY_DIR ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
cmake_minimum_required(VERSION 3.14)
include(FetchContent)

FetchContent_Declare(
openfst
GIT_REPOSITORY https://github.com/kkm000/openfst
GIT_TAG 338225416178ac36b8002d70387f5556e44c8d05 # tag win/1.7.2.1
)

FetchContent_GetProperties(openfst)
if(NOT openfst_POPULATED)
FetchContent_Populate(openfst)
include_directories(${openfst_SOURCE_DIR}/src/include)

add_subdirectory(${openfst_SOURCE_DIR} ${openfst_BINARY_DIR})

install(DIRECTORY ${openfst_SOURCE_DIR}/src/include/ DESTINATION include/
FILES_MATCHING PATTERN "*.h")

install(TARGETS fst
EXPORT kaldi-targets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()

0 comments on commit ca6d133

Please sign in to comment.