boringssl static library prefab for android
This library is based on the boringssl AOSP repo.
Gradle:
implementation 'io.github.vvb2060.ndk:boringssl:4.0'
This library is Prefab, so you will need to enable it in your project (Android Gradle Plugin 4.1+):
android {
...
buildFeatures {
...
prefab true
}
}
you can use crypto_static
/ssl_static
in your Android.mk
.
For example, if your application defines libapp.so
and it uses ssl_static
, your Android.mk
file should include the following:
include $(CLEAR_VARS)
LOCAL_MODULE := app
LOCAL_SRC_FILES := app.cpp
LOCAL_STATIC_LIBRARIES := ssl_static
include $(BUILD_SHARED_LIBRARY)
# If you don't need your project to build with NDKs older than r21, you can omit
# this block.
ifneq ($(call ndk-major-at-least,21),true)
$(call import-add-path,$(NDK_GRADLE_INJECTED_IMPORT_PATH))
endif
$(call import-module,prefab/boringssl)
you can use crypto_static
/ssl_static
in your CMakeLists.txt
.
For example, if your application defines libapp.so
and it uses crypto_static
, your CMakeLists.txt
file should include the following:
add_library(app SHARED app.cpp)
# Add these two lines.
find_package(boringssl REQUIRED CONFIG)
target_link_libraries(app boringssl::crypto_static)
If you don't want to use prefab and want to compile entirely from source code, for example to enable LTO, you can import this project as a git submodule.
include $(CLEAR_VARS)
LOCAL_MODULE := app
LOCAL_SRC_FILES := app.cpp
LOCAL_STATIC_LIBRARIES := ssl_static
include $(BUILD_SHARED_LIBRARY)
include [submodule path]/boringssl/src/main/native/BoringSSL.mk
- 1.0 android-r-beta-3 2fb729d4f36beaf263ad85e24a790b571652679c
- 2.0 android-s-preview-1 ae2bb641735447496bed334c495e4868b981fe32
- 3.0 android-t-preview-2 345c86b1cfcc478a71a9a71f0206893fd16ae912
- 3.1 android-13.0.0_r18 base 1530333b25589ee4d4d52b10e78ee55dd82f6dcd patch adeb743478cf1894e0148e46044dc51f091a312e
- 4.0 android-14.0.0_r18 base 32b51305debe43e38e7bf2c2b13c4ebf3b474e80 patch a430310d6563c0734ddafca7731570dfb683dc19