kokoro.best / cpp /cmake /third_party.cmake
inoryQwQ's picture
Upload folder using huggingface_hub
b9c240c verified
Raw
History Blame Contribute Delete
2.99 kB
# third party
set(THIRDPARTY_DIR ${CMAKE_SOURCE_DIR}/third_party)
# Distinguish arm-uclibc vs arm-gnueabihf by compiler target.
set(AX_TTS_COMPILER_TARGET "")
if(CMAKE_C_COMPILER)
execute_process(
COMMAND ${CMAKE_C_COMPILER} -dumpmachine
OUTPUT_VARIABLE AX_TTS_COMPILER_TARGET
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
endif()
if(NOT AX_TTS_COMPILER_TARGET)
set(AX_TTS_COMPILER_TARGET "${CMAKE_C_COMPILER}")
endif()
set(AX_TTS_THIRDPARTY_FLAVOR "")
if(AX_TTS_COMPILER_TARGET MATCHES "aarch64")
set(AX_TTS_THIRDPARTY_FLAVOR "aarch64")
elseif(AX_TTS_COMPILER_TARGET MATCHES "uclibc")
set(AX_TTS_THIRDPARTY_FLAVOR "arm_uclibc")
elseif(AX_TTS_COMPILER_TARGET MATCHES "gnueabihf")
set(AX_TTS_THIRDPARTY_FLAVOR "arm_gnueabihf")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64")
set(AX_TTS_THIRDPARTY_FLAVOR "aarch64")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm")
# Keep old behavior for unknown ARM toolchains.
set(AX_TTS_THIRDPARTY_FLAVOR "arm_uclibc")
else()
message(FATAL_ERROR "Unsupported processor/toolchain: ${CMAKE_SYSTEM_PROCESSOR}, target=${AX_TTS_COMPILER_TARGET}")
endif()
message(STATUS "AX_TTS third-party flavor: ${AX_TTS_THIRDPARTY_FLAVOR} (target=${AX_TTS_COMPILER_TARGET})")
# espeak-ng
set(ESPEAK_INC_DIR ${THIRDPARTY_DIR}/espeak-ng/include)
if(AX_TTS_THIRDPARTY_FLAVOR STREQUAL "aarch64")
set(ESPEAK_LIB_DIR ${THIRDPARTY_DIR}/espeak-ng/lib/aarch64)
elseif(AX_TTS_THIRDPARTY_FLAVOR STREQUAL "arm_uclibc")
set(ESPEAK_LIB_DIR ${THIRDPARTY_DIR}/espeak-ng/lib/uclibc)
elseif(AX_TTS_THIRDPARTY_FLAVOR STREQUAL "arm_gnueabihf")
set(ESPEAK_LIB_DIR ${THIRDPARTY_DIR}/espeak-ng/lib/gnueabihf)
endif()
if(NOT EXISTS ${ESPEAK_LIB_DIR})
message(FATAL_ERROR "espeak lib dir not found: ${ESPEAK_LIB_DIR}")
endif()
list(APPEND ESPEAK_LIBS espeak-ng ucd speechPlayer pthread)
include_directories(${ESPEAK_INC_DIR})
link_directories(${ESPEAK_LIB_DIR})
# onnxruntime
set(ORT_INC_DIR ${THIRDPARTY_DIR}/onnxruntime-linux-aarch64-static_lib-1.16.0/include)
if(AX_TTS_THIRDPARTY_FLAVOR STREQUAL "aarch64")
set(ORT_LIB_DIR ${THIRDPARTY_DIR}/onnxruntime-linux-aarch64-static_lib-1.16.0/lib/aarch64)
elseif(AX_TTS_THIRDPARTY_FLAVOR STREQUAL "arm_uclibc")
if(EXISTS ${THIRDPARTY_DIR}/onnxruntime-linux-aarch64-static_lib-1.16.0/lib/arm_uclibc)
set(ORT_LIB_DIR ${THIRDPARTY_DIR}/onnxruntime-linux-aarch64-static_lib-1.16.0/lib/arm_uclibc)
else()
# Compatible with existing layout
set(ORT_LIB_DIR ${THIRDPARTY_DIR}/onnxruntime-linux-aarch64-static_lib-1.16.0/lib/arm)
endif()
elseif(AX_TTS_THIRDPARTY_FLAVOR STREQUAL "arm_gnueabihf")
set(ORT_LIB_DIR ${THIRDPARTY_DIR}/onnxruntime-linux-aarch64-static_lib-1.16.0/lib/arm_gnueabihf)
endif()
if(NOT EXISTS ${ORT_LIB_DIR})
message(FATAL_ERROR "onnxruntime lib dir not found: ${ORT_LIB_DIR}")
endif()
list(APPEND ORT_LIBS onnxruntime)
include_directories(${ORT_INC_DIR})
link_directories(${ORT_LIB_DIR})