CMakeLists.txt 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. include_directories(${PROJECT_SOURCE_DIR})
  2. set(sources
  3. feature-fbank.cc
  4. feature-functions.cc
  5. feature-window.cc
  6. fftsg.c
  7. mel-computations.cc
  8. online-feature.cc
  9. rfft.cc
  10. )
  11. if(KALDI_NATIVE_FBANK_ENABLE_CHECK)
  12. list(APPEND sources log.cc)
  13. endif()
  14. add_library(kaldi-native-fbank-core ${sources})
  15. if(KALDI_NATIVE_FBANK_ENABLE_CHECK)
  16. target_compile_definitions(kaldi-native-fbank-core PUBLIC KNF_ENABLE_CHECK=1)
  17. if(KNF_HAVE_EXECINFO_H)
  18. target_compile_definitions(kaldi-native-fbank-core PRIVATE KNF_HAVE_EXECINFO_H=1)
  19. endif()
  20. if(KNF_HAVE_CXXABI_H)
  21. target_compile_definitions(kaldi-native-fbank-core PRIVATE KNF_HAVE_CXXABI_H=1)
  22. endif()
  23. endif()
  24. # We are using std::call_once() in log.h,which requires us to link with -pthread
  25. if(NOT WIN32 AND KALDI_NATIVE_FBANK_ENABLE_CHECK)
  26. target_link_libraries(kaldi-native-fbank-core -pthread)
  27. endif()
  28. if(KALDI_NATIVE_FBANK_BUILD_TESTS)
  29. add_executable(test-online-fbank test-online-fbank.cc)
  30. target_link_libraries(test-online-fbank kaldi-native-fbank-core)
  31. endif()
  32. function(kaldi_native_fbank_add_test source)
  33. get_filename_component(name ${source} NAME_WE)
  34. add_executable(${name} "${source}")
  35. target_link_libraries(${name}
  36. PRIVATE
  37. kaldi-native-fbank-core
  38. gtest
  39. gtest_main
  40. )
  41. add_test(NAME "Test.${name}"
  42. COMMAND
  43. $<TARGET_FILE:${name}>
  44. )
  45. endfunction()
  46. # please sort the source files alphabetically
  47. set(test_srcs
  48. # test-online-feature.cc
  49. test-log.cc
  50. test-rfft.cc
  51. )
  52. if(KALDI_NATIVE_FBANK_BUILD_TESTS)
  53. foreach(source IN LISTS test_srcs)
  54. kaldi_native_fbank_add_test(${source})
  55. endforeach()
  56. endif()
  57. install(TARGETS kaldi-native-fbank-core
  58. DESTINATION lib
  59. )
  60. if(KALDI_NATIVE_FBANK_BUILD_TESTS)
  61. install(TARGETS test-online-fbank
  62. DESTINATION bin
  63. )
  64. endif()
  65. file(MAKE_DIRECTORY
  66. DESTINATION
  67. ${PROJECT_BINARY_DIR}/include/kaldi-native-fbank/csrc
  68. )
  69. file(GLOB_RECURSE all_headers *.h)
  70. file(COPY
  71. ${all_headers}
  72. DESTINATION
  73. ${PROJECT_BINARY_DIR}/include/kaldi-native-fbank/csrc
  74. )
  75. install(FILES ${all_headers}
  76. DESTINATION include/kaldi-native-fbank/csrc
  77. )