1// Copyright (C) 2016 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15
16//
17// Build support for snakeyaml within the Android Open Source Project
18// See https://source.android.com/source/building.html for more information
19//
20
21// List of all files that need to be patched (see src/patches/android)
22snakeyaml_need_patch_src_files = [
23    "src/main/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructor.java",
24    "src/main/java/org/yaml/snakeyaml/constructor/Constructor.java",
25    "src/main/java/org/yaml/snakeyaml/introspector/PropertyUtils.java",
26    "src/main/java/org/yaml/snakeyaml/representer/Representer.java",
27]
28
29genrule {
30    name: "snakeyaml_patched_src_files",
31    srcs: snakeyaml_need_patch_src_files,
32    tool_files: [
33        "patch-android-src",
34        "src/patches/android/*.patch",
35    ],
36    tools: [
37        "soong_zip",
38    ],
39    cmd: "for src in $(in); do " +
40        "   $(location patch-android-src) external/snakeyaml/ $${src} $(genDir)/$${src}; " +
41        " done && " +
42        " $(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)",
43    out: ["snakeyaml_patched_src_files.srcjar"],
44}
45
46java_library {
47    name: "snakeyaml",
48    host_supported: true,
49    hostdex: true,
50    sdk_version: "core_current",
51
52    srcs: ["src/main/**/*.java"],
53    target: {
54        android: {
55            exclude_srcs: snakeyaml_need_patch_src_files + [
56                // List of all files that are unsupported on android (see pom.xml)
57                "src/main/java/org/yaml/snakeyaml/introspector/MethodProperty.java",
58            ],
59            srcs: [":snakeyaml_patched_src_files"],
60        },
61    },
62}
63
64// TODO: Consider adding tests.
65