blob: c60fd580b0fd1e1e4a1057c43a7856108198adca [file] [log] [blame] [edit]
# @lint-ignore-every FBCODEBZLADDLOADS
load("//tools/build_defs:glob_defs.bzl", "subdir_glob")
# shared by internal and OSS BUCK
def define_tools_targets(
python_binary,
python_library,
python_test,
third_party,
torchgen_deps,
contacts = []):
python_library(
name = "substitutelib",
srcs = ["substitute.py"],
base_module = "",
)
python_binary(
name = "substitute",
main_module = "substitute",
visibility = ["PUBLIC"],
deps = [
":substitutelib",
],
)
python_library(
name = "jit",
srcs = glob([
"jit/*.py",
"jit/templates/*",
]),
base_module = "tools",
visibility = ["PUBLIC"],
deps = [
torchgen_deps,
],
)
python_binary(
name = "gen_unboxing_bin",
main_module = "tools.jit.gen_unboxing",
visibility = [
"PUBLIC",
],
deps = [
":jit",
],
)
python_library(
name = "gen_selected_mobile_ops_header",
srcs = ["lite_interpreter/gen_selected_mobile_ops_header.py"],
base_module = "tools",
visibility = ["PUBLIC"],
)
python_library(
name = "gen_oplist_lib",
srcs = subdir_glob([
("code_analyzer", "gen_oplist.py"),
("code_analyzer", "gen_op_registration_allowlist.py"),
]),
base_module = "tools.code_analyzer",
tests = [
":gen_oplist_test",
],
visibility = ["PUBLIC"],
deps = [
":gen_selected_mobile_ops_header",
torchgen_deps,
third_party("pyyaml"),
],
)
python_binary(
name = "gen_oplist",
main_module = "tools.code_analyzer.gen_oplist",
visibility = ["PUBLIC"],
deps = [
":gen_oplist_lib",
],
)
python_library(
name = "gen_operators_yaml_lib",
srcs = subdir_glob([
("code_analyzer", "gen_operators_yaml.py"),
("code_analyzer", "gen_op_registration_allowlist.py"),
]),
base_module = "",
tests = [
":gen_operators_yaml_test",
],
deps = [
third_party("pyyaml"),
torchgen_deps,
],
)
python_binary(
name = "gen_operators_yaml",
main_module = "gen_operators_yaml",
visibility = ["PUBLIC"],
deps = [
":gen_operators_yaml_lib",
],
)
python_library(
name = "autograd",
srcs = glob(["autograd/*.py"]),
base_module = "tools",
resources = [
"autograd/deprecated.yaml",
"autograd/derivatives.yaml",
"autograd/templates/ADInplaceOrViewType.cpp",
"autograd/templates/Functions.cpp",
"autograd/templates/Functions.h",
"autograd/templates/TraceType.cpp",
"autograd/templates/VariableType.cpp",
"autograd/templates/VariableType.h",
"autograd/templates/ViewFuncs.cpp",
"autograd/templates/ViewFuncs.h",
"autograd/templates/annotated_fn_args.py.in",
"autograd/templates/python_enum_tag.cpp",
"autograd/templates/python_fft_functions.cpp",
"autograd/templates/python_functions.cpp",
"autograd/templates/python_functions.h",
"autograd/templates/python_linalg_functions.cpp",
"autograd/templates/python_nested_functions.cpp",
"autograd/templates/python_nn_functions.cpp",
"autograd/templates/python_return_types.h",
"autograd/templates/python_return_types.cpp",
"autograd/templates/python_sparse_functions.cpp",
"autograd/templates/python_special_functions.cpp",
"autograd/templates/python_torch_functions.cpp",
"autograd/templates/python_variable_methods.cpp",
"autograd/templates/variable_factories.h",
],
visibility = ["PUBLIC"],
deps = [
third_party("pyyaml"),
torchgen_deps,
],
)
python_library(
name = "generate_code",
srcs = [
"setup_helpers/generate_code.py",
],
base_module = "tools",
deps = [
":autograd",
":jit",
torchgen_deps,
],
)
python_binary(
name = "generate_code_bin",
main_module = "tools.setup_helpers.generate_code",
# Windows does not support inplace:
# https://github.com/facebook/buck/issues/2161.
#
# Note that //arvr/mode/embedded/win/clang-aarch64-release sets
# its target platform to
# ovr_config//platform/embedded:clang-aarch64-linux-release, hence
# that is why we are selecting that OS to trigger this behavior.
package_style = select({
"DEFAULT": "inplace",
"ovr_config//os:linux-arm64": "standalone",
}),
visibility = ["PUBLIC"],
# Because Windows does not support inplace packaging, we need to
# ensure it is unzipped before executing it, otherwise it will not
# be able to find any resources using path manipulation.
#
# See note above about why the OS is Linux here and not Windows.
zip_safe = select({
"DEFAULT": True,
"ovr_config//os:linux-arm64": False,
}),
deps = [
":generate_code",
],
)
python_library(
name = "gen-version-header-lib",
srcs = [
"setup_helpers/gen_version_header.py",
],
base_module = "",
deps = [],
)
python_binary(
name = "gen-version-header",
main_module = "setup_helpers.gen_version_header",
visibility = ["PUBLIC"],
deps = [
":gen-version-header-lib",
],
)
python_library(
name = "gen_aten_vulkan_spv_lib",
srcs = [
"gen_vulkan_spv.py",
],
base_module = "tools",
deps = [
torchgen_deps,
],
)
python_binary(
name = "gen_aten_vulkan_spv_bin",
main_module = "tools.gen_vulkan_spv",
visibility = [
"PUBLIC",
],
deps = [
":gen_aten_vulkan_spv_lib",
],
)
python_test(
name = "vulkan_codegen_test",
srcs = [
"test/test_vulkan_codegen.py",
],
contacts = contacts,
visibility = ["PUBLIC"],
deps = [
":gen_aten_vulkan_spv_lib",
],
)
python_test(
name = "selective_build_test",
srcs = [
"test/test_selective_build.py",
],
contacts = contacts,
visibility = ["PUBLIC"],
deps = [
torchgen_deps,
],
)
python_test(
name = "gen_oplist_test",
srcs = [
"test/gen_oplist_test.py",
],
contacts = contacts,
visibility = ["PUBLIC"],
deps = [
":gen_oplist_lib",
],
)
python_test(
name = "gen_operators_yaml_test",
srcs = [
"test/gen_operators_yaml_test.py",
],
visibility = ["PUBLIC"],
contacts = contacts,
deps = [
":gen_operators_yaml_lib",
],
)
python_test(
name = "test_codegen",
srcs = [
"test/test_codegen.py",
],
contacts = contacts,
visibility = ["PUBLIC"],
deps = [
torchgen_deps,
":autograd",
],
)
python_test(
name = "test_torchgen_executorch",
srcs = [
"test/test_executorch_gen.py",
"test/test_executorch_signatures.py",
"test/test_executorch_types.py",
"test/test_executorch_unboxing.py",
],
contacts = contacts,
visibility = ["PUBLIC"],
deps = [
torchgen_deps,
],
)