По моему мнению, вы не можете использовать систему сборки soong вне AOSP tree.so для компиляции собственных файлов с помощью Android.bp, вам придется собирать внутри дерева AOSP.
Но можете ли вы простовозврат в стабильную ветку вместо использования основного кода ветви.
Soong is the replacement for the old Android make-based build system.
It replaces Android.mk files with Android.bp files,
which are JSON-like simple declarative descriptions of modules to build.
This Makefile-based system is in the process of being replaced with Soong,
a new build system written in Go.
During the transition, all of these makefiles are read by Kati, and generate a ninja file instead of being executed directly.
That's combined with a ninja file read by Soong so that the build graph of the two systems can be combined and run as one.
Если вы извлекаете код в стабильную ветку, такую как pie-release или oreo-r6-release, вы получите исходный код без этого кода.система сборки, и у вас будут старые системные файлы сборки, такие как Android.mk
Но если вам все еще нужен последний исходный код, вы можете прочитать этот файл Android.bp и создать собственный модуль модуля, и собрать его с помощью CMake.
Вам придется конвертировать этот файл Android.bp в CMakeLists.txt для сборки его с помощью cmake.Я думаю, что это будет не очень сложно
Main segement that you want to build is : libjni_latinime
cc_library
{
name: "libjni_latinime",
host_supported: true,
product_specific: true,
sdk_version: "14",
cflags: [
"-Werror",
"-Wall",
"-Wextra",
"-Weffc++",
"-Wformat=2",
"-Wcast-qual",
"-Wcast-align",
"-Wwrite-strings",
"-Wfloat-equal",
"-Wpointer-arith",
"-Winit-self",
"-Wredundant-decls",
"-Woverloaded-virtual",
"-Wsign-promo",
"-Wno-system-headers",
// To suppress compiler warnings for unused variables/functions used for debug features etc.
"-Wno-unused-parameter",
"-Wno-unused-function",
],
local_include_dirs: ["src"],
srcs: [
"com_android_inputmethod_keyboard_ProximityInfo.cpp",
"com_android_inputmethod_latin_BinaryDictionary.cpp",
"com_android_inputmethod_latin_BinaryDictionaryUtils.cpp",
"com_android_inputmethod_latin_DicTraverseSession.cpp",
"jni_common.cpp",
":LATIN_IME_CORE_SRC_FILES",
],
target: {
android_x86: {
// HACK: -mstackrealign is required for x86 builds running on pre-KitKat devices to avoid crashes
// with SSE instructions.
cflags: ["-mstackrealign"],
},
android: {
stl: "libc++_static",
},
host: {
cflags: ["-DHOST_TOOL"],
},
}
Вы должны передать эти CFLAGS и включить dir и список исходных файлов, а из target просто передать android libc ++ _ static, поскольку другие вещи для вас бесполезны.
Если вы хотите прочитать о Сун: https://android.googlesource.com/platform/build/soong/