diff options
author | Lassi Pulkkinen <lassi@pulk.fi> | 2024-10-31 03:11:21 +0200 |
---|---|---|
committer | Lassi Pulkkinen <lassi@pulk.fi> | 2024-10-31 03:51:35 +0200 |
commit | ae44478b30d890fe0fb04022f44d474dcdcc3f9d (patch) | |
tree | 5f462459ae4b47d22114eed717d1382d08cf4dfe /android/jni |
Diffstat (limited to 'android/jni')
-rw-r--r-- | android/jni/CMakeLists.txt | 35 | ||||
-rwxr-xr-x | android/jni/as | 11 | ||||
-rw-r--r-- | android/jni/dummy.c | 1 | ||||
-rw-r--r-- | android/jni/main.c | 7 |
4 files changed, 54 insertions, 0 deletions
diff --git a/android/jni/CMakeLists.txt b/android/jni/CMakeLists.txt new file mode 100644 index 0000000..e291b2d --- /dev/null +++ b/android/jni/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.6) + +project(HACRAFT) + +add_subdirectory(${SDL_ROOT} SDL) + +if(${ANDROID_ABI} STREQUAL arm64-v8a) + set(HARE_TARGET aarch64) +elseif(${ANDROID_ABI} STREQUAL x86_64) + set(HARE_TARGET x86_64) +endif() + +set(LIBMAIN_SO ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libmain.so) + +add_custom_target(compile_main + CC=${CMAKE_C_COMPILER} AS=${CMAKE_CURRENT_SOURCE_DIR}/as + LDFLAGS=--target=${CMAKE_C_COMPILER_TARGET}\ -shared\ ${CMAKE_CURRENT_SOURCE_DIR}/main.c + ASFLAGS=${CMAKE_C_COMPILER}\ ${CMAKE_C_COMPILER_TARGET} + HARECACHE=${CMAKE_CURRENT_BINARY_DIR}/hare + hare build -a ${HARE_TARGET} -T +android + -L${CMAKE_LIBRARY_OUTPUT_DIRECTORY} + -o ${LIBMAIN_SO} + -lc -lSDL2 -v + DEPENDS SDL2 + BYPRODUCTS ${LIBMAIN_SO} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../.. + USES_TERMINAL) + +add_library(main SHARED IMPORTED GLOBAL) +set_target_properties(main PROPERTIES IMPORTED_LOCATION ${LIBMAIN_SO}) +add_dependencies(main compile_main) + +add_library(dummy SHARED) +target_sources(dummy PRIVATE dummy.c) +target_link_libraries(dummy main) diff --git a/android/jni/as b/android/jni/as new file mode 100755 index 0000000..00963ee --- /dev/null +++ b/android/jni/as @@ -0,0 +1,11 @@ +#!/bin/sh + +cc="$1" +target="$2" +out="$4" +shift 4 +( + for f in "$@"; do + cat "$f" + done +) | "$cc" --target="$target" -c -o "$out" -x assembler - diff --git a/android/jni/dummy.c b/android/jni/dummy.c new file mode 100644 index 0000000..698ef4b --- /dev/null +++ b/android/jni/dummy.c @@ -0,0 +1 @@ +/* nothing to C here */ diff --git a/android/jni/main.c b/android/jni/main.c new file mode 100644 index 0000000..606ef7f --- /dev/null +++ b/android/jni/main.c @@ -0,0 +1,7 @@ +void android_main(); + +int +SDL_main(int argc, char **argv) { + android_main(); + return 0; +} |