//
// Copyright (C) 2022 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.
//

// Build NullAway from sources for the platform
//
// Note: this is only intended to be used for the platform development. This is *not* intended
// to be used in the SDK where apps can use the official jacoco release.
package {
    default_applicable_licenses: ["external_nullaway_license"],
}

// See: http://go/android-license-faq
license {
    name: "external_nullaway_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-GPL-2.0-with-classpath-exception",
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "LICENSE.txt",
        "LICENSE",
        "NOTICE",
    ],
}

java_plugin {
    name: "nullaway_plugin",

    static_libs: [
        "nullaway_lib",
    ],
}

java_library_host {
    name: "nullaway_lib",

    srcs: ["nullaway/src/**/*.java"],

    exclude_srcs: ["nullaway/src/test/**/*.java"],

    static_libs: [
        "guava",
        "//external/error_prone:error_prone_checkerframework_dataflow_nullaway",
        "//external/error_prone:error_prone_core",
    ],

    libs: [
        "auto_service_annotations",
        "auto_value_annotations",
    ],

    plugins: [
        "auto_service_plugin",
        "auto_value_plugin",
    ],

    javacflags: [
        "--add-modules=jdk.compiler",
        "--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
        "--add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
        "--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
        "--add-exports jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED",
        "--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED",
        "--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
        "--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
    ],
}
