Skip to content
Snippets Groups Projects
AconfigFlags.bp 8.26 KiB
Newer Older
// Copyright (C) 2023 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

    // !!! KEEP THIS LIST ALPHABETICAL !!!
    ":aconfig_mediacodec_flags_java_lib{.generated_srcjars}",
    ":android.content.pm.flags-aconfig-java{.generated_srcjars}",
    ":android.content.res.flags-aconfig-java{.generated_srcjars}",
    ":android.hardware.biometrics.flags-aconfig-java{.generated_srcjars}",
    ":android.net.vcn.flags-aconfig-java{.generated_srcjars}",
    ":android.nfc.flags-aconfig-java{.generated_srcjars}",
    ":android.os.flags-aconfig-java{.generated_srcjars}",
    ":android.security.flags-aconfig-java{.generated_srcjars}",
    ":com.android.hardware.camera2-aconfig-java{.generated_srcjars}",
    ":com.android.hardware.input-aconfig-java{.generated_srcjars}",
    ":com.android.net.flags-aconfig-java{.generated_srcjars}",
    ":com.android.text.flags-aconfig-java{.generated_srcjars}",
    ":com.android.window.flags.window-aconfig-java{.generated_srcjars}",
    // !!! KEEP THIS LIST ALPHABETICAL !!!
]

filegroup {
    name: "framework-minus-apex-aconfig-srcjars",
    srcs: aconfig_srcjars,
}

// Aconfig declarations and libraries for the core framework
java_defaults {
    name: "framework-minus-apex-aconfig-libraries",

    // Add java_aconfig_libraries to here to add them to the core framework
    // Add aconfig-annotations-lib as a dependency for the optimization
    libs: ["aconfig-annotations-lib"],
}

// Default flags for java_aconfig_libraries that go into framework-minus-apex
// These libraries will not work standalone
java_defaults {
    name: "framework-minus-apex-aconfig-java-defaults",
    sdk_version: "core_platform",
    libs: ["fake_device_config"],
}

// Camera
aconfig_declarations {
    name: "com.android.hardware.camera2-aconfig",
    package: "com.android.hardware.camera2",
    srcs: ["core/java/android/hardware/camera2/camera_platform.aconfig"],
}

java_aconfig_library {
    name: "com.android.hardware.camera2-aconfig-java",
    aconfig_declarations: "com.android.hardware.camera2-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// Window
aconfig_declarations {
    name: "com.android.window.flags.window-aconfig",
    package: "com.android.window.flags",
    srcs: ["core/java/android/window/flags/*.aconfig"],
}

java_aconfig_library {
    name: "com.android.window.flags.window-aconfig-java",
    aconfig_declarations: "com.android.window.flags.window-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
// Input
aconfig_declarations {
    name: "com.android.hardware.input.input-aconfig",
    package: "com.android.hardware.input",
    srcs: ["core/java/android/hardware/input/*.aconfig"],
}

java_aconfig_library {
    name: "com.android.hardware.input-aconfig-java",
    aconfig_declarations: "com.android.hardware.input.input-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],

// Text
aconfig_declarations {
    name: "com.android.text.flags-aconfig",
    package: "com.android.text.flags",
    srcs: ["core/java/android/text/flags/*.aconfig"],
}

java_aconfig_library {
    name: "com.android.text.flags-aconfig-java",
    aconfig_declarations: "com.android.text.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
// OS
aconfig_declarations {
    name: "android.os.flags-aconfig",
    package: "android.os",
    srcs: ["core/java/android/os/*.aconfig"],
}

java_aconfig_library {
    name: "android.os.flags-aconfig-java",
    aconfig_declarations: "android.os.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// NFC
aconfig_declarations {
    name: "android.nfc.flags-aconfig",
    package: "android.nfc",
    srcs: ["core/java/android/nfc/*.aconfig"],
}

cc_aconfig_library {
    name: "android_nfc_flags_aconfig_c_lib",
    vendor_available: true,
    aconfig_declarations: "android.nfc.flags-aconfig",
    apex_available: [
        "//apex_available:platform",
        "com.android.nfcservices",
        "nfc_nci.st21nfc.default",
    ],
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

java_aconfig_library {
    name: "android.nfc.flags-aconfig-java",
    aconfig_declarations: "android.nfc.flags-aconfig",
    min_sdk_version: "VanillaIceCream",
    apex_available: [
        "//apex_available:platform",
        "com.android.nfcservices",
    ],
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// Security
aconfig_declarations {
    name: "android.security.flags-aconfig",
    package: "android.security",
    srcs: ["core/java/android/security/*.aconfig"],
}

java_aconfig_library {
    name: "android.security.flags-aconfig-java",
    aconfig_declarations: "android.security.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

java_aconfig_library {
    name: "android.security.flags-aconfig-java-host",
    aconfig_declarations: "android.security.flags-aconfig",
    host_supported: true,
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
rust_aconfig_library {
    name: "libandroid_security_flags_rust",
    crate_name: "android_security_flags",
    aconfig_declarations: "android.security.flags-aconfig",
}

// Package Manager
aconfig_declarations {
    name: "android.content.pm.flags-aconfig",
    package: "android.content.pm",
    srcs: ["core/java/android/content/pm/flags.aconfig"],
}

java_aconfig_library {
    name: "android.content.pm.flags-aconfig-java",
    aconfig_declarations: "android.content.pm.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

java_aconfig_library {
    name: "android.content.pm.flags-aconfig-java-host",
    aconfig_declarations: "android.content.pm.flags-aconfig",
    host_supported: true,
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// Resources
aconfig_declarations {
    name: "android.content.res.flags-aconfig",
    package: "android.content.res",
    srcs: ["core/java/android/content/res/*.aconfig"],
}

java_aconfig_library {
    name: "android.content.res.flags-aconfig-java",
    aconfig_declarations: "android.content.res.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// Biometrics
aconfig_declarations {
    name: "android.hardware.biometrics.flags-aconfig",
    package: "android.hardware.biometrics",
    srcs: ["core/java/android/hardware/biometrics/flags.aconfig"],
}

java_aconfig_library {
    name: "android.hardware.biometrics.flags-aconfig-java",
    aconfig_declarations: "android.hardware.biometrics.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
// Networking
aconfig_declarations {
    name: "com.android.net.flags-aconfig",
    package: "com.android.net.flags",
    srcs: ["core/java/android/net/flags.aconfig"],
}

java_aconfig_library {
    name: "com.android.net.flags-aconfig-java",
    aconfig_declarations: "com.android.net.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
// Media
aconfig_declarations {
    name: "android.media.playback.flags-aconfig",
    package: "com.android.media.playback.flags",
    srcs: ["media/jni/playback_flags.aconfig"],
}

cc_aconfig_library {
    name: "android.media.playback.flags-aconfig-cc",
    aconfig_declarations: "android.media.playback.flags-aconfig",
}

java_aconfig_library {
    name: "android.media.playback.flags-aconfig-java",
    aconfig_declarations: "android.media.playback.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// VCN
aconfig_declarations {
    name: "android.net.vcn.flags-aconfig",
    package: "android.net.vcn",
    srcs: ["core/java/android/net/vcn/*.aconfig"],
}

java_aconfig_library {
    name: "android.net.vcn.flags-aconfig-java",
    aconfig_declarations: "android.net.vcn.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}