diff --git a/library/build.gradle.kts b/library/build.gradle.kts index c606349..bd823c2 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -33,10 +33,15 @@ android { buildToolsVersion = androidBuildToolsVersion buildFeatures { - prefab = true prefabPublishing = true } + packagingOptions { + jniLibs { + excludes += "**.so" + } + } + prefab { create("lsplant") { headers = "jni/include" @@ -70,7 +75,6 @@ android { "-fno-stack-protector", "-fomit-frame-pointer", "-Wno-builtin-macro-redefined", - "-Wl,--strip-all", "-ffunction-sections", "-fdata-sections", "-Wno-unused-value", @@ -97,6 +101,12 @@ android { } } + buildTypes { + all { + externalNativeBuild.cmake.arguments += "-DDEBUG_SYMBOLS_PATH=${project.buildDir.absolutePath}/symbols/$name" + } + } + lint { abortOnError = true checkReleaseBuilds = false diff --git a/library/jni/CMakeLists.txt b/library/jni/CMakeLists.txt index 0f1b12d..ddd388f 100644 --- a/library/jni/CMakeLists.txt +++ b/library/jni/CMakeLists.txt @@ -1,6 +1,13 @@ cmake_minimum_required(VERSION 3.4.1) project(lsplant) +find_program(CCACHE ccache) + +if (CCACHE) + set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE}) + set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE}) +endif () + add_definitions(-std=c++20) set(SOURCES lsplant.cc) @@ -23,6 +30,15 @@ set(CFLAGS target_compile_options(${PROJECT_NAME} PRIVATE ${CFLAGS}) target_link_options(${PROJECT_NAME} PRIVATE -flto) +if (NOT DEFINED DEBUG_SYMBOLS_PATH) + set(DEBUG_SYMBOLS_PATH ${CMAKE_BINARY_DIR}/symbols) +endif() + +add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $ + ${DEBUG_SYMBOLS_PATH}/${ANDROID_ABI}/${PROJECT_NAME} + COMMAND ${CMAKE_STRIP} --strip-all $) + target_link_libraries(${PROJECT_NAME} PUBLIC dex_builder log) target_link_libraries(${PROJECT_NAME}_static PRIVATE dex_builder_static) target_link_libraries(${PROJECT_NAME}_static PUBLIC log) diff --git a/library/jni/external/dex_builder b/library/jni/external/dex_builder index 2546d41..315059b 160000 --- a/library/jni/external/dex_builder +++ b/library/jni/external/dex_builder @@ -1 +1 @@ -Subproject commit 2546d413f3dfe38b633fbba5aaa022959638035b +Subproject commit 315059bdee6839f040d0fd96a3144cfb57527b00