1load("@rules_python//python:pip.bzl", "compile_pip_requirements")
2
3genrule(
4    name = "generate_requirements_extra_in",
5    srcs = [],
6    outs = ["requirements_extra.in"],
7    cmd = "echo 'setuptools~=65.6.3' > $@",
8)
9
10genrule(
11    name = "generate_requirements_in",
12    srcs = [],
13    outs = ["requirements.in"],
14    cmd = """
15cat > $@ <<EOF
16-r requirements_extra.in
17pip~=22.3.1
18EOF
19""",
20)
21
22compile_pip_requirements(
23    name = "requirements",
24    src = "requirements.txt",
25    data = [
26        "requirements.in",
27        "requirements_extra.in",
28    ],
29    requirements_txt = "requirements_lock.txt",
30)
31
32compile_pip_requirements(
33    name = "requirements_nohashes",
34    src = "requirements.txt",
35    data = [
36        "requirements.in",
37        "requirements_extra.in",
38    ],
39    generate_hashes = False,
40    requirements_txt = "requirements_nohashes_lock.txt",
41)
42
43genrule(
44    name = "generate_os_specific_requirements_in",
45    srcs = [],
46    outs = ["requirements_os_specific.in"],
47    cmd = """
48cat > $@ <<EOF
49pip==22.3.0 ; sys_platform == "linux"
50pip==22.2.2 ; sys_platform == "darwin"
51pip==22.2.1 ; sys_platform == "win32"
52EOF
53""",
54)
55
56compile_pip_requirements(
57    name = "os_specific_requirements",
58    src = "requirements_os_specific.in",
59    data = [
60        "requirements_extra.in",
61        "requirements_os_specific.in",
62    ],
63    requirements_darwin = "requirements_lock_darwin.txt",
64    requirements_linux = "requirements_lock_linux.txt",
65    requirements_txt = "requirements_lock.txt",
66    requirements_windows = "requirements_lock_windows.txt",
67)
68