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

Commit fd7056c7 authored by Anton Hansson's avatar Anton Hansson Committed by Gerrit Code Review
Browse files

Merge changes I5719ba0f,I5f3106b7,I3fd90c2d

* changes:
  Move framework proto build rules to separate file
  Move font tool build rules to subdir
  Move build modules from top-level to core/java/
parents 15ee3b3c 92b6c725
Loading
Loading
Loading
Loading
+1 −525
Original line number Diff line number Diff line
@@ -257,37 +257,6 @@ filegroup {
    srcs: ["framework-jarjar-rules.txt"],
}

filegroup {
    name: "libincident_aidl",
    srcs: [
        "core/java/android/os/IIncidentDumpCallback.aidl",
        "core/java/android/os/IIncidentManager.aidl",
        "core/java/android/os/IIncidentReportStatusListener.aidl",
    ],
    path: "core/java",
}

filegroup {
    name: "libvibrator_aidl",
    srcs: [
        "core/java/android/os/IExternalVibrationController.aidl",
        "core/java/android/os/IExternalVibratorService.aidl",
    ],
    path: "core/java",
}

filegroup {
    name: "libpowermanager_aidl",
    srcs: [
        "core/java/android/os/Temperature.aidl",
        "core/java/android/os/CoolingDevice.aidl",
        "core/java/android/os/IThermalEventListener.aidl",
        "core/java/android/os/IThermalStatusListener.aidl",
        "core/java/android/os/IThermalService.aidl",
    ],
    path: "core/java",
}

java_library {
    name: "framework-minus-apex",
    defaults: ["framework-aidl-export-defaults"],
@@ -376,84 +345,6 @@ platform_compat_config {
    src: ":framework-minus-apex",
}

genrule {
    name: "statslog-framework-java-gen",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --java $(out) --module framework" +
        " --javaPackage com.android.internal.util --javaClass FrameworkStatsLog --worksource",
    out: ["com/android/internal/util/FrameworkStatsLog.java"],
}

java_library {
    name: "uieventloggerlib",
    srcs: [
        "core/java/com/android/internal/logging/UiEvent.java",
        "core/java/com/android/internal/logging/UiEventLogger.java",
        "core/java/com/android/internal/logging/UiEventLoggerImpl.java",
        "core/java/com/android/internal/logging/InstanceId.java",
        "core/java/com/android/internal/logging/InstanceIdSequence.java",
        ":statslog-framework-java-gen",
    ],
}

gensrcs {
    name: "framework-javastream-protos",
    depfile: true,

    tools: [
        "aprotoc",
        "protoc-gen-javastream",
        "soong_zip",
    ],

    cmd: "mkdir -p $(genDir)/$(in) " +
        "&& $(location aprotoc) " +
        "  --plugin=$(location protoc-gen-javastream) " +
        "  --dependency_out=$(depfile) " +
        "  --javastream_out=$(genDir)/$(in) " +
        "  -Iexternal/protobuf/src " +
        "  -I . " +
        "  $(in) " +
        "&& $(location soong_zip) -jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)",

    srcs: [
        ":ipconnectivity-proto-src",
        ":libstats_atom_enum_protos",
        ":libtombstone_proto-src",
        "core/proto/**/*.proto",
        "libs/incident/**/*.proto",
    ],
    output_extension: "srcjar",
}

gensrcs {
    name: "framework-cppstream-protos",
    depfile: true,

    tools: [
        "aprotoc",
        "protoc-gen-cppstream",
    ],

    cmd: "mkdir -p $(genDir) " +
        "&& $(location aprotoc) " +
        "  --plugin=$(location protoc-gen-cppstream) " +
        "  --dependency_out=$(depfile) " +
        "  --cppstream_out=$(genDir) " +
        "  -Iexternal/protobuf/src " +
        "  -I . " +
        "  $(in)",

    srcs: [
        ":ipconnectivity-proto-src",
        ":libstats_atom_enum_protos",
        "core/proto/**/*.proto",
        "libs/incident/**/*.proto",
    ],

    output_extension: "proto.h",
}

filegroup {
    name: "framework-annotations",
    srcs: [
@@ -528,30 +419,6 @@ filegroup {
    ],
}

filegroup {
    name: "framework-services-net-module-wifi-shared-srcs",
    srcs: [
        "core/java/android/net/DhcpResults.java",
        "core/java/android/util/LocalLog.java",
    ],
}

// keep these files in sync with the package/Tethering/jarjar-rules.txt and
// package/Connectivity/jarjar-rules.txt for the tethering module and connectivity module.
filegroup {
    name: "framework-connectivity-shared-srcs",
    srcs: [
        "core/java/android/util/LocalLog.java",
        // This should be android.util.IndentingPrintWriter, but it's not available in all branches.
        "core/java/com/android/internal/util/IndentingPrintWriter.java",
        "core/java/com/android/internal/util/IState.java",
        "core/java/com/android/internal/util/MessageUtils.java",
        "core/java/com/android/internal/util/State.java",
        "core/java/com/android/internal/util/StateMachine.java",
        "core/java/com/android/internal/util/WakeupMessage.java",
    ],
}

// Build ext.jar
// ============================================================
java_library {
@@ -566,371 +433,6 @@ java_library {
    dxflags: ["--core-library"],
}

// ====  java proto host library  ==============================
java_library_host {
    name: "platformprotos",
    srcs: [
        ":ipconnectivity-proto-src",
        ":libstats_atom_enum_protos",
        ":libstats_internal_protos",
        ":statsd_internal_protos",
        "cmds/am/proto/instrumentation_data.proto",
        "cmds/statsd/src/**/*.proto",
        "core/proto/**/*.proto",
        "libs/incident/proto/**/*.proto",
    ],
    proto: {
        include_dirs: [
            "external/protobuf/src",
            "frameworks/proto_logging/stats",
        ],
        type: "full",
    },
    errorprone: {
        javacflags: ["-Xep:MissingOverride:OFF"], // b/72714520
    },
}

// ====  java proto device library (for test only)  ==============================
java_library {
    name: "platformprotosnano",
    proto: {
        type: "nano",
        output_params: ["store_unknown_fields=true"],
        include_dirs: ["external/protobuf/src"],
    },
    exclude_srcs: [
        "core/proto/android/privacy.proto",
        "core/proto/android/section.proto",
    ],
    sdk_version: "9",
    srcs: [
        ":ipconnectivity-proto-src",
        ":libstats_atom_enum_protos",
        "core/proto/**/*.proto",
        "libs/incident/proto/android/os/**/*.proto",
    ],
}

// ====  java proto device library (for test only)  ==============================
java_library {
    name: "platformprotoslite",
    proto: {
        type: "lite",
        include_dirs: ["external/protobuf/src"],
    },

    srcs: [
        ":ipconnectivity-proto-src",
        ":libstats_atom_enum_protos",
        "core/proto/**/*.proto",
        "libs/incident/proto/android/os/**/*.proto",
    ],
    exclude_srcs: [
        "core/proto/android/privacy.proto",
        "core/proto/android/section.proto",
    ],
    sdk_version: "core_current",
    // Protos have lots of MissingOverride and similar.
    errorprone: {
        javacflags: ["-XepDisableAllChecks"],
    },
}

// ====  c++ proto device library  ==============================
cc_defaults {
    name: "libplatformprotos-defaults",

    proto: {
        export_proto_headers: true,
        include_dirs: [
            "external/protobuf/src",
        ],
    },

    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
    ],

    srcs: [
        ":ipconnectivity-proto-src",
        ":libstats_atom_enum_protos",
        "core/proto/**/*.proto",
    ],
}

cc_library {
    name: "libplatformprotos",
    defaults: ["libplatformprotos-defaults"],
    host_supported: true,

    target: {
        host: {
            proto: {
                type: "full",
            },
        },
        android: {
            proto: {
                type: "lite",
            },
            shared_libs: [
                "libprotobuf-cpp-lite",
            ],
            shared: {
                enabled: false,
            },
        },
    },
}

// This library is meant for vendor code that needs to output protobuf. It links
// against the static version of libprotobuf-cpp-lite, for which we can not guarantee
// binary compatibility.
cc_library {
    name: "libplatformprotos-static",
    defaults: ["libplatformprotos-defaults"],
    host_supported: false,

    // This is okay because this library is only built as a static library.  The C++
    // API is not guaranteed. The proto API is guaranteed to be stable via Metrics Council,
    // but is not authorized to be used outside of debugging.
    vendor_available: true,

    target: {
        android: {
            proto: {
                type: "lite",
            },
            static_libs: [
                "libprotobuf-cpp-lite",
            ],
            shared: {
                enabled: false,
            },
        },
    },
}

// This is the full proto version of libplatformprotos. It may only
// be used by test code that is not shipped on the device.
cc_library {
    name: "libplatformprotos-test",
    defaults: ["libplatformprotos-defaults"],
    host_supported: false,

    target: {
        android: {
            proto: {
                type: "full",
            },
            shared: {
                enabled: false,
            },
        },
    },
}

filegroup {
    name: "incremental_aidl",
    srcs: [
        "core/java/android/os/incremental/IIncrementalServiceConnector.aidl",
        "core/java/android/os/incremental/IncrementalFileSystemControlParcel.aidl",
    ],
    path: "core/java",
}

filegroup {
    name: "dataloader_aidl",
    srcs: [
        "core/java/android/content/pm/DataLoaderParamsParcel.aidl",
        "core/java/android/content/pm/DataLoaderType.aidl",
        "core/java/android/content/pm/FileSystemControlParcel.aidl",
        "core/java/android/content/pm/IDataLoader.aidl",
        "core/java/android/content/pm/IDataLoaderManager.aidl",
        "core/java/android/content/pm/InstallationFileParcel.aidl",
        "core/java/android/content/pm/InstallationFileLocation.aidl",
        "core/java/android/content/pm/IDataLoaderStatusListener.aidl",
        "core/java/android/content/pm/IPackageInstallerSessionFileSystemConnector.aidl",
    ],
    path: "core/java",
}

filegroup {
    name: "incremental_manager_aidl",
    srcs: [
        "core/java/android/os/incremental/IIncrementalService.aidl",
        "core/java/android/os/incremental/IncrementalNewFileParams.aidl",
        "core/java/android/os/incremental/IStorageHealthListener.aidl",
        "core/java/android/os/incremental/StorageHealthCheckParams.aidl",
    ],
    path: "core/java",
}

filegroup {
    name: "activity_manager_procstate_aidl",
    srcs: [
        // internal only
    ],
    path: "core/java",
}

aidl_interface {
    name: "libincremental_aidl",
    unstable: true,
    srcs: [
        ":incremental_aidl",
    ],
    backend: {
        java: {
            sdk_version: "28",
        },
        cpp: {
            enabled: true,
        },
        ndk: {
            enabled: true,
        },
    },
}

aidl_interface {
    name: "libdataloader_aidl",
    unstable: true,
    srcs: [
        ":dataloader_aidl",
    ],
    imports: [
        "libincremental_aidl",
    ],
    backend: {
        java: {
            sdk_version: "28",
        },
        cpp: {
            enabled: true,
        },
        ndk: {
            enabled: false,
        },
    },
}

aidl_interface {
    name: "libincremental_manager_aidl",
    unstable: true,
    srcs: [
        ":incremental_manager_aidl",
    ],
    imports: [
        "libincremental_aidl",
        "libdataloader_aidl",
    ],
    backend: {
        java: {
            sdk_version: "28",
        },
        cpp: {
            enabled: true,
        },
        ndk: {
            enabled: false,
        },
    },
}

// Build Rust bindings for PermissionController. Needed by keystore2.
aidl_interface {
    name: "android.os.permissions_aidl",
    unstable: true,
    local_include_dir: "core/java",
    srcs: [
        "core/java/android/os/IPermissionController.aidl",
    ],
    backend: {
        rust: {
            enabled: true,
        },
    },
}

python_defaults {
    name: "base_default",
    version: {
        py2: {
            enabled: false,
            embedded_launcher: false,
        },
        py3: {
            enabled: true,
            embedded_launcher: true,
        },
    },
}

python_binary_host {
    name: "fontchain_linter",
    defaults: ["base_default"],
    main: "tools/fonts/fontchain_linter.py",
    srcs: [
        "tools/fonts/fontchain_linter.py",
    ],
    libs: [
        "fontTools",
    ],
}

// Avoid including Parcelable classes as we don't want to have two copies of
// Parcelable cross the libraries. This is used by telephony-common (frameworks/opt/telephony)
// and TeleService app (packages/services/Telephony).
filegroup {
    name: "framework-telephony-common-shared-srcs",
    srcs: [
        "core/java/android/os/RegistrantList.java",
        "core/java/android/os/Registrant.java",
        "core/java/android/util/LocalLog.java",
        "core/java/android/util/TimeUtils.java",
        "core/java/com/android/internal/os/SomeArgs.java",
        "core/java/com/android/internal/util/AsyncChannel.java",
        "core/java/com/android/internal/util/AsyncService.java",
        "core/java/com/android/internal/util/BitwiseInputStream.java",
        "core/java/com/android/internal/util/FastXmlSerializer.java",
        "core/java/com/android/internal/util/HexDump.java",
        "core/java/com/android/internal/util/IState.java",
        "core/java/com/android/internal/util/IndentingPrintWriter.java",
        "core/java/com/android/internal/util/Preconditions.java",
        "core/java/com/android/internal/util/State.java",
        "core/java/com/android/internal/util/StateMachine.java",
        "core/java/com/android/internal/util/UserIcons.java",
    ],
}

// Avoid including Parcelable classes as we don't want to have two copies of
// Parcelable cross the process.
filegroup {
    name: "framework-cellbroadcast-shared-srcs",
    srcs: [
        "core/java/android/os/HandlerExecutor.java",
        "core/java/android/util/LocalLog.java",
        "core/java/com/android/internal/util/IState.java",
        "core/java/com/android/internal/util/Preconditions.java",
        "core/java/com/android/internal/util/State.java",
        "core/java/com/android/internal/util/StateMachine.java",
    ],
}

filegroup {
    name: "framework-ims-common-shared-srcs",
    srcs: [
        "core/java/android/os/RegistrantList.java",
        "core/java/android/os/Registrant.java",
        "core/java/com/android/internal/os/SomeArgs.java",
        "core/java/com/android/internal/util/Preconditions.java",
    ],
}

// utility classes statically linked into framework-wifi and dynamically linked
// into wifi-service
java_library {
@@ -959,33 +461,6 @@ java_library {
    ],
}

filegroup {
    name: "framework-wifi-util-lib-aidls",
    srcs: ["core/java/android/content/pm/ParceledListSlice.aidl"],
    path: "core/java",
}

// utility classes statically linked into wifi-service
filegroup {
    name: "framework-wifi-service-shared-srcs",
    srcs: [
        "core/java/android/net/InterfaceConfiguration.java",
        "core/java/android/util/BackupUtils.java",
        "core/java/android/util/Rational.java",
        "core/java/com/android/internal/util/FastXmlSerializer.java",
        "core/java/com/android/internal/util/HexDump.java",
        "core/java/com/android/internal/util/IState.java",
        "core/java/com/android/internal/util/MessageUtils.java",
        "core/java/com/android/internal/util/State.java",
        "core/java/com/android/internal/util/StateMachine.java",
        "core/java/com/android/internal/util/WakeupMessage.java",
    ],
    visibility: [
        "//frameworks/opt/net/wifi/service",
        "//packages/modules/Wifi/service",
    ],
}

// TODO(b/145644363): move this to under StubLibraries.bp or ApiDocs.bp
metalava_framework_docs_args = "--manifest $(location core/res/AndroidManifest.xml) " +
    "--hide-package com.android.server " +
@@ -1019,4 +494,5 @@ filegroup {
build = [
    "StubLibraries.bp",
    "ApiDocs.bp",
    "ProtoLibraries.bp",
]
+1 −0
Original line number Diff line number Diff line
@@ -30,3 +30,4 @@ per-file Android.bp = file:platform/build/soong:/OWNERS
per-file Android.mk = file:platform/build/soong:/OWNERS
per-file ApiDocs.bp = file:platform/build/soong:/OWNERS
per-file StubLibraries.bp = file:platform/build/soong:/OWNERS
per-file ProtoLibraries.bp = file:platform/build/soong:/OWNERS

ProtoLibraries.bp

0 → 100644
+238 −0
Original line number Diff line number Diff line
// Copyright (C) 2021 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.

gensrcs {
    name: "framework-javastream-protos",
    depfile: true,

    tools: [
        "aprotoc",
        "protoc-gen-javastream",
        "soong_zip",
    ],

    cmd: "mkdir -p $(genDir)/$(in) " +
        "&& $(location aprotoc) " +
        "  --plugin=$(location protoc-gen-javastream) " +
        "  --dependency_out=$(depfile) " +
        "  --javastream_out=$(genDir)/$(in) " +
        "  -Iexternal/protobuf/src " +
        "  -I . " +
        "  $(in) " +
        "&& $(location soong_zip) -jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)",

    srcs: [
        ":ipconnectivity-proto-src",
        ":libstats_atom_enum_protos",
        ":libtombstone_proto-src",
        "core/proto/**/*.proto",
        "libs/incident/**/*.proto",
    ],
    output_extension: "srcjar",
}

gensrcs {
    name: "framework-cppstream-protos",
    depfile: true,

    tools: [
        "aprotoc",
        "protoc-gen-cppstream",
    ],

    cmd: "mkdir -p $(genDir) " +
        "&& $(location aprotoc) " +
        "  --plugin=$(location protoc-gen-cppstream) " +
        "  --dependency_out=$(depfile) " +
        "  --cppstream_out=$(genDir) " +
        "  -Iexternal/protobuf/src " +
        "  -I . " +
        "  $(in)",

    srcs: [
        ":ipconnectivity-proto-src",
        ":libstats_atom_enum_protos",
        "core/proto/**/*.proto",
        "libs/incident/**/*.proto",
    ],

    output_extension: "proto.h",
}

// ====  java proto host library  ==============================
java_library_host {
    name: "platformprotos",
    srcs: [
        ":ipconnectivity-proto-src",
        ":libstats_atom_enum_protos",
        ":libstats_internal_protos",
        ":statsd_internal_protos",
        "cmds/am/proto/instrumentation_data.proto",
        "cmds/statsd/src/**/*.proto",
        "core/proto/**/*.proto",
        "libs/incident/proto/**/*.proto",
    ],
    proto: {
        include_dirs: [
            "external/protobuf/src",
            "frameworks/proto_logging/stats",
        ],
        type: "full",
    },
    errorprone: {
        javacflags: ["-Xep:MissingOverride:OFF"], // b/72714520
    },
}

// ====  java proto device library (for test only)  ==============================
java_library {
    name: "platformprotosnano",
    proto: {
        type: "nano",
        output_params: ["store_unknown_fields=true"],
        include_dirs: ["external/protobuf/src"],
    },
    exclude_srcs: [
        "core/proto/android/privacy.proto",
        "core/proto/android/section.proto",
    ],
    sdk_version: "9",
    srcs: [
        ":ipconnectivity-proto-src",
        ":libstats_atom_enum_protos",
        "core/proto/**/*.proto",
        "libs/incident/proto/android/os/**/*.proto",
    ],
}

// ====  java proto device library (for test only)  ==============================
java_library {
    name: "platformprotoslite",
    proto: {
        type: "lite",
        include_dirs: ["external/protobuf/src"],
    },

    srcs: [
        ":ipconnectivity-proto-src",
        ":libstats_atom_enum_protos",
        "core/proto/**/*.proto",
        "libs/incident/proto/android/os/**/*.proto",
    ],
    exclude_srcs: [
        "core/proto/android/privacy.proto",
        "core/proto/android/section.proto",
    ],
    sdk_version: "core_current",
    // Protos have lots of MissingOverride and similar.
    errorprone: {
        javacflags: ["-XepDisableAllChecks"],
    },
}

// ====  c++ proto device library  ==============================
cc_defaults {
    name: "libplatformprotos-defaults",

    proto: {
        export_proto_headers: true,
        include_dirs: [
            "external/protobuf/src",
        ],
    },

    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
    ],

    srcs: [
        ":ipconnectivity-proto-src",
        ":libstats_atom_enum_protos",
        "core/proto/**/*.proto",
    ],
}

cc_library {
    name: "libplatformprotos",
    defaults: ["libplatformprotos-defaults"],
    host_supported: true,

    target: {
        host: {
            proto: {
                type: "full",
            },
        },
        android: {
            proto: {
                type: "lite",
            },
            shared_libs: [
                "libprotobuf-cpp-lite",
            ],
            shared: {
                enabled: false,
            },
        },
    },
}

// This library is meant for vendor code that needs to output protobuf. It links
// against the static version of libprotobuf-cpp-lite, for which we can not guarantee
// binary compatibility.
cc_library {
    name: "libplatformprotos-static",
    defaults: ["libplatformprotos-defaults"],
    host_supported: false,

    // This is okay because this library is only built as a static library.  The C++
    // API is not guaranteed. The proto API is guaranteed to be stable via Metrics Council,
    // but is not authorized to be used outside of debugging.
    vendor_available: true,

    target: {
        android: {
            proto: {
                type: "lite",
            },
            static_libs: [
                "libprotobuf-cpp-lite",
            ],
            shared: {
                enabled: false,
            },
        },
    },
}

// This is the full proto version of libplatformprotos. It may only
// be used by test code that is not shipped on the device.
cc_library {
    name: "libplatformprotos-test",
    defaults: ["libplatformprotos-defaults"],
    host_supported: false,

    target: {
        android: {
            proto: {
                type: "full",
            },
            shared: {
                enabled: false,
            },
        },
    },
}
+266 −0

File changed.

Preview size limit exceeded, changes collapsed.

tools/fonts/Android.bp

0 → 100644
+39 −0
Original line number Diff line number Diff line
// Copyright (C) 2021 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.

python_defaults {
    name: "fonts_python_defaults",
    version: {
        py2: {
            enabled: false,
            embedded_launcher: false,
        },
        py3: {
            enabled: true,
            embedded_launcher: true,
        },
    },
}

python_binary_host {
    name: "fontchain_linter",
    defaults: ["fonts_python_defaults"],
    main: "fontchain_linter.py",
    srcs: [
        "fontchain_linter.py",
    ],
    libs: [
        "fontTools",
    ],
}