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)