STT/native_client/kenlm/lm/interpolate/CMakeLists.txt
2017-09-13 11:41:15 -03:00

71 lines
2.5 KiB
CMake

find_package(Eigen3)
if(EIGEN3_FOUND)
if (3.1.0 VERSION_LESS ${EIGEN3_VERSION})
include_directories(${EIGEN3_INCLUDE_DIR})
set(KENLM_INTERPOLATE_SOURCE
backoff_reunification.cc
bounded_sequence_encoding.cc
merge_probabilities.cc
merge_vocab.cc
normalize.cc
pipeline.cc
split_worker.cc
tune_derivatives.cc
tune_instances.cc
tune_weights.cc
universal_vocab.cc)
find_package(OpenMP)
if (OPENMP_FOUND)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
else()
message(STATUS "OpenMP support would be nice for parallelizing matrix operations.")
endif()
add_library(kenlm_interpolate ${KENLM_INTERPOLATE_SOURCE})
set(KENLM_INTERPOLATE_EXES
interpolate
streaming_example)
if (NOT MSVC)
set(THREADS pthread)
endif()
set(KENLM_INTERPOLATE_LIBS
kenlm_interpolate kenlm kenlm_util ${Boost_LIBRARIES} ${THREADS})
AddExes(EXES ${KENLM_INTERPOLATE_EXES}
LIBRARIES ${KENLM_INTERPOLATE_LIBS})
if(BUILD_TESTING)
AddTests(TESTS backoff_reunification_test bounded_sequence_encoding_test normalize_test tune_derivatives_test
LIBRARIES ${KENLM_INTERPOLATE_LIBS} pthread)
# tune_instances_test needs an extra command line parameter
KenLMAddTest(TEST tune_instances_test
LIBRARIES ${KENLM_INTERPOLATE_LIBS}
TEST_ARGS -- ${CMAKE_CURRENT_SOURCE_DIR}/../common/test_data/toy0.1)
foreach(test_file test1 test2 test3 test_bad_order test_no_unk)
set(KENLM_MERGE_TESTS_PATH ${KENLM_MERGE_TESTS_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/merge_test/${test_file})
endforeach(test_file)
KenLMAddTest(TEST merge_vocab_test
LIBRARIES ${KENLM_INTERPOLATE_LIBS}
TEST_ARGS ${KENLM_MERGE_TESTS_PATH})
endif()
else()
message(WARNING "Not building interpolation. You have an old version of Eigen3, ${EIGEN3_VERSION}, which has a race condition: http://eigen.tuxfamily.org/bz/show_bug.cgi?id=466. Please install Eigen 3.1.0 or above.")
endif()
else()
message(WARNING "Not building interpolation. Eigen3 was not found.")
message(STATUS "To install Eigen3 in your home directory, copy paste this:\n"
"export EIGEN3_ROOT=$HOME/eigen-eigen-07105f7124f9\n"
"(cd $HOME; wget -O - https://bitbucket.org/eigen/eigen/get/3.2.8.tar.bz2 |tar xj)\n"
"rm CMakeCache.txt\n")
endif()