Warning, /libraries/ktextaddons/cmake/DownloadVosk.cmake is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: None
0002 # SPDX-License-Identifier: BSD-3-Clause
0003 include(Dirs)
0004 
0005 function(download_vosk_if_needed)
0006     # Set the URL for the ZIP file based on platform and architecture
0007     if (${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ANDROID)
0008         if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
0009             set(VOSK_URL "https://github.com/alphacep/vosk-api/releases/download/v0.3.45/vosk-linux-aarch64-0.3.45.zip")
0010         elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7l")
0011             set(VOSK_URL "https://github.com/alphacep/vosk-api/releases/download/v0.3.45/vosk-linux-armv7l-0.3.45.zip")
0012         elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "riscv64")
0013             set(VOSK_URL "https://github.com/alphacep/vosk-api/releases/download/v0.3.45/vosk-linux-riscv64-0.3.45.zip")
0014         elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
0015             set(VOSK_URL "https://github.com/alphacep/vosk-api/releases/download/v0.3.45/vosk-linux-x86_64-0.3.45.zip")
0016         elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86")
0017             set(VOSK_URL "https://github.com/alphacep/vosk-api/releases/download/v0.3.45/vosk-linux-x86-0.3.45.zip")
0018         endif()
0019     elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
0020         set(VOSK_URL "https://github.com/alphacep/vosk-api/releases/download/v0.3.42/vosk-osx-0.3.42.zip")
0021     elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
0022         if (${CMAKE_SIZEOF_VOID_P} MATCHES "4")
0023             set(VOSK_URL "https://github.com/alphacep/vosk-api/releases/download/v0.3.42/vosk-win32-0.3.42.zip")
0024         elseif (${CMAKE_SIZEOF_VOID_P} MATCHES "8")
0025             set(VOSK_URL "https://github.com/alphacep/vosk-api/releases/download/v0.3.45/vosk-win64-0.3.45.zip")
0026         endif()
0027     endif()
0028 
0029     message(STATUS "Downloading vosk from ${VOSK_URL}")
0030 
0031     # Download and extract the ZIP file
0032     file(DOWNLOAD "${VOSK_URL}" "${VOSK_ZIP}" SHOW_PROGRESS STATUS VOSK_DOWNLOAD_STATUS)
0033     list(GET VOSK_DOWNLOAD_STATUS 0 VOSK_DOWNLOAD_ERROR)
0034     if(VOSK_DOWNLOAD_ERROR)
0035         message(WARNING "Failed to download vosk: ${VOSK_DOWNLOAD_ERROR}")
0036     endif()
0037 
0038     file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/tempDir")
0039     execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf "${VOSK_ZIP}" WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/tempDir")
0040 
0041     # Move the extracted contents to another directory
0042     file(MAKE_DIRECTORY ${VOSK_DIR})
0043 
0044     file(GLOB VOSK_FILES "${CMAKE_BINARY_DIR}/tempDir/*/*")
0045     foreach(VOSK_FILE ${VOSK_FILES})
0046         file(COPY ${VOSK_FILE} DESTINATION ${VOSK_DIR})
0047     endforeach()
0048 endfunction()