aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/tools/pip_package/build_pip_package.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tensorflow/tools/pip_package/build_pip_package.sh')
-rwxr-xr-xtensorflow/tools/pip_package/build_pip_package.sh160
1 files changed, 115 insertions, 45 deletions
diff --git a/tensorflow/tools/pip_package/build_pip_package.sh b/tensorflow/tools/pip_package/build_pip_package.sh
index 0c4065bc77..f7e42ce536 100755
--- a/tensorflow/tools/pip_package/build_pip_package.sh
+++ b/tensorflow/tools/pip_package/build_pip_package.sh
@@ -41,51 +41,15 @@ function is_windows() {
fi
}
-function main() {
+function prepare_src() {
if [ $# -lt 1 ] ; then
echo "No destination dir provided"
exit 1
fi
- DEST=$(real_path $1)
- TMPDIR=$(mktemp -d -t tmp.XXXXXXXXXX)
-
- PKG_NAME_FLAG=""
- GPU_BUILD=0
- NIGHTLY_BUILD=0
- PROJECT_NAME=""
- while true; do
- if [[ "$1" == "--nightly_flag" ]]; then
- NIGHTLY_BUILD=1
- elif [[ "$1" == "--gpu" ]]; then
- GPU_BUILD=1
- elif [[ "$1" == "--gpudirect" ]]; then
- PKG_NAME_FLAG="--project_name tensorflow_gpudirect"
- elif [[ "$1" == "--project_name" ]]; then
- shift
- if [[ -z "$1" ]]; then
- break
- fi
- PROJECT_NAME="$1"
- fi
- shift
-
- if [[ -z "$1" ]]; then
- break
- fi
- done
-
- if [[ -n ${PROJECT_NAME} ]]; then
- PKG_NAME_FLAG="--project_name ${PROJECT_NAME}"
- elif [[ ${NIGHTLY_BUILD} == "1" && ${GPU_BUILD} == "1" ]]; then
- PKG_NAME_FLAG="--project_name tf_nightly_gpu"
- elif [[ ${NIGHTLY_BUILD} == "1" ]]; then
- PKG_NAME_FLAG="--project_name tf_nightly"
- elif [[ ${GPU_BUILD} == "1" ]]; then
- PKG_NAME_FLAG="--project_name tensorflow_gpu"
- fi
-
- echo $(date) : "=== Using tmpdir: ${TMPDIR}"
+ TMPDIR="$1"
+ mkdir -p "$TMPDIR"
+ echo $(date) : "=== Preparing sources in dir: ${TMPDIR}"
if [ ! -d bazel-bin/tensorflow ]; then
echo "Could not find bazel-bin. Did you run from the root of the build tree?"
@@ -155,17 +119,28 @@ function main() {
# over so user defined ops can be compiled.
mkdir -p ${TMPDIR}/google
mkdir -p ${TMPDIR}/third_party
- pushd ${RUNFILES%org_tensorflow}
+ pushd ${RUNFILES%org_tensorflow} > /dev/null
for header in $(find protobuf_archive -name \*.h); do
mkdir -p "${TMPDIR}/google/$(dirname ${header})"
cp "$header" "${TMPDIR}/google/$(dirname ${header})/"
done
- popd
+ popd > /dev/null
cp -R $RUNFILES/third_party/eigen3 ${TMPDIR}/third_party
cp tensorflow/tools/pip_package/MANIFEST.in ${TMPDIR}
cp tensorflow/tools/pip_package/README ${TMPDIR}
cp tensorflow/tools/pip_package/setup.py ${TMPDIR}
+}
+
+function build_wheel() {
+ if [ $# -lt 2 ] ; then
+ echo "No src and dest dir provided"
+ exit 1
+ fi
+
+ TMPDIR="$1"
+ DEST="$2"
+ PKG_NAME_FLAG="$3"
# Before we leave the top-level directory, make sure we know how to
# call python.
@@ -173,15 +148,110 @@ function main() {
source tools/python_bin_path.sh
fi
- pushd ${TMPDIR}
+ pushd ${TMPDIR} > /dev/null
rm -f MANIFEST
echo $(date) : "=== Building wheel"
"${PYTHON_BIN_PATH:-python}" setup.py bdist_wheel ${PKG_NAME_FLAG} >/dev/null
mkdir -p ${DEST}
cp dist/* ${DEST}
- popd
- rm -rf ${TMPDIR}
+ popd > /dev/null
echo $(date) : "=== Output wheel file is in: ${DEST}"
}
+function usage() {
+ echo "Usage:"
+ echo "$0 [--src srcdir] [--dst dstdir] [options]"
+ echo "$0 dstdir [options]"
+ echo ""
+ echo " --src prepare sources in srcdir"
+ echo " will use temporary dir if not specified"
+ echo ""
+ echo " --dst build wheel in dstdir"
+ echo " if dstdir is not set do not build, only prepare sources"
+ echo ""
+ echo " Options:"
+ echo " --project_name <name> set project name to name"
+ echo " --gpu build tensorflow_gpu"
+ echo " --gpudirect build tensorflow_gpudirect"
+ echo " --nightly_flag build tensorflow nightly"
+ echo ""
+ exit 1
+}
+
+function main() {
+ PKG_NAME_FLAG=""
+ PROJECT_NAME=""
+ GPU_BUILD=0
+ NIGHTLY_BUILD=0
+ SRCDIR=""
+ DSTDIR=""
+ CLEANSRC=1
+ while true; do
+ if [[ "$1" == "--help" ]]; then
+ usage
+ exit 1
+ elif [[ "$1" == "--nightly_flag" ]]; then
+ NIGHTLY_BUILD=1
+ elif [[ "$1" == "--gpu" ]]; then
+ GPU_BUILD=1
+ elif [[ "$1" == "--gpudirect" ]]; then
+ PKG_NAME_FLAG="--project_name tensorflow_gpudirect"
+ elif [[ "$1" == "--project_name" ]]; then
+ shift
+ if [[ -z "$1" ]]; then
+ break
+ fi
+ PROJECT_NAME="$1"
+ elif [[ "$1" == "--src" ]]; then
+ shift
+ SRCDIR="$(real_path $1)"
+ CLEANSRC=0
+ elif [[ "$1" == "--dst" ]]; then
+ shift
+ DSTDIR="$(real_path $1)"
+ else
+ DSTDIR="$(real_path $1)"
+ fi
+ shift
+
+ if [[ -z "$1" ]]; then
+ break
+ fi
+ done
+
+ if [[ -z "$DSTDIR" ]] && [[ -z "$SRCDIR" ]]; then
+ echo "No destination dir provided"
+ usage
+ exit 1
+ fi
+
+ if [[ -z "$SRCDIR" ]]; then
+ # make temp srcdir if none set
+ SRCDIR="$(mktemp -d -t tmp.XXXXXXXXXX)"
+ fi
+
+ prepare_src "$SRCDIR"
+
+ if [[ -z "$DSTDIR" ]]; then
+ # only want to prepare sources
+ exit
+ fi
+
+ if [[ -n ${PROJECT_NAME} ]]; then
+ PKG_NAME_FLAG="--project_name ${PROJECT_NAME}"
+ elif [[ ${NIGHTLY_BUILD} == "1" && ${GPU_BUILD} == "1" ]]; then
+ PKG_NAME_FLAG="--project_name tf_nightly_gpu"
+ elif [[ ${NIGHTLY_BUILD} == "1" ]]; then
+ PKG_NAME_FLAG="--project_name tf_nightly"
+ elif [[ ${GPU_BUILD} == "1" ]]; then
+ PKG_NAME_FLAG="--project_name tensorflow_gpu"
+ fi
+
+ build_wheel "$SRCDIR" "$DSTDIR" "$PKG_NAME_FLAG"
+
+ if [[ $CLEANSRC -ne 0 ]]; then
+ rm -rf "${TMPDIR}"
+ fi
+}
+
main "$@"