1*da0073e9SAndroid Build Coastguard Worker# @lint-ignore-every FBCODEBZLADDLOADS 2*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:glob_defs.bzl", "subdir_glob") 3*da0073e9SAndroid Build Coastguard Worker 4*da0073e9SAndroid Build Coastguard Worker# shared by internal and OSS BUCK 5*da0073e9SAndroid Build Coastguard Workerdef define_tools_targets( 6*da0073e9SAndroid Build Coastguard Worker python_binary, 7*da0073e9SAndroid Build Coastguard Worker python_library, 8*da0073e9SAndroid Build Coastguard Worker python_test, 9*da0073e9SAndroid Build Coastguard Worker third_party, 10*da0073e9SAndroid Build Coastguard Worker torchgen_deps, 11*da0073e9SAndroid Build Coastguard Worker contacts = []): 12*da0073e9SAndroid Build Coastguard Worker python_library( 13*da0073e9SAndroid Build Coastguard Worker name = "substitutelib", 14*da0073e9SAndroid Build Coastguard Worker srcs = ["substitute.py"], 15*da0073e9SAndroid Build Coastguard Worker base_module = "", 16*da0073e9SAndroid Build Coastguard Worker ) 17*da0073e9SAndroid Build Coastguard Worker 18*da0073e9SAndroid Build Coastguard Worker python_binary( 19*da0073e9SAndroid Build Coastguard Worker name = "substitute", 20*da0073e9SAndroid Build Coastguard Worker main_module = "substitute", 21*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 22*da0073e9SAndroid Build Coastguard Worker deps = [ 23*da0073e9SAndroid Build Coastguard Worker ":substitutelib", 24*da0073e9SAndroid Build Coastguard Worker ], 25*da0073e9SAndroid Build Coastguard Worker ) 26*da0073e9SAndroid Build Coastguard Worker 27*da0073e9SAndroid Build Coastguard Worker python_library( 28*da0073e9SAndroid Build Coastguard Worker name = "jit", 29*da0073e9SAndroid Build Coastguard Worker srcs = glob([ 30*da0073e9SAndroid Build Coastguard Worker "jit/*.py", 31*da0073e9SAndroid Build Coastguard Worker "jit/templates/*", 32*da0073e9SAndroid Build Coastguard Worker ]), 33*da0073e9SAndroid Build Coastguard Worker base_module = "tools", 34*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 35*da0073e9SAndroid Build Coastguard Worker deps = [ 36*da0073e9SAndroid Build Coastguard Worker torchgen_deps, 37*da0073e9SAndroid Build Coastguard Worker ], 38*da0073e9SAndroid Build Coastguard Worker ) 39*da0073e9SAndroid Build Coastguard Worker 40*da0073e9SAndroid Build Coastguard Worker python_binary( 41*da0073e9SAndroid Build Coastguard Worker name = "gen_unboxing_bin", 42*da0073e9SAndroid Build Coastguard Worker main_module = "tools.jit.gen_unboxing", 43*da0073e9SAndroid Build Coastguard Worker visibility = [ 44*da0073e9SAndroid Build Coastguard Worker "PUBLIC", 45*da0073e9SAndroid Build Coastguard Worker ], 46*da0073e9SAndroid Build Coastguard Worker deps = [ 47*da0073e9SAndroid Build Coastguard Worker ":jit", 48*da0073e9SAndroid Build Coastguard Worker ], 49*da0073e9SAndroid Build Coastguard Worker ) 50*da0073e9SAndroid Build Coastguard Worker 51*da0073e9SAndroid Build Coastguard Worker python_library( 52*da0073e9SAndroid Build Coastguard Worker name = "gen_selected_mobile_ops_header", 53*da0073e9SAndroid Build Coastguard Worker srcs = ["lite_interpreter/gen_selected_mobile_ops_header.py"], 54*da0073e9SAndroid Build Coastguard Worker base_module = "tools", 55*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 56*da0073e9SAndroid Build Coastguard Worker ) 57*da0073e9SAndroid Build Coastguard Worker 58*da0073e9SAndroid Build Coastguard Worker python_library( 59*da0073e9SAndroid Build Coastguard Worker name = "gen_oplist_lib", 60*da0073e9SAndroid Build Coastguard Worker srcs = subdir_glob([ 61*da0073e9SAndroid Build Coastguard Worker ("code_analyzer", "gen_oplist.py"), 62*da0073e9SAndroid Build Coastguard Worker ("code_analyzer", "gen_op_registration_allowlist.py"), 63*da0073e9SAndroid Build Coastguard Worker ]), 64*da0073e9SAndroid Build Coastguard Worker base_module = "tools.code_analyzer", 65*da0073e9SAndroid Build Coastguard Worker tests = [ 66*da0073e9SAndroid Build Coastguard Worker ":gen_oplist_test", 67*da0073e9SAndroid Build Coastguard Worker ], 68*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 69*da0073e9SAndroid Build Coastguard Worker deps = [ 70*da0073e9SAndroid Build Coastguard Worker ":gen_selected_mobile_ops_header", 71*da0073e9SAndroid Build Coastguard Worker torchgen_deps, 72*da0073e9SAndroid Build Coastguard Worker third_party("pyyaml"), 73*da0073e9SAndroid Build Coastguard Worker ], 74*da0073e9SAndroid Build Coastguard Worker ) 75*da0073e9SAndroid Build Coastguard Worker 76*da0073e9SAndroid Build Coastguard Worker python_binary( 77*da0073e9SAndroid Build Coastguard Worker name = "gen_oplist", 78*da0073e9SAndroid Build Coastguard Worker main_module = "tools.code_analyzer.gen_oplist", 79*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 80*da0073e9SAndroid Build Coastguard Worker deps = [ 81*da0073e9SAndroid Build Coastguard Worker ":gen_oplist_lib", 82*da0073e9SAndroid Build Coastguard Worker ], 83*da0073e9SAndroid Build Coastguard Worker ) 84*da0073e9SAndroid Build Coastguard Worker 85*da0073e9SAndroid Build Coastguard Worker python_library( 86*da0073e9SAndroid Build Coastguard Worker name = "gen_operators_yaml_lib", 87*da0073e9SAndroid Build Coastguard Worker srcs = subdir_glob([ 88*da0073e9SAndroid Build Coastguard Worker ("code_analyzer", "gen_operators_yaml.py"), 89*da0073e9SAndroid Build Coastguard Worker ("code_analyzer", "gen_op_registration_allowlist.py"), 90*da0073e9SAndroid Build Coastguard Worker ]), 91*da0073e9SAndroid Build Coastguard Worker base_module = "", 92*da0073e9SAndroid Build Coastguard Worker tests = [ 93*da0073e9SAndroid Build Coastguard Worker ":gen_operators_yaml_test", 94*da0073e9SAndroid Build Coastguard Worker ], 95*da0073e9SAndroid Build Coastguard Worker deps = [ 96*da0073e9SAndroid Build Coastguard Worker third_party("pyyaml"), 97*da0073e9SAndroid Build Coastguard Worker torchgen_deps, 98*da0073e9SAndroid Build Coastguard Worker ], 99*da0073e9SAndroid Build Coastguard Worker ) 100*da0073e9SAndroid Build Coastguard Worker 101*da0073e9SAndroid Build Coastguard Worker python_binary( 102*da0073e9SAndroid Build Coastguard Worker name = "gen_operators_yaml", 103*da0073e9SAndroid Build Coastguard Worker main_module = "gen_operators_yaml", 104*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 105*da0073e9SAndroid Build Coastguard Worker deps = [ 106*da0073e9SAndroid Build Coastguard Worker ":gen_operators_yaml_lib", 107*da0073e9SAndroid Build Coastguard Worker ], 108*da0073e9SAndroid Build Coastguard Worker ) 109*da0073e9SAndroid Build Coastguard Worker 110*da0073e9SAndroid Build Coastguard Worker python_library( 111*da0073e9SAndroid Build Coastguard Worker name = "autograd", 112*da0073e9SAndroid Build Coastguard Worker srcs = glob(["autograd/*.py"]), 113*da0073e9SAndroid Build Coastguard Worker base_module = "tools", 114*da0073e9SAndroid Build Coastguard Worker resources = [ 115*da0073e9SAndroid Build Coastguard Worker "autograd/deprecated.yaml", 116*da0073e9SAndroid Build Coastguard Worker "autograd/derivatives.yaml", 117*da0073e9SAndroid Build Coastguard Worker "autograd/templates/ADInplaceOrViewType.cpp", 118*da0073e9SAndroid Build Coastguard Worker "autograd/templates/Functions.cpp", 119*da0073e9SAndroid Build Coastguard Worker "autograd/templates/Functions.h", 120*da0073e9SAndroid Build Coastguard Worker "autograd/templates/TraceType.cpp", 121*da0073e9SAndroid Build Coastguard Worker "autograd/templates/VariableType.cpp", 122*da0073e9SAndroid Build Coastguard Worker "autograd/templates/VariableType.h", 123*da0073e9SAndroid Build Coastguard Worker "autograd/templates/ViewFuncs.cpp", 124*da0073e9SAndroid Build Coastguard Worker "autograd/templates/ViewFuncs.h", 125*da0073e9SAndroid Build Coastguard Worker "autograd/templates/annotated_fn_args.py.in", 126*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_enum_tag.cpp", 127*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_fft_functions.cpp", 128*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_functions.cpp", 129*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_functions.h", 130*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_linalg_functions.cpp", 131*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_nested_functions.cpp", 132*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_nn_functions.cpp", 133*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_return_types.h", 134*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_return_types.cpp", 135*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_sparse_functions.cpp", 136*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_special_functions.cpp", 137*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_torch_functions.cpp", 138*da0073e9SAndroid Build Coastguard Worker "autograd/templates/python_variable_methods.cpp", 139*da0073e9SAndroid Build Coastguard Worker "autograd/templates/variable_factories.h", 140*da0073e9SAndroid Build Coastguard Worker ], 141*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 142*da0073e9SAndroid Build Coastguard Worker deps = [ 143*da0073e9SAndroid Build Coastguard Worker third_party("pyyaml"), 144*da0073e9SAndroid Build Coastguard Worker torchgen_deps, 145*da0073e9SAndroid Build Coastguard Worker ], 146*da0073e9SAndroid Build Coastguard Worker ) 147*da0073e9SAndroid Build Coastguard Worker 148*da0073e9SAndroid Build Coastguard Worker python_library( 149*da0073e9SAndroid Build Coastguard Worker name = "generate_code", 150*da0073e9SAndroid Build Coastguard Worker srcs = [ 151*da0073e9SAndroid Build Coastguard Worker "setup_helpers/generate_code.py", 152*da0073e9SAndroid Build Coastguard Worker ], 153*da0073e9SAndroid Build Coastguard Worker base_module = "tools", 154*da0073e9SAndroid Build Coastguard Worker deps = [ 155*da0073e9SAndroid Build Coastguard Worker ":autograd", 156*da0073e9SAndroid Build Coastguard Worker ":jit", 157*da0073e9SAndroid Build Coastguard Worker torchgen_deps, 158*da0073e9SAndroid Build Coastguard Worker ], 159*da0073e9SAndroid Build Coastguard Worker ) 160*da0073e9SAndroid Build Coastguard Worker 161*da0073e9SAndroid Build Coastguard Worker python_binary( 162*da0073e9SAndroid Build Coastguard Worker name = "generate_code_bin", 163*da0073e9SAndroid Build Coastguard Worker main_module = "tools.setup_helpers.generate_code", 164*da0073e9SAndroid Build Coastguard Worker # Windows does not support inplace: 165*da0073e9SAndroid Build Coastguard Worker # https://github.com/facebook/buck/issues/2161. 166*da0073e9SAndroid Build Coastguard Worker # 167*da0073e9SAndroid Build Coastguard Worker # Note that //arvr/mode/embedded/win/clang-aarch64-release sets 168*da0073e9SAndroid Build Coastguard Worker # its target platform to 169*da0073e9SAndroid Build Coastguard Worker # ovr_config//platform/embedded:clang-aarch64-linux-release, hence 170*da0073e9SAndroid Build Coastguard Worker # that is why we are selecting that OS to trigger this behavior. 171*da0073e9SAndroid Build Coastguard Worker package_style = select({ 172*da0073e9SAndroid Build Coastguard Worker "DEFAULT": "inplace", 173*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:linux-arm64": "standalone", 174*da0073e9SAndroid Build Coastguard Worker }), 175*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 176*da0073e9SAndroid Build Coastguard Worker # Because Windows does not support inplace packaging, we need to 177*da0073e9SAndroid Build Coastguard Worker # ensure it is unzipped before executing it, otherwise it will not 178*da0073e9SAndroid Build Coastguard Worker # be able to find any resources using path manipulation. 179*da0073e9SAndroid Build Coastguard Worker # 180*da0073e9SAndroid Build Coastguard Worker # See note above about why the OS is Linux here and not Windows. 181*da0073e9SAndroid Build Coastguard Worker zip_safe = select({ 182*da0073e9SAndroid Build Coastguard Worker "DEFAULT": True, 183*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:linux-arm64": False, 184*da0073e9SAndroid Build Coastguard Worker }), 185*da0073e9SAndroid Build Coastguard Worker deps = [ 186*da0073e9SAndroid Build Coastguard Worker ":generate_code", 187*da0073e9SAndroid Build Coastguard Worker ], 188*da0073e9SAndroid Build Coastguard Worker ) 189*da0073e9SAndroid Build Coastguard Worker 190*da0073e9SAndroid Build Coastguard Worker python_library( 191*da0073e9SAndroid Build Coastguard Worker name = "gen-version-header-lib", 192*da0073e9SAndroid Build Coastguard Worker srcs = [ 193*da0073e9SAndroid Build Coastguard Worker "setup_helpers/gen_version_header.py", 194*da0073e9SAndroid Build Coastguard Worker ], 195*da0073e9SAndroid Build Coastguard Worker base_module = "", 196*da0073e9SAndroid Build Coastguard Worker deps = [], 197*da0073e9SAndroid Build Coastguard Worker ) 198*da0073e9SAndroid Build Coastguard Worker 199*da0073e9SAndroid Build Coastguard Worker python_binary( 200*da0073e9SAndroid Build Coastguard Worker name = "gen-version-header", 201*da0073e9SAndroid Build Coastguard Worker main_module = "setup_helpers.gen_version_header", 202*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 203*da0073e9SAndroid Build Coastguard Worker deps = [ 204*da0073e9SAndroid Build Coastguard Worker ":gen-version-header-lib", 205*da0073e9SAndroid Build Coastguard Worker ], 206*da0073e9SAndroid Build Coastguard Worker ) 207*da0073e9SAndroid Build Coastguard Worker 208*da0073e9SAndroid Build Coastguard Worker python_library( 209*da0073e9SAndroid Build Coastguard Worker name = "gen_aten_vulkan_spv_lib", 210*da0073e9SAndroid Build Coastguard Worker srcs = [ 211*da0073e9SAndroid Build Coastguard Worker "gen_vulkan_spv.py", 212*da0073e9SAndroid Build Coastguard Worker ], 213*da0073e9SAndroid Build Coastguard Worker base_module = "tools", 214*da0073e9SAndroid Build Coastguard Worker deps = [ 215*da0073e9SAndroid Build Coastguard Worker torchgen_deps, 216*da0073e9SAndroid Build Coastguard Worker ], 217*da0073e9SAndroid Build Coastguard Worker ) 218*da0073e9SAndroid Build Coastguard Worker 219*da0073e9SAndroid Build Coastguard Worker python_binary( 220*da0073e9SAndroid Build Coastguard Worker name = "gen_aten_vulkan_spv_bin", 221*da0073e9SAndroid Build Coastguard Worker main_module = "tools.gen_vulkan_spv", 222*da0073e9SAndroid Build Coastguard Worker visibility = [ 223*da0073e9SAndroid Build Coastguard Worker "PUBLIC", 224*da0073e9SAndroid Build Coastguard Worker ], 225*da0073e9SAndroid Build Coastguard Worker deps = [ 226*da0073e9SAndroid Build Coastguard Worker ":gen_aten_vulkan_spv_lib", 227*da0073e9SAndroid Build Coastguard Worker ], 228*da0073e9SAndroid Build Coastguard Worker ) 229*da0073e9SAndroid Build Coastguard Worker 230*da0073e9SAndroid Build Coastguard Worker python_test( 231*da0073e9SAndroid Build Coastguard Worker name = "vulkan_codegen_test", 232*da0073e9SAndroid Build Coastguard Worker srcs = [ 233*da0073e9SAndroid Build Coastguard Worker "test/test_vulkan_codegen.py", 234*da0073e9SAndroid Build Coastguard Worker ], 235*da0073e9SAndroid Build Coastguard Worker contacts = contacts, 236*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 237*da0073e9SAndroid Build Coastguard Worker deps = [ 238*da0073e9SAndroid Build Coastguard Worker ":gen_aten_vulkan_spv_lib", 239*da0073e9SAndroid Build Coastguard Worker ], 240*da0073e9SAndroid Build Coastguard Worker ) 241*da0073e9SAndroid Build Coastguard Worker 242*da0073e9SAndroid Build Coastguard Worker python_test( 243*da0073e9SAndroid Build Coastguard Worker name = "selective_build_test", 244*da0073e9SAndroid Build Coastguard Worker srcs = [ 245*da0073e9SAndroid Build Coastguard Worker "test/test_selective_build.py", 246*da0073e9SAndroid Build Coastguard Worker ], 247*da0073e9SAndroid Build Coastguard Worker contacts = contacts, 248*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 249*da0073e9SAndroid Build Coastguard Worker deps = [ 250*da0073e9SAndroid Build Coastguard Worker torchgen_deps, 251*da0073e9SAndroid Build Coastguard Worker ], 252*da0073e9SAndroid Build Coastguard Worker ) 253*da0073e9SAndroid Build Coastguard Worker 254*da0073e9SAndroid Build Coastguard Worker python_test( 255*da0073e9SAndroid Build Coastguard Worker name = "gen_oplist_test", 256*da0073e9SAndroid Build Coastguard Worker srcs = [ 257*da0073e9SAndroid Build Coastguard Worker "test/gen_oplist_test.py", 258*da0073e9SAndroid Build Coastguard Worker ], 259*da0073e9SAndroid Build Coastguard Worker contacts = contacts, 260*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 261*da0073e9SAndroid Build Coastguard Worker deps = [ 262*da0073e9SAndroid Build Coastguard Worker ":gen_oplist_lib", 263*da0073e9SAndroid Build Coastguard Worker ], 264*da0073e9SAndroid Build Coastguard Worker ) 265*da0073e9SAndroid Build Coastguard Worker 266*da0073e9SAndroid Build Coastguard Worker python_test( 267*da0073e9SAndroid Build Coastguard Worker name = "gen_operators_yaml_test", 268*da0073e9SAndroid Build Coastguard Worker srcs = [ 269*da0073e9SAndroid Build Coastguard Worker "test/gen_operators_yaml_test.py", 270*da0073e9SAndroid Build Coastguard Worker ], 271*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 272*da0073e9SAndroid Build Coastguard Worker contacts = contacts, 273*da0073e9SAndroid Build Coastguard Worker deps = [ 274*da0073e9SAndroid Build Coastguard Worker ":gen_operators_yaml_lib", 275*da0073e9SAndroid Build Coastguard Worker ], 276*da0073e9SAndroid Build Coastguard Worker ) 277*da0073e9SAndroid Build Coastguard Worker 278*da0073e9SAndroid Build Coastguard Worker python_test( 279*da0073e9SAndroid Build Coastguard Worker name = "test_codegen", 280*da0073e9SAndroid Build Coastguard Worker srcs = [ 281*da0073e9SAndroid Build Coastguard Worker "test/test_codegen.py", 282*da0073e9SAndroid Build Coastguard Worker ], 283*da0073e9SAndroid Build Coastguard Worker contacts = contacts, 284*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 285*da0073e9SAndroid Build Coastguard Worker deps = [ 286*da0073e9SAndroid Build Coastguard Worker torchgen_deps, 287*da0073e9SAndroid Build Coastguard Worker ":autograd", 288*da0073e9SAndroid Build Coastguard Worker ], 289*da0073e9SAndroid Build Coastguard Worker ) 290*da0073e9SAndroid Build Coastguard Worker 291*da0073e9SAndroid Build Coastguard Worker python_test( 292*da0073e9SAndroid Build Coastguard Worker name = "test_torchgen_executorch", 293*da0073e9SAndroid Build Coastguard Worker srcs = [ 294*da0073e9SAndroid Build Coastguard Worker "test/test_executorch_gen.py", 295*da0073e9SAndroid Build Coastguard Worker "test/test_executorch_signatures.py", 296*da0073e9SAndroid Build Coastguard Worker "test/test_executorch_types.py", 297*da0073e9SAndroid Build Coastguard Worker "test/test_executorch_unboxing.py", 298*da0073e9SAndroid Build Coastguard Worker ], 299*da0073e9SAndroid Build Coastguard Worker contacts = contacts, 300*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 301*da0073e9SAndroid Build Coastguard Worker deps = [ 302*da0073e9SAndroid Build Coastguard Worker torchgen_deps, 303*da0073e9SAndroid Build Coastguard Worker ], 304*da0073e9SAndroid Build Coastguard Worker ) 305