pytorch/scripts
Jacob Rodal a699b10339 [buck2][win] fix caffe2 protobuf_rule (#115954)
Summary:
c2_protobuf_rule ([here](https://fburl.com/code/iyiulpmv)) is broken on buck2, ultimately due to the following error:

> .\./caffe2.proto: File does not reside within any path specified using --proto_path (or -I).  You must specify a --proto_path which encompasses this file.  Note that the proto_path must be an exact prefix of the .proto file names -- protoc is too dumb to figure out when two paths (e.g. absolute and relative) are equivalent (it's harder than you think).

The root cause is differences in how buck1 and buck2 handle `%SRCDIR%` (absolute versus relative paths). This diff fixes the build.

Test Plan:
# Before

```
buck2 build arvr/mode/win/opt //xplat/caffe2:caffe2.pb.h
```

```
More details at https://www.internalfb.com/intern/buck/build/c6550454-ae6d-479e-9d08-016e544ef050
BUILD SUCCEEDED
```

```
Action failed: fbsource//xplat/caffe2:caffe2.pb.h (genrule)
Remote command returned non-zero exit code <no exit code>
Reproduce locally: frecli cas download-action 5df17cf64b7e2fc5ab090c91e1129f2f3cad36dc72c7c182ab052af23d3f32aa:145
stdout:
stderr:
OUTMISS: Missing outputs: buck-out/v2/gen/fbsource/dd87aacb8683145b/xplat/caffe2/caffe2.pb.h/out/caffe2.pb.h
```

# After

Buck1 still works

```
buck1 build arvr/mode/win/opt //xplat/caffe2:caffe2.pb.h
```

Buck2 works

```
buck2 build arvr/mode/win/opt //xplat/caffe2:caffe2.pb.h
```

```
Buck UI: https://www.internalfb.com/buck2/e5dae607-325a-4eab-b0c9-66fe4e9a6254
BUILD SUCCEEDED
```

Differential Revision: D52218365

Pull Request resolved: https://github.com/pytorch/pytorch/pull/115954
Approved by: https://github.com/mcr229
2023-12-18 21:41:10 +00:00
..
analysis fix some typos (#106253) 2023-07-29 16:11:52 +00:00
appveyor
fbcode-dev-setup
jit Enable UFMT on a bunch of low traffic Python files outside of main files (#106052) 2023-07-27 01:01:17 +00:00
model_zoo [BE]: enable ruff rules PLR1722 and PLW3301 (#109461) 2023-09-18 02:07:21 +00:00
onnx [ONNX] Add sanity check in CI for onnxbench (#110178) 2023-12-02 00:17:07 +00:00
release [RelEng] Pin disabled and slow test for release (#114515) 2023-11-27 15:15:19 +00:00
release_notes Enable flake8-bugbear B020 lint (#110823) 2023-10-24 22:43:47 +00:00
add_apache_header.sh
apache_header.txt
apache_python.txt
buck_setup.sh
build_android.sh [Vulkan] Remove GLSL Code Gen (#91912) 2023-01-10 20:29:47 +00:00
build_host_protoc.sh
build_ios.sh Cache conda and pip for IOS CI (#91359) 2022-12-30 17:52:20 +00:00
build_local.sh
build_mobile.sh
build_pytorch_android.sh
build_raspbian.sh
build_tegra_x1.sh [BE] Remove dependency on six and future (#94709) 2023-02-14 09:14:14 +00:00
build_tizen.sh [BE] Remove dependency on six and future (#94709) 2023-02-14 09:14:14 +00:00
build_windows.bat
diagnose_protobuf.py Enable UFMT on a bunch of low traffic Python files outside of main files (#106052) 2023-07-27 01:01:17 +00:00
get_python_cmake_flags.py Enable UFMT on a bunch of low traffic Python files outside of main files (#106052) 2023-07-27 01:01:17 +00:00
install_triton_wheel.sh Do not use --extra-index-url in testing wheels (#100183) 2023-04-27 18:48:02 +00:00
proto.ps1 [buck2][win] fix caffe2 protobuf_rule (#115954) 2023-12-18 21:41:10 +00:00
read_conda_versions.sh
README.md
remove_apache_header.sh
temp.sh
xcode_build.rb Add a script to run iOS test app on AWS Device Farm (#110202) 2023-10-06 08:23:16 +00:00

This directory contains the useful tools.

build_android.sh

This script is to build PyTorch/Caffe2 library for Android. Take the following steps to start the build:

  • set ANDROID_NDK to the location of ndk
export ANDROID_NDK=YOUR_NDK_PATH
  • run build_android.sh
#in your PyTorch root directory
bash scripts/build_android.sh

If succeeded, the libraries and headers would be generated to build_android/install directory. You can then copy these files from build_android/install to your Android project for further usage.

You can also override the cmake flags via command line, e.g., following command will also compile the executable binary files:

bash scripts/build_android.sh -DBUILD_BINARY=ON

build_ios.sh

This script is to build PyTorch/Caffe2 library for iOS, and can only be performed on macOS. Take the following steps to start the build:

  • Install Xcode from App Store, and configure "Command Line Tools" properly on Xcode.
  • Install the dependencies:
brew install cmake automake libtool
  • run build_ios.sh
#in your PyTorch root directory
bash scripts/build_ios.sh

If succeeded, the libraries and headers would be generated to build_ios/install directory. You can then copy these files to your Xcode project for further usage.