-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
67 lines (59 loc) · 2.81 KB
/
Copy pathCMakeLists.txt
File metadata and controls
67 lines (59 loc) · 2.81 KB
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
cmake_minimum_required(VERSION 3.16)
project(whisper-toaster LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
find_package(Qt6 COMPONENTS Widgets REQUIRED)
# whisper.cpp как git submodule:
# git submodule add https://github.com/ggerganov/whisper.cpp third_party/whisper.cpp
# Собираем только libwhisper, без их собственных примеров/тестов.
set(WHISPER_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(WHISPER_BUILD_TESTS OFF CACHE BOOL "" FORCE)
# GPU-ускорение через Vulkan: по умолчанию включено, т.к. приложение даёт
# пользователю переключатель "Try GPU" / "CPU only" (см. MainWindow::setUseGpu),
# и он бесполезен, если сама libwhisper собрана без GPU-бэкенда. Раньше это
# держалось на ручном -DGGML_VULKAN=ON при конфигурации build-директории —
# ненадёжно и терялось при переконфигурации.
#
# Мягкое поведение: если Vulkan SDK на машине не найден, не роняем всю
# конфигурацию — просто собираем без GPU-бэкенда и явно предупреждаем
# в логе, чтобы это не потерялось молча, как раньше.
option(WHISPER_TOASTER_USE_VULKAN "Build bundled whisper.cpp with Vulkan GPU backend" ON)
if (WHISPER_TOASTER_USE_VULKAN)
find_package(Vulkan QUIET)
if (Vulkan_FOUND)
set(GGML_VULKAN ON CACHE BOOL "" FORCE)
else()
message(WARNING "whisper-toaster: Vulkan SDK not found — building WITHOUT GPU "
"acceleration. The app's \"Try GPU\" toggle will have no effect. "
"Install the Vulkan SDK (headers + glslc) and reconfigure to enable it.")
set(GGML_VULKAN OFF CACHE BOOL "" FORCE)
endif()
endif()
message(STATUS "whisper-toaster: GGML_VULKAN = ${GGML_VULKAN}")
add_subdirectory(third_party/whisper.cpp)
add_executable(whisper-toaster
src/main.cpp
src/MainWindow.cpp
src/MainWindow.h
src/DropZone.cpp
src/DropZone.h
src/TranscribeWorker.cpp
src/TranscribeWorker.h
src/ModelLocator.cpp
src/ModelLocator.h
src/WavLoader.cpp
src/WavLoader.h
src/AudioConverter.cpp
src/AudioConverter.h
src/Utils.h
src/Utils.cpp
src/BusySpinner.cpp
src/BusySpinner.h
)
target_include_directories(whisper-toaster PRIVATE src)
target_link_libraries(whisper-toaster PRIVATE Qt6::Widgets whisper)
# На Linux пригодится для установки .desktop-файла и т.п. позже (packaging).
install(TARGETS whisper-toaster RUNTIME DESTINATION bin)