# @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, ], )