diff --git a/CMakeLists.txt b/CMakeLists.txt index 2912b6132..764277d1b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,7 +60,7 @@ find_package(Python3 COMPONENTS Interpreter Development) find_package(pybind11 CONFIG) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -fPIC -O0 -Wall -g") +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -O0 -Wall -g") add_subdirectory(paddlespeech/audio) # Summary diff --git a/cmake/FindGFortranLibs.cmake b/cmake/FindGFortranLibs.cmake index 763f78833..3bb9bb1a2 100644 --- a/cmake/FindGFortranLibs.cmake +++ b/cmake/FindGFortranLibs.cmake @@ -142,4 +142,12 @@ endif() mark_as_advanced(LIBGFORTRAN_LIBRARIES LIBQUADMATH_LIBRARIES LIBGOMP_LIBRARIES LIBGOMP_INCLUDE_DIR GFORTRAN_LIBRARIES_DIR GFORTRAN_INCLUDE_DIR) -# FindGFortranLIBS.cmake ends here \ No newline at end of file +# FindGFortranLIBS.cmake ends here + + +message(STATUS LIBGFORTRAN_LIBRARIES= ${LIBGFORTRAN_LIBRARIES}) +message(STATUS LIBQUADMATH_LIBRARIES= ${LIBQUADMATH_LIBRARIES}) +message(STATUS LIBGOMP_LIBRARIES= ${LIBGOMP_LIBRARIES}) +message(STATUS LIBGOMP_INCLUDE_DIR= ${LIBGOMP_INCLUDE_DIR}) +message(STATUS GFORTRAN_LIBRARIES_DIR= ${GFORTRAN_LIBRARIES_DIR}) +message(STATUS GFORTRAN_INCLUDE_DIR= ${GFORTRAN_INCLUDE_DIR}) \ No newline at end of file diff --git a/cmake/external/openblas.cmake b/cmake/external/openblas.cmake index a108f49a2..c93549703 100644 --- a/cmake/external/openblas.cmake +++ b/cmake/external/openblas.cmake @@ -48,12 +48,19 @@ set(OpenBLAS_INSTALL_PREFIX ${INSTALL_DIR}) add_library(openblas STATIC IMPORTED) add_dependencies(openblas OPENBLAS) set_target_properties(openblas PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES Fortran) -# ${CMAKE_INSTALL_LIBDIR} lib -set_target_properties(openblas PROPERTIES IMPORTED_LOCATION ${OpenBLAS_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/libopenblas.a) +set_target_properties(openblas PROPERTIES IMPORTED_LOCATION ${OpenBLAS_INSTALL_PREFIX}/lib/libopenblas.a) -# https://cmake.org/cmake/help/latest/command/install.html?highlight=cmake_install_libdir#installing-targets -# ${CMAKE_INSTALL_LIBDIR} lib -# ${CMAKE_INSTALL_INCLUDEDIR} include -link_directories(${OpenBLAS_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) -include_directories(${OpenBLAS_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/openblas) + +link_directories(${OpenBLAS_INSTALL_PREFIX}/lib) +include_directories(${OpenBLAS_INSTALL_PREFIX}/include/openblas) + + +set(OPENBLAS_LIBRARIES + ${OpenBLAS_INSTALL_PREFIX}/lib/libopenblas.a +) + +add_library(libopenblas INTERFACE) +add_dependencies(libopenblas openblas) +target_include_directories(libopenblas INTERFACE ${OpenBLAS_INSTALL_PREFIX}/include/openblas) +target_link_libraries(libopenblas INTERFACE ${OPENBLAS_LIBRARIES}) \ No newline at end of file diff --git a/paddlespeech/audio/third_party/kaldi/CMakeLists.txt b/paddlespeech/audio/third_party/kaldi/CMakeLists.txt index 148445442..6934016ee 100644 --- a/paddlespeech/audio/third_party/kaldi/CMakeLists.txt +++ b/paddlespeech/audio/third_party/kaldi/CMakeLists.txt @@ -44,7 +44,7 @@ add_library(kaldi-matrix STATIC matrix/tp-matrix.cc ) target_include_directories(kaldi-matrix PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -target_link_libraries(kaldi-matrix PUBLIC gfortran kaldi-base libopenblas.a) +target_link_libraries(kaldi-matrix PUBLIC gfortran kaldi-base libopenblas) # kaldi-util @@ -105,5 +105,12 @@ set(KALDI_LIBRARIES add_library(libkaldi INTERFACE) add_dependencies(libkaldi kaldi-base kaldi-matrix kaldi-util kaldi-feat-common kaldi-mfcc kaldi-fbank) target_include_directories(libkaldi INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) -target_link_libraries(libkaldi INTERFACE ${KALDI_LIBRARIES}) +target_link_libraries(libkaldi INTERFACE + # --whole-archive for undefined symbol when link static lib into shared lib + -Wl,--start-group -Wl,--whole-archive + ${KALDI_LIBRARIES} + libopenblas + gfortran + -Wl,--no-whole-archive -Wl,--end-group +) target_compile_definitions(libkaldi INTERFACE "-DCOMPILE_WITHOUT_OPENFST") \ No newline at end of file