load("@bazel_skylib//rules:copy_file.bzl", "copy_file") load("@rules_python//python:defs.bzl", "py_library") load("@py_deps//:requirements.bzl", "requirement") load("//proto:defs.bzl", "py_proto_library_typed") load("@rules_python//experimental/python:wheel.bzl", "py_package", "py_wheel") load("@bazel_skylib//lib:selects.bzl", "selects") load("@bazel_skylib//rules:copy_file.bzl", "copy_file") copy_file( name = "buildinfo", src = "//:buildinfo.txt", out = "buildinfo.txt", ) genrule( name = "rsbackend_gen", outs = ["rsbackend_gen.py"], cmd = "$(location //pylib:genbackend) > $@", tools = ["//pylib:genbackend"], ) genrule( name = "hooks_gen", outs = ["hooks_gen.py"], cmd = "$(location //pylib:genhooks) $@", tools = ["//pylib:genhooks"], ) py_proto_library_typed( name = "backend_pb2", src = "//proto:backend.proto", visibility = [ "//visibility:public", ], ) py_proto_library_typed( name = "fluent_pb2", src = "//rslib:fluent.proto", visibility = [ "//visibility:public", ], ) copy_file( name = "rsbridge_unix", src = "//pylib/rsbridge", out = "_rsbridge.so", ) copy_file( name = "rsbridge_win", src = "//pylib/rsbridge", out = "_rsbridge.pyd", ) alias( name = "rsbridge", actual = selects.with_or({ ( "@io_bazel_rules_rust//rust/platform:x86_64-pc-windows-msvc", "@io_bazel_rules_rust//rust/platform:i686-pc-windows-msvc", ): ":rsbridge_win", "//conditions:default": ":rsbridge_unix", }), visibility = ["//visibility:public"], ) py_library( name = "anki", srcs = glob([ "**/*.py", ]), data = [ "py.typed", ":backend_pb2", ":buildinfo", ":fluent_pb2", ":hooks_gen", ":rsbackend_gen", ":rsbridge", ], imports = [ "..", ], visibility = ["//visibility:public"], deps = [ requirement("protobuf"), requirement("decorator"), requirement("requests"), requirement("beautifulsoup4"), ], ) py_package( name = "anki_pkg", # Only include these Python packages. # packages = ["anki"], deps = [":anki"], ) py_wheel( name = "anki_whl", # Package data. We're building "example_minimal_package-0.0.1-py3-none-any.whl" distribution = "anki", python_tag = "py3", requires = [ "distro ; sys_platform != \"darwin\" and sys_platform != \"win32\"", ], strip_path_prefixes = [ "pylib", # "foo3", ], version = "0.0.1", deps = [":anki_pkg"], )