xref: /aosp_15_r20/external/snakeyaml/Android.bp (revision ac2a7c1bf4e14d82f3bd566dcc2d76d5b42faf34)
1*ac2a7c1bSSadaf Ebrahimi// Copyright (C) 2016 The Android Open Source Project
2*ac2a7c1bSSadaf Ebrahimi//
3*ac2a7c1bSSadaf Ebrahimi// Licensed under the Apache License, Version 2.0 (the "License");
4*ac2a7c1bSSadaf Ebrahimi// you may not use this file except in compliance with the License.
5*ac2a7c1bSSadaf Ebrahimi// You may obtain a copy of the License at
6*ac2a7c1bSSadaf Ebrahimi//
7*ac2a7c1bSSadaf Ebrahimi//      http://www.apache.org/licenses/LICENSE-2.0
8*ac2a7c1bSSadaf Ebrahimi//
9*ac2a7c1bSSadaf Ebrahimi// Unless required by applicable law or agreed to in writing, software
10*ac2a7c1bSSadaf Ebrahimi// distributed under the License is distributed on an "AS IS" BASIS,
11*ac2a7c1bSSadaf Ebrahimi// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*ac2a7c1bSSadaf Ebrahimi// See the License for the specific language governing permissions and
13*ac2a7c1bSSadaf Ebrahimi// limitations under the License.
14*ac2a7c1bSSadaf Ebrahimi//
15*ac2a7c1bSSadaf Ebrahimi
16*ac2a7c1bSSadaf Ebrahimi//
17*ac2a7c1bSSadaf Ebrahimi// Build support for snakeyaml within the Android Open Source Project
18*ac2a7c1bSSadaf Ebrahimi// See https://source.android.com/source/building.html for more information
19*ac2a7c1bSSadaf Ebrahimi//
20*ac2a7c1bSSadaf Ebrahimi
21*ac2a7c1bSSadaf Ebrahimi// List of all files that need to be patched (see src/patches/android)
22*ac2a7c1bSSadaf Ebrahimipackage {
23*ac2a7c1bSSadaf Ebrahimi    default_applicable_licenses: ["external_snakeyaml_license"],
24*ac2a7c1bSSadaf Ebrahimi}
25*ac2a7c1bSSadaf Ebrahimi
26*ac2a7c1bSSadaf Ebrahimi// Added automatically by a large-scale-change that took the approach of
27*ac2a7c1bSSadaf Ebrahimi// 'apply every license found to every target'. While this makes sure we respect
28*ac2a7c1bSSadaf Ebrahimi// every license restriction, it may not be entirely correct.
29*ac2a7c1bSSadaf Ebrahimi//
30*ac2a7c1bSSadaf Ebrahimi// e.g. GPL in an MIT project might only apply to the contrib/ directory.
31*ac2a7c1bSSadaf Ebrahimi//
32*ac2a7c1bSSadaf Ebrahimi// Please consider splitting the single license below into multiple licenses,
33*ac2a7c1bSSadaf Ebrahimi// taking care not to lose any license_kind information, and overriding the
34*ac2a7c1bSSadaf Ebrahimi// default license using the 'licenses: [...]' property on targets as needed.
35*ac2a7c1bSSadaf Ebrahimi//
36*ac2a7c1bSSadaf Ebrahimi// For unused files, consider creating a 'fileGroup' with "//visibility:private"
37*ac2a7c1bSSadaf Ebrahimi// to attach the license to, and including a comment whether the files may be
38*ac2a7c1bSSadaf Ebrahimi// used in the current project.
39*ac2a7c1bSSadaf Ebrahimi//
40*ac2a7c1bSSadaf Ebrahimi// large-scale-change included anything that looked like it might be a license
41*ac2a7c1bSSadaf Ebrahimi// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
42*ac2a7c1bSSadaf Ebrahimi//
43*ac2a7c1bSSadaf Ebrahimi// Please consider removing redundant or irrelevant files from 'license_text:'.
44*ac2a7c1bSSadaf Ebrahimi//
45*ac2a7c1bSSadaf Ebrahimi// large-scale-change filtered out the below license kinds as false-positives:
46*ac2a7c1bSSadaf Ebrahimi//   SPDX-license-identifier-GPL
47*ac2a7c1bSSadaf Ebrahimi//   SPDX-license-identifier-LGPL
48*ac2a7c1bSSadaf Ebrahimi// See: http://go/android-license-faq
49*ac2a7c1bSSadaf Ebrahimilicense {
50*ac2a7c1bSSadaf Ebrahimi    name: "external_snakeyaml_license",
51*ac2a7c1bSSadaf Ebrahimi    visibility: [":__subpackages__"],
52*ac2a7c1bSSadaf Ebrahimi    license_kinds: [
53*ac2a7c1bSSadaf Ebrahimi        "SPDX-license-identifier-Apache-2.0",
54*ac2a7c1bSSadaf Ebrahimi        "SPDX-license-identifier-BSD",
55*ac2a7c1bSSadaf Ebrahimi    ],
56*ac2a7c1bSSadaf Ebrahimi    license_text: [
57*ac2a7c1bSSadaf Ebrahimi        "LICENSE.txt",
58*ac2a7c1bSSadaf Ebrahimi        "LICENSE",
59*ac2a7c1bSSadaf Ebrahimi    ],
60*ac2a7c1bSSadaf Ebrahimi}
61*ac2a7c1bSSadaf Ebrahimi
62*ac2a7c1bSSadaf Ebrahimisnakeyaml_need_patch_src_files = [
63*ac2a7c1bSSadaf Ebrahimi    "src/main/java/org/yaml/snakeyaml/introspector/PropertyUtils.java",
64*ac2a7c1bSSadaf Ebrahimi]
65*ac2a7c1bSSadaf Ebrahimi
66*ac2a7c1bSSadaf Ebrahimigenrule {
67*ac2a7c1bSSadaf Ebrahimi    name: "snakeyaml_patched_src_files",
68*ac2a7c1bSSadaf Ebrahimi    srcs: snakeyaml_need_patch_src_files,
69*ac2a7c1bSSadaf Ebrahimi    tool_files: [
70*ac2a7c1bSSadaf Ebrahimi        "patch-android-src",
71*ac2a7c1bSSadaf Ebrahimi        "src/patches/android/*.patch",
72*ac2a7c1bSSadaf Ebrahimi    ],
73*ac2a7c1bSSadaf Ebrahimi    tools: [
74*ac2a7c1bSSadaf Ebrahimi        "soong_zip",
75*ac2a7c1bSSadaf Ebrahimi    ],
76*ac2a7c1bSSadaf Ebrahimi    cmd: "for src in $(in); do " +
77*ac2a7c1bSSadaf Ebrahimi        "   $(location patch-android-src) external/snakeyaml/ $${src} $(genDir)/$${src}; " +
78*ac2a7c1bSSadaf Ebrahimi        " done && " +
79*ac2a7c1bSSadaf Ebrahimi        " $(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)",
80*ac2a7c1bSSadaf Ebrahimi    out: ["snakeyaml_patched_src_files.srcjar"],
81*ac2a7c1bSSadaf Ebrahimi}
82*ac2a7c1bSSadaf Ebrahimi
83*ac2a7c1bSSadaf Ebrahimijava_library {
84*ac2a7c1bSSadaf Ebrahimi    name: "snakeyaml",
85*ac2a7c1bSSadaf Ebrahimi    host_supported: true,
86*ac2a7c1bSSadaf Ebrahimi    hostdex: true,
87*ac2a7c1bSSadaf Ebrahimi    sdk_version: "core_current",
88*ac2a7c1bSSadaf Ebrahimi
89*ac2a7c1bSSadaf Ebrahimi    srcs: ["src/main/**/*.java"],
90*ac2a7c1bSSadaf Ebrahimi    target: {
91*ac2a7c1bSSadaf Ebrahimi        android: {
92*ac2a7c1bSSadaf Ebrahimi            exclude_srcs: snakeyaml_need_patch_src_files + [
93*ac2a7c1bSSadaf Ebrahimi                // List of all files that are unsupported on android (see pom.xml)
94*ac2a7c1bSSadaf Ebrahimi                "src/main/java/org/yaml/snakeyaml/introspector/MethodProperty.java",
95*ac2a7c1bSSadaf Ebrahimi            ],
96*ac2a7c1bSSadaf Ebrahimi            srcs: [":snakeyaml_patched_src_files"],
97*ac2a7c1bSSadaf Ebrahimi        },
98*ac2a7c1bSSadaf Ebrahimi    },
99*ac2a7c1bSSadaf Ebrahimi    // b/267831518: Pin tradefed and dependencies to Java 11.
100*ac2a7c1bSSadaf Ebrahimi    java_version: "11",
101*ac2a7c1bSSadaf Ebrahimi    errorprone: {
102*ac2a7c1bSSadaf Ebrahimi        javacflags: [
103*ac2a7c1bSSadaf Ebrahimi            "-Xep:ReturnValueIgnored:WARN",
104*ac2a7c1bSSadaf Ebrahimi        ],
105*ac2a7c1bSSadaf Ebrahimi    },
106*ac2a7c1bSSadaf Ebrahimi}
107*ac2a7c1bSSadaf Ebrahimi
108*ac2a7c1bSSadaf Ebrahimi// TODO: Consider adding tests.
109