Bladeren bron

Support pkg-config (#243)

Fangjun Kuang 2 jaren geleden
bovenliggende
commit
4a0d1d88ee
6 gewijzigde bestanden met toevoegingen van 38 en 16 verwijderingen
  1. 23 1
      CMakeLists.txt
  2. 1 1
      cmake/kaldi-native-fbank.cmake
  3. 1 1
      cmake/ncnn.cmake
  4. 12 0
      cmake/sherpa-ncnn.pc.in
  5. 1 1
      sherpa-ncnn/c-api/c-api.h
  6. 0 12
      sherpa-ncnn/csrc/CMakeLists.txt

+ 23 - 1
CMakeLists.txt

@@ -83,7 +83,7 @@ include(CheckIncludeFileCXX)
 check_include_file_cxx(alsa/asoundlib.h SHERPA_NCNN_HAS_ALSA)
 if(SHERPA_NCNN_HAS_ALSA)
   add_definitions(-DSHERPA_NCNN_ENABLE_ALSA=1)
-else()
+elseif(UNIX AND NOT APPLE)
   message(WARNING "\
 Could not find alsa/asoundlib.h !
 We won't build sherpa-ncnn-alsa
@@ -143,3 +143,25 @@ endif()
 if(SHERPA_NCNN_ENABLE_C_API AND SHERPA_NCNN_ENABLE_BINARY)
   add_subdirectory(c-api-examples)
 endif()
+
+
+set(SHERPA_NCNN_PKG_CONFIG_EXTRA_LIBS)
+
+if(NOT BUILD_SHARED_LIBS)
+  if(APPLE)
+    set(SHERPA_NCNN_PKG_CONFIG_EXTRA_LIBS "-lomp -lc++")
+  endif()
+
+  if(UNIX AND NOT APPLE)
+    set(SHERPA_NCNN_PKG_CONFIG_EXTRA_LIBS "-lm -lstdc++ -fopenmp")
+  endif()
+endif()
+
+# See https://people.freedesktop.org/~dbn/pkg-config-guide.html
+configure_file(cmake/sherpa-ncnn.pc.in ${PROJECT_BINARY_DIR}/sherpa-ncnn.pc @ONLY)
+install(
+  FILES
+    ${PROJECT_BINARY_DIR}/sherpa-ncnn.pc
+  DESTINATION
+    .
+)

+ 1 - 1
cmake/kaldi-native-fbank.cmake

@@ -45,7 +45,7 @@ function(download_kaldi_native_fbank)
   message(STATUS "kaldi-native-fbank is downloaded to ${kaldi_native_fbank_SOURCE_DIR}")
   message(STATUS "kaldi-native-fbank's binary dir is ${kaldi_native_fbank_BINARY_DIR}")
 
-  add_subdirectory(${kaldi_native_fbank_SOURCE_DIR} ${kaldi_native_fbank_BINARY_DIR})
+  add_subdirectory(${kaldi_native_fbank_SOURCE_DIR} ${kaldi_native_fbank_BINARY_DIR} EXCLUDE_FROM_ALL)
   if(SHERPA_NCNN_ENABLE_PYTHON AND WIN32)
     install(TARGETS kaldi-native-fbank-core DESTINATION ..)
   else()

+ 1 - 1
cmake/ncnn.cmake

@@ -184,7 +184,7 @@ function(download_ncnn)
   message(STATUS "ncnn is downloaded to ${ncnn_SOURCE_DIR}")
   message(STATUS "ncnn's binary dir is ${ncnn_BINARY_DIR}")
 
-  add_subdirectory(${ncnn_SOURCE_DIR} ${ncnn_BINARY_DIR})
+  add_subdirectory(${ncnn_SOURCE_DIR} ${ncnn_BINARY_DIR} EXCLUDE_FROM_ALL)
   if(SHERPA_NCNN_ENABLE_PYTHON AND WIN32)
     install(TARGETS ncnn DESTINATION ..)
   else()

+ 12 - 0
cmake/sherpa-ncnn.pc.in

@@ -0,0 +1,12 @@
+prefix="@CMAKE_INSTALL_PREFIX@"
+exec_prefix="${prefix}"
+includedir="${prefix}/include"
+libdir="${exec_prefix}/lib"
+
+Name: sherpa-ncnn
+Description: pkg-config for sherpa-ncnn
+URL: https://github.com/k2-fsa/sherpa-ncnn
+
+Version: @SHERPA_NCNN_VERSION@
+Cflags: -I"${includedir}"
+Libs: -L"${libdir}" -lsherpa-ncnn-c-api -lsherpa-ncnn-core -lncnn -lkaldi-native-fbank-core -Wl,-rpath,${libdir} @SHERPA_NCNN_PKG_CONFIG_EXTRA_LIBS@

+ 1 - 1
sherpa-ncnn/c-api/c-api.h

@@ -44,7 +44,7 @@ extern "C" {
 #define SHERPA_NCNN_IMPORT
 #endif
 #else  // WIN32
-#define SHERPA_NCNN_EXPORT __attribute__((__visibility__("default")))
+#define SHERPA_NCNN_EXPORT
 #define SHERPA_NCNN_IMPORT SHERPA_NCNN_EXPORT
 #endif
 

+ 0 - 12
sherpa-ncnn/csrc/CMakeLists.txt

@@ -66,18 +66,6 @@ if(NOT SHERPA_NCNN_ENABLE_PYTHON)
       install(TARGETS sherpa-ncnn-microphone DESTINATION bin)
     endif()
 
-    set(hdrs
-      features.h
-      model.h
-      recognizer.h
-      symbol-table.h
-      wave-reader.h
-    )
-
-    install(FILES ${hdrs}
-      DESTINATION include/sherpa-ncnn/csrc
-    )
-
     if(SHERPA_NCNN_ENABLE_GENERATE_INT8_SCALE_TABLE)
       add_executable(generate-int8-scale-table generate-int8-scale-table.cc)
       target_link_libraries(generate-int8-scale-table sherpa-ncnn-core)