1// Copyright 2019 Google Inc. All rights reserved.
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// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
16//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
17//     DEPENDING ON IT IN YOUR PROJECT. ***
18package {
19    // See: http://go/android-license-faq
20    // A large-scale-change added 'default_applicable_licenses' to import
21    // all of the 'license_kinds' from "external_python_cpython3_license"
22    // to get the below license kinds:
23    //   SPDX-license-identifier-Apache-2.0
24    //   SPDX-license-identifier-BSD
25    //   SPDX-license-identifier-GPL
26    //   SPDX-license-identifier-MIT
27    //   SPDX-license-identifier-PSF-2.0
28    //   SPDX-license-identifier-Unicode-DFS
29    //   SPDX-license-identifier-Zlib
30    //   legacy_by_exception_only (by exception only)
31    //   legacy_notice
32    //   legacy_unencumbered
33    default_applicable_licenses: ["external_python_cpython3_license"],
34}
35
36filegroup {
37    name: "py3-stdlib-srcs",
38    visibility: ["//visibility:private"],
39    srcs: [
40        "*.py",
41        "asyncio/**/*.py",
42        "collections/**/*.py",
43        "concurrent/**/*.py",
44        "ctypes/**/*.py",
45        "distutils/**/*.py",
46        "email/**/*.py",
47        "encodings/**/*.py",
48        "html/**/*.py",
49        "http/**/*.py",
50        "importlib/**/*.py",
51        "json/**/*.py",
52        "logging/**/*.py",
53        "multiprocessing/**/*.py",
54        "pydoc_data/**/*.py",
55        "sqlite3/**/*.py",
56        "unittest/**/*.py",
57        "urllib/**/*.py",
58        "wsgiref/**/*.py",
59        "xml/**/*.py",
60        "xmlrpc/**/*.py",
61    ],
62    exclude_srcs: [
63        "__phello__.foo.py",
64    ],
65}
66
67soong_config_module_type {
68    name: "cpython3_python_stdlib",
69    module_type: "python_library",
70    config_namespace: "cpython3",
71    bool_variables: ["force_build_host"],
72    properties: ["defaults"],
73}
74
75python_defaults {
76    name: "py3-stdlib-force-build",
77    defaults_visibility: ["//visibility:private"],
78    target: {
79        linux_glibc: {
80            exclude_srcs: [":py3-stdlib-prebuilt-srcs"],
81            srcs: [":py3-stdlib-srcs"],
82        },
83        darwin: {
84            exclude_srcs: [":py3-stdlib-prebuilt-srcs"],
85            srcs: [":py3-stdlib-srcs"],
86        },
87    },
88}
89
90cpython3_python_stdlib {
91    name: "py3-stdlib",
92    is_internal: true,
93    pkg_path: "stdlib",
94    host_supported: true,
95    target: {
96        android: {
97            srcs: [":py3-stdlib-srcs"],
98        },
99        linux_bionic: {
100            srcs: [":py3-stdlib-srcs"],
101        },
102        linux_glibc: {
103            srcs: [":py3-stdlib-prebuilt-srcs"],
104        },
105        darwin: {
106            srcs: [":py3-stdlib-prebuilt-srcs"],
107        },
108    },
109    soong_config_variables: {
110        force_build_host: {
111            defaults: ["py3-stdlib-force-build"],
112        },
113    },
114}
115
116// Used by prebuilts/build-tools/build-prebuilts.sh to update
117// prebuilts/build-tools/common/py3-stdlib
118genrule {
119    name: "py3-stdlib-zip",
120    visibility: ["//visibility:private"],
121    tools: ["soong_zip"],
122    cmd: "echo $(in) >$(genDir)/list && " +
123        "$(location soong_zip) -o $(out) -C external/python/cpython3/Lib -l $(genDir)/list",
124    srcs: [":py3-stdlib-srcs"],
125    out: ["py3-stdlib.zip"],
126}
127