-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathCMakeLists.txt
113 lines (92 loc) · 3.79 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
cmake_minimum_required (VERSION 2.8)
if (DEFINED ENV{KaldiMixup_INCLUDED})
return()
endif()
set (ENV{KaldiMixup_INCLUDED} 1)
project (KaldiMixup)
#####################
### Find packages ###
#####################
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake;${CMAKE_MODULE_PATH}")
#
# Find Boost
#
if("${BOOST_ROOT}" STREQUAL "" AND NOT "$ENV{BOOST_ROOT}" STREQUAL "")
set(BOOST_ROOT $ENV{BOOST_ROOT})
endif()
find_package(Boost 1.57 REQUIRED COMPONENTS system filesystem thread date_time regex unit_test_framework chrono program_options)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
message("-- Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}")
message("-- Boost_LIBRARIES: ${Boost_LIBRARIES}")
endif()
add_definitions(-DBOOST_ALL_NO_LIB)
add_definitions(-DBOOST_FILESYSTEM_VERSION=3)
#
# Find Atlas
#
find_package(Atlas REQUIRED)
if(Atlas_FOUND)
include_directories(${ATLAS_INCLUDE_DIR})
message("-- ATLAS_INCLUDE_DIR: ${ATLAS_INCLUDE_DIR}")
message("-- ATLAS_LIBRARIES: ${ATLAS_LIBRARIES}")
endif()
add_definitions(-DHAVE_ATLAS)
#
# Find CUDA
#
find_package(CUDA REQUIRED)
if(CUDA_FOUND)
message("-- CUDA_VERSION: ${CUDA_VERSION}")
message("-- CUDA_INCLUDE_DIRS: ${CUDA_INCLUDE_DIRS}")
message("-- CUDA_CUDA_LIBRARY: ${CUDA_CUDA_LIBRARY}")
message("-- CUDA_CUDART_LIBRARY: ${CUDA_CUDART_LIBRARY}")
message("-- CUDA_cublas_LIBRARY: ${CUDA_cublas_LIBRARY}")
message("-- CUDA_cusparse_LIBRARY: ${CUDA_cusparse_LIBRARY}")
message("-- CUDA_curand_LIBRARY: ${CUDA_curand_LIBRARY}")
set(CUDA_LIBRARIES ${CUDA_CUDA_LIBRARY} ${CUDA_CUDART_LIBRARY} ${CUDA_cublas_LIBRARY} ${CUDA_cusparse_LIBRARY} ${CUDA_curand_LIBRARY})
include_directories("${CUDA_INCLUDE_DIRS}")
add_definitions(-DHAVE_CUDA=1)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread")
endif()
add_definitions(-DKALDI_DOUBLEPRECISION=0)
add_definitions(-DHAVE_POSIX_MEMALIGN)
add_definitions(-DHAVE_EXECINFO_H=1)
add_definitions(-DHAVE_CXXABI_H)
#####################
### Add externals ###
#####################
include_directories(${CMAKE_SOURCE_DIR}/kaldi/tools/openfst/include)
set(FST_LIBRARIES ${CMAKE_SOURCE_DIR}/kaldi/tools/openfst/lib/libfst.so)
include_directories(${CMAKE_SOURCE_DIR}/kaldi/src)
link_directories(${CMAKE_SOURCE_DIR}/kaldi/src/lib)
set(Kaldi_LIBRARIES "kaldi-nnet3;kaldi-chain;kaldi-cudamatrix;kaldi-decoder;kaldi-lat")
set(Kaldi_LIBRARIES "${Kaldi_LIBRARIES};kaldi-fstext;kaldi-hmm;kaldi-transform;kaldi-gmm")
set(Kaldi_LIBRARIES "${Kaldi_LIBRARIES};kaldi-tree;kaldi-util;kaldi-matrix;kaldi-base")
set(CMAKE_INSTALL_RPATH "${CMAKE_SOURCE_DIR}/kaldi/tools/openfst/lib:${CMAKE_SOURCE_DIR}/kaldi/src/lib")
###################
### Compilation ###
###################
#
# Project nnet3-mixup-egs
#
add_executable(nnet3-mixup-egs src/nnet3bin/nnet3-mixup-egs.cc)
target_link_libraries(nnet3-mixup-egs ${Kaldi_LIBRARIES})
target_link_libraries(nnet3-mixup-egs rt dl)
target_link_libraries(nnet3-mixup-egs ${Boost_LIBRARIES} ${CUDA_LIBRARIES} ${FST_LIBRARIES} ${ATLAS_LIBRARIES})
set_property(TARGET nnet3-mixup-egs PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE)
#
# Project nnet3-chain-mixup-egs
#
add_executable(nnet3-chain-mixup-egs src/chainbin/nnet3-chain-mixup-egs.cc)
target_link_libraries(nnet3-chain-mixup-egs ${Kaldi_LIBRARIES})
target_link_libraries(nnet3-chain-mixup-egs rt dl)
target_link_libraries(nnet3-chain-mixup-egs ${Boost_LIBRARIES} ${CUDA_LIBRARIES} ${FST_LIBRARIES} ${ATLAS_LIBRARIES})
set_property(TARGET nnet3-chain-mixup-egs PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE)
####################
### Installation ###
####################
install(TARGETS nnet3-mixup-egs RUNTIME DESTINATION ${CMAKE_SOURCE_DIR}/kaldi/src/nnet3bin)
install(TARGETS nnet3-chain-mixup-egs RUNTIME DESTINATION ${CMAKE_SOURCE_DIR}/kaldi/src/chainbin)