# File containing standard options to HostStubGen for Ravenwood

# --debug # To enable debug log on consone

# Keep all classes / methods / fields, but make the methods throw.
--default-throw

# Uncomment below lines to enable each feature.

#--default-method-call-hook
#    com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall
#--default-class-load-hook
#    com.android.hoststubgen.hosthelper.HostTestUtils.logClassLoaded

# Standard annotations.
# Note, each line is a single argument, so we need newlines after each `--xxx-annotation`.
--keep-annotation
    android.ravenwood.annotation.RavenwoodKeep

--keep-annotation
    android.ravenwood.annotation.RavenwoodKeepPartialClass

--keep-class-annotation
    android.ravenwood.annotation.RavenwoodKeepWholeClass

--throw-annotation
    android.ravenwood.annotation.RavenwoodThrow

--remove-annotation
    android.ravenwood.annotation.RavenwoodRemove

--substitute-annotation
    android.ravenwood.annotation.RavenwoodReplace

--redirect-annotation
    android.ravenwood.annotation.RavenwoodRedirect

--redirection-class-annotation
    android.ravenwood.annotation.RavenwoodRedirectionClass

--class-load-hook-annotation
    android.ravenwood.annotation.RavenwoodClassLoadHook

--keep-static-initializer-annotation
    android.ravenwood.annotation.RavenwoodKeepStaticInitializer
