CMakeLists.txt 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
  2. project(sherpa-ncnn)
  3. set(SHERPA_NCNN_VERSION "1.3")
  4. set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
  5. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
  6. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
  7. set(CMAKE_SKIP_BUILD_RPATH FALSE)
  8. set(BUILD_RPATH_USE_ORIGIN TRUE)
  9. set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
  10. if(NOT APPLE)
  11. set(SHERPA_NCNN_RPATH_ORIGIN "$ORIGIN")
  12. else()
  13. set(CMAKE_MACOSX_RPATH ON)
  14. set(SHERPA_NCNN_RPATH_ORIGIN "@loader_path")
  15. endif()
  16. set(CMAKE_INSTALL_RPATH ${SHERPA_NCNN_RPATH_ORIGIN})
  17. set(CMAKE_BUILD_RPATH ${SHERPA_NCNN_RPATH_ORIGIN})
  18. option(BUILD_SHARED_LIBS "Whether to build shared libraries" OFF)
  19. option(SHERPA_NCNN_ENABLE_PYTHON "Whether to build Python" OFF)
  20. option(SHERPA_NCNN_ENABLE_PORTAUDIO "Whether to build with portaudio" ON)
  21. option(SHERPA_NCNN_ENABLE_JNI "Whether to build JNI internface" OFF)
  22. if(DEFINED ANDROID_ABI)
  23. message(STATUS "Set SHERPA_NCNN_ENABLE_JNI to ON for Android")
  24. set(SHERPA_NCNN_ENABLE_JNI ON CACHE BOOL "" FORCE)
  25. endif()
  26. message(STATUS "BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}")
  27. message(STATUS "SHERPA_NCNN_ENABLE_PYTHON ${SHERPA_NCNN_ENABLE_PYTHON}")
  28. message(STATUS "SHERPA_NCNN_ENABLE_JNI ${SHERPA_NCNN_ENABLE_JNI}")
  29. if(NOT CMAKE_BUILD_TYPE)
  30. message(STATUS "No CMAKE_BUILD_TYPE given, default to Release")
  31. set(CMAKE_BUILD_TYPE Release)
  32. endif()
  33. message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
  34. set(CMAKE_CXX_STANDARD 14 CACHE STRING "The C++ version to be used.")
  35. set(CMAKE_CXX_EXTENSIONS OFF)
  36. list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
  37. include(kaldi-native-fbank)
  38. include(ncnn)
  39. if(SHERPA_NCNN_ENABLE_PORTAUDIO)
  40. include(portaudio)
  41. endif()
  42. if(SHERPA_NCNN_ENABLE_PYTHON)
  43. include(pybind11)
  44. endif()
  45. add_subdirectory(sherpa-ncnn)