| #!/bin/bash |
| # Copyright (c) Meta Platforms, Inc. and affiliates. |
| # All rights reserved. |
| # |
| # This source code is licensed under the BSD-style license found in the |
| # LICENSE file in the root directory of this source tree. |
| |
| # Links the path of `libtorch.so` or include library installed in python |
| # library, to the output of buck, if pytorch is properly installed. |
| # This util can be used by buck2 build. |
| |
| set -e |
| |
| # Named argument: |
| # -o: output directory/file |
| # -f: a list of files/directories that we want to link to the output directory, separated by comma ",". |
| # These paths need to be in relative path format to the python library path. |
| while getopts ":o:f:" opt; do |
| case $opt in |
| o) OUT="$OPTARG" |
| ;; |
| f) FILES="$OPTARG" |
| ;; |
| \?) echo "Invalid option -$OPTARG" >&2 |
| exit 1 |
| ;; |
| esac |
| |
| case $OPTARG in |
| -*) echo "Option $opt needs to be one of -o, -f." |
| exit 1 |
| ;; |
| esac |
| done |
| |
| LIB=$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())') |
| |
| # delimiter , |
| export IFS="," |
| |
| for SUBPATH in $FILES; do |
| if [[ -f "$LIB/$SUBPATH" ]] || [[ -d "$LIB/$SUBPATH" ]]; |
| then |
| ln -s "$LIB/$SUBPATH" "$OUT" |
| else |
| echo "Error: $LIB/$SUBPATH doesn't exist" |
| exit 1 |
| fi |
| done |