Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e3d5f1e authored by Anton Hansson's avatar Anton Hansson Committed by Android (Google) Code Review
Browse files

Merge "Move shared module build rules to common repo" into mainline-prod

parents cc5d7fe3 56ca66dd
Loading
Loading
Loading
Loading
+0 −186
Original line number Diff line number Diff line
@@ -15,189 +15,3 @@
package {
    default_visibility: [":__subpackages__"],
}

mainline_stubs_args =
    "--error UnhiddenSystemApi " +
    "--hide BroadcastBehavior " +
    "--hide CallbackInterface " +
    "--hide DeprecationMismatch " +
    "--hide HiddenSuperclass " +
    "--hide HiddenTypedefConstant " +
    "--hide HiddenTypeParameter " +
    "--hide MissingPermission " +
    "--hide RequiresPermission " +
    "--hide SdkConstant " +
    "--hide Todo " +
    "--hide Typo " +
    "--hide UnavailableSymbol "

// TODO: modularize this so not every module has the same whitelist
framework_packages_to_document = [
    "android",
    "dalvik",
    "java",
    "javax",
    "junit",
    "org.apache.http",
    "org.json",
    "org.w3c.dom",
    "org.xml.sax",
    "org.xmlpull",
]

// TODO: remove the hiding when server classes are cleaned up.
mainline_framework_stubs_args =
    mainline_stubs_args +
    "--hide-package com.android.server "

priv_apps = " " +
    "--show-annotation android.annotation.SystemApi\\(" +
        "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
    "\\) "

module_libs = " " +
    " --show-annotation android.annotation.SystemApi\\(" +
        "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" +
    "\\)" +
    " --show-for-stub-purposes-annotation android.annotation.SystemApi\\(" +
        "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
    "\\) "

mainline_service_stubs_args =
    mainline_stubs_args +
    "--show-annotation android.annotation.SystemApi\\(" +
        "client=android.annotation.SystemApi.Client.SYSTEM_SERVER" +
    "\\) " +
    "--hide-annotation android.annotation.Hide " +
    "--hide InternalClasses " // com.android.* classes are okay in this interface

// Defaults common to all mainline module java_sdk_library instances.
java_defaults {
    name: "framework-module-common-defaults",

    // Additional annotations used for compiling both the implementation and the
    // stubs libraries.
    libs: ["framework-annotations-lib"],

    // Framework modules are not generally shared libraries, i.e. they are not
    // intended, and must not be allowed, to be used in a <uses-library> manifest
    // entry.
    shared_library: false,

    // Prevent dependencies that do not specify an sdk_version from accessing the
    // implementation library by default and force them to use stubs instead.
    default_to_stubs: true,

    // Enable api lint. This will eventually become the default for java_sdk_library
    // but it cannot yet be turned on because some usages have not been cleaned up.
    // TODO(b/156126315) - Remove when no longer needed.
    api_lint: {
        enabled: true,
    },

    // The API scope specific properties.
    public: {
        enabled: true,
        sdk_version: "module_current",
    },

    // installable implies we'll create a non-apex (platform) variant, which
    // we shouldn't ordinarily need (and it can create issues), so disable that.
    installable: false,

    // Configure framework module specific metalava options.
    droiddoc_options: [mainline_stubs_args],

    annotations_enabled: true,

    // Allow access to the stubs from anywhere
    visibility: ["//visibility:public"],
    stubs_library_visibility: ["//visibility:public"],

    // Hide impl library and stub sources
    impl_library_visibility: [
        ":__pkg__",
        "//frameworks/base", // For framework-all
    ],
    stubs_source_visibility: ["//visibility:private"],

    defaults_visibility: ["//visibility:private"],

    // Collates API usages from each module for further analysis.
    plugins: ["java_api_finder"],

    // Mainline modules should only rely on 'module_lib' APIs provided by other modules
    // and the non updatable parts of the platform.
    sdk_version: "module_current",
}

// Defaults for mainline module provided java_sdk_library instances.
java_defaults {
    name: "framework-module-defaults",
    defaults: ["framework-module-common-defaults"],

    system: {
        enabled: true,
        sdk_version: "module_current",
    },
    module_lib: {
        enabled: true,
        sdk_version: "module_current",
    },
    defaults_visibility: [
        ":__subpackages__",
        "//frameworks/base/libs/hwui",
        "//frameworks/base/wifi",
        "//packages/modules:__subpackages__",
        "//packages/providers/MediaProvider:__subpackages__",
    ],
}

// Defaults for mainline module system server provided java_sdk_library instances.
java_defaults {
    name: "framework-system-server-module-defaults",
    defaults: ["framework-module-common-defaults"],

    system_server: {
        enabled: true,
        sdk_version: "module_current",
    },
    defaults_visibility: [
        ":__subpackages__",
        "//packages/modules:__subpackages__",
    ],
}

stubs_defaults {
    name: "service-module-stubs-srcs-defaults",
    args: mainline_service_stubs_args,
    installable: false,
    annotations_enabled: true,
    merge_annotations_dirs: [
        "metalava-manual",
    ],
    filter_packages: ["com.android."],
    check_api: {
        current: {
            api_file: "api/current.txt",
            removed_api_file: "api/removed.txt",
        },
        api_lint: {
            enabled: true,
        },
    },
    dist: {
        targets: ["sdk", "win_sdk"],
        dir: "apistubs/android/system-server/api",
    },
}

// Empty for now, but a convenient place to add rules for all
// module java_library system_server stub libs.
java_defaults {
    name: "service-module-stubs-defaults",
    dist: {
        targets: ["sdk", "win_sdk"],
        dir: "apistubs/android/system-server",
    },
}