# 原生崩溃捕获库
#
# 使用方在自己的 build.gradle 里加:
#   android {
#     externalNativeBuild { cmake { path "…/sdk/android/native/CMakeLists.txt" } }
#   }
# 不加也不会编译失败 —— Kotlin 侧 loadLibrary 失败时会退回「只抓 JVM 异常」。
cmake_minimum_required(VERSION 3.18.1)
project(woodpecker C)

add_library(woodpecker SHARED woodpecker_native.c)

# log:  __android_log_print
# dl:   dladdr(查地址属于哪个 .so 以及库内偏移)
target_link_libraries(woodpecker log dl)

# -O2 但保留栈帧:崩溃时能不能展开出调用栈,比这点性能重要得多。
# 省略栈帧指针在 arm64 上会让 _Unwind_Backtrace 在部分场景下拿不全栈。
target_compile_options(woodpecker PRIVATE -O2 -fno-omit-frame-pointer -Wall -Wextra)
