49 lines
1.7 KiB
CMake
49 lines
1.7 KiB
CMake
cmake_minimum_required(VERSION 3.22)
|
|
project(kazeia-jni)
|
|
|
|
set(JNILIBS_DIR ${CMAKE_SOURCE_DIR}/../jniLibs/${ANDROID_ABI})
|
|
|
|
# --- Genie JNI bridge ---
|
|
add_library(genie_jni SHARED genie_jni.cpp)
|
|
|
|
add_library(Genie SHARED IMPORTED)
|
|
set_target_properties(Genie PROPERTIES IMPORTED_LOCATION ${JNILIBS_DIR}/libGenie.so)
|
|
|
|
target_link_libraries(genie_jni Genie android log)
|
|
target_compile_options(genie_jni PRIVATE -std=c++17 -O2)
|
|
|
|
# --- Whisper JNI bridge ---
|
|
add_library(whisper_jni SHARED whisper_jni.cpp)
|
|
|
|
# Prebuilt whisper + ggml libs
|
|
add_library(whisper SHARED IMPORTED)
|
|
set_target_properties(whisper PROPERTIES IMPORTED_LOCATION ${JNILIBS_DIR}/libwhisper.so)
|
|
|
|
add_library(ggml SHARED IMPORTED)
|
|
set_target_properties(ggml PROPERTIES IMPORTED_LOCATION ${JNILIBS_DIR}/libggml.so)
|
|
|
|
add_library(ggml-base SHARED IMPORTED)
|
|
set_target_properties(ggml-base PROPERTIES IMPORTED_LOCATION ${JNILIBS_DIR}/libggml-base.so)
|
|
|
|
add_library(ggml-cpu SHARED IMPORTED)
|
|
set_target_properties(ggml-cpu PROPERTIES IMPORTED_LOCATION ${JNILIBS_DIR}/libggml-cpu.so)
|
|
|
|
# Include whisper.h
|
|
target_include_directories(whisper_jni PRIVATE
|
|
/opt/Kazeia/whisper.cpp/include
|
|
/opt/Kazeia/whisper.cpp/ggml/include
|
|
)
|
|
|
|
target_link_libraries(whisper_jni whisper ggml ggml-base ggml-cpu android log)
|
|
target_compile_options(whisper_jni PRIVATE -std=c++17 -O2)
|
|
|
|
# --- NEON optimized ops for TTS heads ---
|
|
add_library(neon_ops SHARED neon_ops.cpp)
|
|
target_link_libraries(neon_ops log)
|
|
target_compile_options(neon_ops PRIVATE -std=c++17 -O3 -march=armv8.2-a+fp16)
|
|
|
|
# --- Mel Extractor (HuggingFace-compatible, no whisper.cpp dependency) ---
|
|
add_library(mel_extractor SHARED mel_extractor.cpp)
|
|
target_link_libraries(mel_extractor android log)
|
|
target_compile_options(mel_extractor PRIVATE -std=c++17 -O2)
|