Skip to content

hidenorly/AndroidMakefileAnalyzer

Repository files navigation

AndroidMakefileAnalyzer

Create .xml for AbiComplianceChecker

$ ruby AndroidMakefileScanner.rb ~/work/android/s -m "nativeLib" -o ~/work/android/s/out/target/product/generic -r xml-perlib -v "s" -p ./abi-s -f -e

ABI compatibility checker

Setup for MacOS

$ brew install gcc
$ git clone https://github.com/hidenorly/abi-compliance-checker
( https://github.com/lvc/abi-compliance-checker/pull/119 )
$ abi-compliance-checker -test --gcc-path=/opt/homebrew/bin/gcc-12
export GCC_PATH=/opt/homebrew/bin/gcc-12

How to execute

% ruby AndroidMakefileScanner.rb ~/work/android/s -m "nativeLib" -r xml-perlib -e -p abi-s -o ~/work/android/s/out/target/product/generic -f -v s
% ruby AndroidMakefileScanner.rb ~/work/android/t -m "nativeLib" -r xml-perlib -e -p abi-t -o ~/work/android/t/out/target/product/generic -f -v t
% ruby AbiComplianceChecker.rb -o abi abi-s abi-t

TODOs

  • Add multi line support in Android.mk

  • Add env flatten in Android.mk

  • Add call $(call my-dir) support in Android.mk

  • Add $(subst support in Android.mk

  • Add nested $(subst support in Android.mk

  • Add include-path-for support

  • Add no header(include) found case support

  • Add Android.bp support

    • Add defaults: support (super(base attributes) support) e.g. cc_defaults
  • Add .so search from Android built out/ with Android.(mk|bp) parse result

  • Add generate abi checker comparison output support (xml file per lib)

    • Add stream support with STDOUT
    • Add stream support with file with -p (--reportOutPath) support
    • Add -r xml-perlib support
    • Add --filterOutMatch support
      • Add multi thread file search
      • Add known exclusion e.g. "/obj/PACKAGING/target_files_intermediates/"
    • Add -v version support
    • Add unsupported cflags removal support * [x] Add for gcc * [] Add for clang
    • Add concurrent execution
  • Add .jar support

  • Add .apk support

    • Add LOCAL_DEX_PREOPT
  • Add -m based scan (今は-m jarでもapkもsoもscanしているから)

  • Add .apex support

  • [] Add build.gradle support

  • Add sort

  • Add ensure directory for reportOutPath if XmlPerLibReporter

  • [] Add AbiComplianceChecker

    • Add concurrent execution

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages