aboutsummaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/jni/Android.mk21
-rw-r--r--app/src/main/jni/AppLibrary.cmake26
-rw-r--r--app/src/main/jni/Application.mk2
-rw-r--r--app/src/main/jni/CMakeLists.txt20
4 files changed, 46 insertions, 23 deletions
diff --git a/app/src/main/jni/Android.mk b/app/src/main/jni/Android.mk
deleted file mode 100644
index 116be17..0000000
--- a/app/src/main/jni/Android.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-# Temporarily remove this so i can figure out gradle stuff
-#include $(CLEAR_VARS)
-#LOCAL_MODULE := vosk
-#LOCAL_SRC_FILES := ../vosk/libvosk.so
-#include $(PREBUILT_SHARED_LIBRARY)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := moku
-# _eventually_ add lvgl source files to here when i feel like making the UI
-LOCAL_SRC_FILES := main.c
-# LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM
-LOCAL_LDLIBS := -llog -landroid
-# remove vosk here too
-#LOCAL_C_INCLUDES := vosk/include
-#LOCAL_SHARED_LIBRARIES := vosk
-LOCAL_STATIC_LIBRARIES := android_native_app_glue
-include $(BUILD_SHARED_LIBRARY)
-
-$(call import-module,android/native_app_glue)
diff --git a/app/src/main/jni/AppLibrary.cmake b/app/src/main/jni/AppLibrary.cmake
new file mode 100644
index 0000000..042dfcf
--- /dev/null
+++ b/app/src/main/jni/AppLibrary.cmake
@@ -0,0 +1,26 @@
+include_guard()
+
+function(add_app_library name)
+ cmake_parse_arguments(PARSE_ARGV 1 arg "NO_VERSION_SCRIPT" "" "")
+ add_library(${name} ${arg_UNPARSED_ARGUMENTS})
+
+ target_compile_options(${name}
+ PRIVATE
+ -Wall
+ -Wextra
+ -Werror
+ )
+
+ if(NOT arg_NO_VERSION_SCRIPT)
+ target_link_options(${name}
+ PRIVATE
+ -Wl,--no-undefined-version
+ -Wl,--version-script,${CMAKE_SOURCE_DIR}/lib${name}.map.txt
+ )
+
+ set_target_properties(${name}
+ PROPERTIES
+ LINK_DEPENDS ${CMAKE_SOURCE_DIR}/lib${name}.map.txt
+ )
+ endif()
+endfunction()
diff --git a/app/src/main/jni/Application.mk b/app/src/main/jni/Application.mk
deleted file mode 100644
index 67a4e98..0000000
--- a/app/src/main/jni/Application.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-APP_ABI := arm64-v8a
-APP_PLATFORM := android-26
diff --git a/app/src/main/jni/CMakeLists.txt b/app/src/main/jni/CMakeLists.txt
new file mode 100644
index 0000000..66eceff
--- /dev/null
+++ b/app/src/main/jni/CMakeLists.txt
@@ -0,0 +1,20 @@
+cmake_minimum_required(VERSION 3.18.1)
+project(moku LANGUAGES C)
+
+# set(CMAKE_C_STANDARD 89)
+# set(CMAKE_C_STANDARD_REQUIRED ON)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/AppLibrary.cmake)
+
+include(AndroidNdkModules)
+android_ndk_import_module_native_app_glue()
+
+add_app_library(moku SHARED main.c)
+
+find_package(vosk REQUIRED CONFIG)
+
+target_link_libraries(moku
+ vosk::vosk
+ $<LINK_LIBRARY:WHOLE_ARCHIVE,native_app_glue>
+ log
+)