50 lines
2.1 KiB
CMake
50 lines
2.1 KiB
CMake
cmake_minimum_required(VERSION 3.21)
|
|
project(searchi_speech_runtime LANGUAGES C CXX)
|
|
find_package(Git REQUIRED)
|
|
execute_process(COMMAND "${GIT_EXECUTABLE}" -C "${WHISPER_SOURCE}" rev-parse HEAD OUTPUT_VARIABLE revision OUTPUT_STRIP_TRAILING_WHITESPACE RESULT_VARIABLE status)
|
|
if(NOT status EQUAL 0 OR NOT revision STREQUAL "d1be6fde11ac6e0407606b4e42fe72d34add8037")
|
|
message(FATAL_ERROR "Provide the pinned whisper.cpp source checkout")
|
|
endif()
|
|
option(SEARCHI_INTERNAL_CPU "Internal Windows VM CPU tool, not distribution" OFF)
|
|
set(GGML_NATIVE OFF CACHE BOOL "" FORCE)
|
|
set(GGML_OPENMP OFF CACHE BOOL "" FORCE)
|
|
set(WHISPER_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
|
|
set(WHISPER_BUILD_TESTS OFF CACHE BOOL "" FORCE)
|
|
foreach(provider CUDA SYCL HIP BLAS)
|
|
set(GGML_${provider} OFF CACHE BOOL "" FORCE)
|
|
endforeach()
|
|
if(SEARCHI_INTERNAL_CPU)
|
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
|
|
set(GGML_BACKEND_DL OFF CACHE BOOL "" FORCE)
|
|
set(GGML_VULKAN OFF CACHE BOOL "" FORCE)
|
|
set(GGML_METAL OFF CACHE BOOL "" FORCE)
|
|
else()
|
|
set(BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE)
|
|
set(GGML_BACKEND_DL ON CACHE BOOL "" FORCE)
|
|
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(AMD64|amd64|x86_64)$")
|
|
set(GGML_CPU_ALL_VARIANTS ON CACHE BOOL "" FORCE)
|
|
endif()
|
|
if(APPLE)
|
|
set(GGML_METAL ON CACHE BOOL "" FORCE)
|
|
set(GGML_VULKAN OFF CACHE BOOL "" FORCE)
|
|
else()
|
|
find_package(Vulkan REQUIRED COMPONENTS glslc)
|
|
set(GGML_VULKAN ON CACHE BOOL "" FORCE)
|
|
set(GGML_METAL OFF CACHE BOOL "" FORCE)
|
|
endif()
|
|
endif()
|
|
add_subdirectory("${WHISPER_SOURCE}" whisper)
|
|
target_compile_features(whisper PRIVATE cxx_std_17)
|
|
add_executable(searchi-speech-worker worker.cpp)
|
|
target_compile_features(searchi-speech-worker PRIVATE cxx_std_17)
|
|
target_link_libraries(searchi-speech-worker PRIVATE whisper)
|
|
if(NOT SEARCHI_INTERNAL_CPU)
|
|
target_compile_definitions(searchi-speech-worker PRIVATE SEARCHI_DISTRIBUTION_AUTO=1)
|
|
endif()
|
|
if(MSVC)
|
|
target_compile_options(searchi-speech-worker PRIVATE /utf-8)
|
|
endif()
|
|
if(UNIX)
|
|
set_target_properties(searchi-speech-worker PROPERTIES BUILD_RPATH "$ORIGIN;@loader_path" INSTALL_RPATH "$ORIGIN;@loader_path")
|
|
endif()
|