Files
oxmc af29205167 recovery: unblock Soong analysis on android-16
The recovery_toolkit/recovery_ui merge broke ninja generation for the
whole tree (everything runs at analysis time, even for modules nothing
builds). Fixes, in the order the errors surfaced:

- BoardConfigSoong.mk: export TW_THEME=landscape_hdpi via the
  twrpVarsPlugin soong config namespace (RPi 4/5 are 1080p HDMI);
  libguitwrp's theme selection hard-exits analysis when unset
- soong/copy.go: re-anchor runtime.Caller path derivation — the
  'bootable' anchor never matches at vendor/pawlet/recovery_ui and the
  slice paniced; recovery dir is now derived relative to this file
- scrypt sources.bp + libpixelflinger: hoist arch.arm.neon.* contents
  into plain arm blocks — the neon variant was removed in android-16
  Soong (NEON is mandatory on armv7-a+)
- recovery_ui/Android.bp: port twrp_defaults verbatim from
  android_vendor_twrp (android-14.1, build/soong) — it never lived in
  bootable/recovery; pure soong_config machinery, contributes no flags
  until twrpGlobalVars vars are set
- gui/Android.bp: drop libaosprecovery from libguitwrp's shared_libs —
  the module doesn't exist (TWRP's forked install/*.cpp was never
  ported) and an undefined dep is analysis-fatal; compile is unaffected
  (static lib), the gap moves to link time and is documented
- recovery_ui/Android.bp: librecovery_ui_pawlet_twrp shared -> static
  (librecovery_ui_ext absorbs TARGET_RECOVERY_UI_LIB via
  whole_static_libs) and libpixelflinger_twrp moved to static_libs
- scrypt Android.bp + libminuitwrp_defaults.go: rewrite leftover
  bootable/recovery/* self-referential paths to the new
  vendor/pawlet locations

Requires the libminadbd_headers visibility patch in the patches repo.
m nothing now completes for pawlet_rpi4-bp4a-userdebug.
2026-07-15 02:35:09 -07:00

86 lines
2.0 KiB
Plaintext

cc_defaults {
name: "libpixelflingertwrp_defaults",
cflags: [
"-fstrict-aliasing",
"-fomit-frame-pointer",
"-Wall",
"-Werror",
"-Wno-unused-function",
],
export_include_dirs: ["include"],
header_libs: ["libbase_headers"],
shared_libs: [
"libcutils",
"liblog",
"libutils",
],
arch: {
// android-16 Soong removed the arm.neon variant (NEON is mandatory
// on armv7-a+), so these apply to arm unconditionally.
arm: {
cflags: ["-D__ARM_HAVE_NEON"],
},
},
}
cc_library_static {
name: "libpixelflingertwrp-arm",
defaults: ["libpixelflingertwrp_defaults"],
srcs: [
"fixed.cpp",
"picker.cpp",
"pixelflinger.cpp",
"trap.cpp",
"scanline.cpp",
],
arch: {
arm: {
instruction_set: "arm",
},
},
}
cc_library_static {
name: "libpixelflinger_twrp",
defaults: ["libpixelflingertwrp_defaults"],
srcs: [
"codeflinger/ARMAssemblerInterface.cpp",
"codeflinger/ARMAssemblerProxy.cpp",
"codeflinger/CodeCache.cpp",
"codeflinger/GGLAssembler.cpp",
"codeflinger/load_store.cpp",
"codeflinger/blending.cpp",
"codeflinger/texturing.cpp",
"format.cpp",
"clear.cpp",
"raster.cpp",
"buffer.cpp",
],
whole_static_libs: ["libpixelflingertwrp-arm"],
arch: {
arm: {
srcs: [
"codeflinger/ARMAssembler.cpp",
"codeflinger/disassem.c",
"col32cb16blend.S",
"col32cb16blend_neon.S",
"t32cb16blend.S",
],
},
arm64: {
srcs: [
"codeflinger/Arm64Assembler.cpp",
"codeflinger/Arm64Disassembler.cpp",
"arch-arm64/col32cb16blend.S",
"arch-arm64/t32cb16blend.S",
],
},
},
}