mirror of
https://github.com/occ-ai/obs-localvocal
synced 2024-11-07 10:50:26 +00:00
add openblas
This commit is contained in:
parent
43416531d8
commit
adb2ede905
@ -13,6 +13,25 @@ if(UNIX AND NOT APPLE)
|
||||
set(WHISPER_EXTRA_CXX_FLAGS "-fPIC")
|
||||
endif()
|
||||
|
||||
# if on Windows - download OpenBLAS prebuilt binaries
|
||||
if(WIN32)
|
||||
set(OpenBLAS_URL
|
||||
"https://github.com/xianyi/OpenBLAS/releases/download/v0.3.24/OpenBLAS-0.3.24-x64.zip")
|
||||
set(OpenBLAS_SHA256
|
||||
"8E777E406BA7030D21ADB18683D6175E4FA5ADACFBC09982C01E81245B348132"
|
||||
)
|
||||
ExternalProject_Add(
|
||||
OpenBLAS
|
||||
URL ${OpenBLAS_URL}
|
||||
URL_HASH SHA256=${OpenBLAS_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS true
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory <SOURCE_DIR> <INSTALL_DIR>)
|
||||
ExternalProject_Get_Property(OpenBLAS INSTALL_DIR)
|
||||
set(OpenBLAS_DIR ${INSTALL_DIR})
|
||||
endif(WIN32)
|
||||
|
||||
ExternalProject_Add(
|
||||
Whispercpp_Build
|
||||
DOWNLOAD_EXTRACT_TIMESTAMP true
|
||||
@ -20,31 +39,56 @@ ExternalProject_Add(
|
||||
GIT_TAG 7b374c9ac9b9861bb737eec060e4dfa29d229259
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config ${Whispercpp_BUILD_TYPE}
|
||||
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/static/${CMAKE_STATIC_LIBRARY_PREFIX}whisper${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||
<INSTALL_DIR>/bin/${CMAKE_SHARED_LIBRARY_PREFIX}whisper${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
<INSTALL_DIR>/lib/${CMAKE_IMPORT_LIBRARY_PREFIX}whisper${CMAKE_IMPORT_LIBRARY_SUFFIX}
|
||||
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --install <BINARY_DIR> --config ${Whispercpp_BUILD_TYPE}
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --install <BINARY_DIR> --config ${Whispercpp_BUILD_TYPE} && ${CMAKE_COMMAND} -E copy <BINARY_DIR>/${Whispercpp_BUILD_TYPE}/whisper.lib <INSTALL_DIR>/lib
|
||||
CONFIGURE_COMMAND
|
||||
${CMAKE_COMMAND} -E env OPENBLAS_PATH=${OpenBLAS_DIR}
|
||||
${CMAKE_COMMAND} <SOURCE_DIR> -B <BINARY_DIR> -G ${CMAKE_GENERATOR}
|
||||
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
|
||||
-DCMAKE_BUILD_TYPE=${Whispercpp_BUILD_TYPE}
|
||||
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13
|
||||
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_}
|
||||
-DCMAKE_CXX_FLAGS=${WHISPER_EXTRA_CXX_FLAGS}
|
||||
-DCMAKE_C_FLAGS=${WHISPER_EXTRA_CXX_FLAGS}
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DWHISPER_BUILD_TESTS=OFF
|
||||
-DWHISPER_BUILD_EXAMPLES=OFF
|
||||
-DWHISPER_OPENBLAS=ON)
|
||||
-DWHISPER_BLAS=ON)
|
||||
|
||||
if(WIN32)
|
||||
add_dependencies(Whispercpp_Build OpenBLAS)
|
||||
endif(WIN32)
|
||||
|
||||
ExternalProject_Get_Property(Whispercpp_Build INSTALL_DIR)
|
||||
|
||||
add_library(Whispercpp::Whisper STATIC IMPORTED)
|
||||
add_library(Whispercpp::Whisper SHARED IMPORTED)
|
||||
set_target_properties(
|
||||
Whispercpp::Whisper
|
||||
PROPERTIES IMPORTED_LOCATION
|
||||
${INSTALL_DIR}/lib/static/${CMAKE_STATIC_LIBRARY_PREFIX}whisper${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
${INSTALL_DIR}/bin/${CMAKE_SHARED_LIBRARY_PREFIX}whisper${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
set_target_properties(
|
||||
Whispercpp::Whisper
|
||||
PROPERTIES IMPORTED_IMPLIB
|
||||
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}whisper${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
|
||||
install(FILES ${INSTALL_DIR}/bin/${CMAKE_SHARED_LIBRARY_PREFIX}whisper${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION "obs-plugins/64bit")
|
||||
|
||||
# add openblas to the link line
|
||||
if(WIN32)
|
||||
add_library(Whispercpp::OpenBLAS STATIC IMPORTED)
|
||||
set_target_properties(
|
||||
Whispercpp::OpenBLAS
|
||||
PROPERTIES IMPORTED_LOCATION
|
||||
${OpenBLAS_DIR}/lib/libopenblas.dll.a)
|
||||
install(FILES ${OpenBLAS_DIR}/bin/libopenblas.dll DESTINATION "obs-plugins/64bit")
|
||||
endif(WIN32)
|
||||
|
||||
add_library(Whispercpp INTERFACE)
|
||||
add_dependencies(Whispercpp Whispercpp_Build)
|
||||
target_link_libraries(Whispercpp INTERFACE Whispercpp::Whisper)
|
||||
target_link_libraries(Whispercpp INTERFACE Whispercpp::Whisper Whispercpp::OpenBLAS)
|
||||
set_target_properties(Whispercpp::Whisper PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
|
||||
if(APPLE)
|
||||
target_link_libraries(Whispercpp INTERFACE "-framework Accelerate")
|
||||
|
Loading…
Reference in New Issue
Block a user