cmake_minimum_required(VERSION 3.16) project(zipvoice_axera_resident_server C CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # ---- Paths ---- set(ZIPVOICE_SRC "${CMAKE_CURRENT_SOURCE_DIR}/../models/zipvoice/cpp") set(BSP_MSP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../TTS/ZipVoice.AXERA/cpp/ax650n_bsp_sdk/msp/out") if(NOT EXISTS "${BSP_MSP_DIR}") message(FATAL_ERROR "BSP not found: ${BSP_MSP_DIR}. Run download_bsp.sh first.") endif() set(MSP_INC_DIR ${BSP_MSP_DIR}/include) set(MSP_LIB_DIR ${BSP_MSP_DIR}/lib) # ---- Sources ---- add_library(zipvoice_axera SHARED zipvoice_c_api.cpp zipvoice_resident_server.cpp ${ZIPVOICE_SRC}/src/tokenizer.cpp ${ZIPVOICE_SRC}/src/fbank.cpp ${ZIPVOICE_SRC}/src/zipvoice_engine.cpp ${ZIPVOICE_SRC}/src/vocoder.cpp ${ZIPVOICE_SRC}/src/EngineWrapper.cpp ${ZIPVOICE_SRC}/third_party/kissfft/kiss_fft.c ) add_executable(zipvoice_axera_server main.cpp zipvoice_resident_server.cpp ${ZIPVOICE_SRC}/src/tokenizer.cpp ${ZIPVOICE_SRC}/src/fbank.cpp ${ZIPVOICE_SRC}/src/zipvoice_engine.cpp ${ZIPVOICE_SRC}/src/vocoder.cpp ${ZIPVOICE_SRC}/src/EngineWrapper.cpp ${ZIPVOICE_SRC}/third_party/kissfft/kiss_fft.c ) # ---- Includes ---- target_include_directories(zipvoice_axera PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${ZIPVOICE_SRC} ${ZIPVOICE_SRC}/src ${ZIPVOICE_SRC}/utils ${ZIPVOICE_SRC}/third_party/kissfft ${MSP_INC_DIR} ) target_include_directories(zipvoice_axera_server PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${ZIPVOICE_SRC} ${ZIPVOICE_SRC}/src ${ZIPVOICE_SRC}/utils ${ZIPVOICE_SRC}/third_party/kissfft ${MSP_INC_DIR} ) # ---- Link ---- # Use target_link_directories (CMake >= 3.13) for cross-compilation compat # onnxruntime is a transitive dep of ax_engine; ship it from the models/ lib dir set(ORT_LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../models/melotts_sherpa/build/lib") target_link_directories(zipvoice_axera PRIVATE ${MSP_LIB_DIR} ${ORT_LIB_DIR}) target_link_directories(zipvoice_axera_server PRIVATE ${MSP_LIB_DIR} ${ORT_LIB_DIR}) target_link_libraries(zipvoice_axera PRIVATE ax_sys ax_engine ax_interpreter onnxruntime pthread dl m stdc++ ) target_link_libraries(zipvoice_axera_server PRIVATE ax_sys ax_engine ax_interpreter onnxruntime pthread dl m stdc++ ) set_target_properties(zipvoice_axera PROPERTIES INSTALL_RPATH "$ORIGIN/../lib" ) set_target_properties(zipvoice_axera_server PROPERTIES INSTALL_RPATH "$ORIGIN/../lib" ) install(TARGETS zipvoice_axera DESTINATION lib) install(TARGETS zipvoice_axera_server DESTINATION bin)