Files
searchi/tools/speech-runtime/CMakeLists.txt
T

49 lines
2.1 KiB
CMake
Raw Normal View History

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()