Spaces:
Sleeping
Sleeping
File size: 4,658 Bytes
613af8d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
# dependencies find_package(Threads REQUIRED) # third-party if (WHISPER_SDL2) # SDL2 find_package(SDL2 REQUIRED) string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES) message(STATUS "SDL2_INCLUDE_DIRS = ${SDL2_INCLUDE_DIRS}") message(STATUS "SDL2_LIBRARIES = ${SDL2_LIBRARIES}") endif() if (WHISPER_CLBLAST) find_package(CLBlast REQUIRED) endif() # common set(TARGET common) unset(COMMON_EXTRA_LIBS) if (WHISPER_FFMPEG) # As of cmake 3.27, there is no official cmake support for FindFFmpeg. # Consequnelty we added a FindFFmpeg.cmake script the cmake subfolder: # whisper.cpp does not need the full ffmpeg libs, just AVFORMAT AVCODEC AVUTIL SWRESAMPLE # libswresample performs highly optimized audio resampling, rematrixing and sample format conversion operations # libavcodec provides a generic encoding/decoding framework and contains multiple decoders and encoders for audio, video and subtitle streams, and several bitstream filters. # libavformat provides a generic framework for multiplexing and demultiplexing (muxing and demuxing) audio, video and subtitle streams. find_package(FFmpeg REQUIRED) if (NOT ${FFMPEG_FOUND}) message(FATAL_ERROR "Cannot find ffmpeg libs/headers") endif() message(STATUS "Found ffmpeg libs: ${FFMPEG_LIBRARIES}") message(STATUS "Found ffmpeg headers in: ${FFMPEG_INCLUDE_DIRS}") message(STATUS "ffmpeg definitions: ${FFMPEG_DEFINITIONS}") message(STATUS "Found avformat ${AVFORMAT_VERSION}") include_directories(${FFMPEG_INCLUDE_DIRS}) add_compile_definitions(WHISPER_FFMPEG) list(APPEND COMMON_EXTRA_LIBS ${FFMPEG_LIBRARIES}) set(COMMON_SOURCES_FFMPEG ffmpeg-transcode.cpp) endif() add_library(${TARGET} STATIC common.h common.cpp common-ggml.h common-ggml.cpp grammar-parser.h grammar-parser.cpp ${COMMON_SOURCES_FFMPEG} ) include(DefaultTargetOptions) target_link_libraries(${TARGET} PRIVATE whisper ${COMMON_EXTRA_LIBS}) set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(${TARGET} PROPERTIES FOLDER "libs") if (WHISPER_SDL2) # common-sdl set(TARGET common-sdl) add_library(${TARGET} STATIC common-sdl.h common-sdl.cpp ) include(DefaultTargetOptions) target_include_directories(${TARGET} PUBLIC ${SDL2_INCLUDE_DIRS}) target_link_libraries (${TARGET} PRIVATE ${SDL2_LIBRARIES}) set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(${TARGET} PROPERTIES FOLDER "libs") endif() # add json lib add_library(json_cpp INTERFACE) target_include_directories(json_cpp INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) # examples include_directories(${CMAKE_CURRENT_SOURCE_DIR}) if (EMSCRIPTEN) add_subdirectory(whisper.wasm) set_target_properties(libmain PROPERTIES FOLDER "libs") add_subdirectory(stream.wasm) set_target_properties(libstream PROPERTIES FOLDER "libs") add_subdirectory(command.wasm) set_target_properties(libcommand PROPERTIES FOLDER "libs") add_subdirectory(talk.wasm) set_target_properties(libtalk PROPERTIES FOLDER "libs") add_subdirectory(bench.wasm) set_target_properties(libbench PROPERTIES FOLDER "libs") elseif(CMAKE_JS_VERSION) add_subdirectory(addon.node) set_target_properties(addon.node PROPERTIES FOLDER "examples") else() add_subdirectory(main) set_target_properties(main PROPERTIES FOLDER "examples") if (WHISPER_SDL2) add_subdirectory(stream) set_target_properties(stream PROPERTIES FOLDER "examples") endif (WHISPER_SDL2) add_subdirectory(server) set_target_properties(server PROPERTIES FOLDER "examples") if (WHISPER_SDL2) add_subdirectory(command) set_target_properties(command PROPERTIES FOLDER "examples") endif (WHISPER_SDL2) add_subdirectory(bench) set_target_properties(bench PROPERTIES FOLDER "examples") add_subdirectory(quantize) set_target_properties(quantize PROPERTIES FOLDER "examples") if (WHISPER_SDL2) add_subdirectory(talk) set_target_properties(talk PROPERTIES FOLDER "examples") add_subdirectory(talk-llama) set_target_properties(talk-llama PROPERTIES FOLDER "examples") add_subdirectory(lsp) set_target_properties(lsp PROPERTIES FOLDER "examples") if (GGML_SYCL) add_subdirectory(sycl) set_target_properties(sycl PROPERTIES FOLDER "examples") endif() endif (WHISPER_SDL2) endif() if (WHISPER_SDL2) add_subdirectory(wchess) set_target_properties(wchess PROPERTIES FOLDER "examples") endif (WHISPER_SDL2) |