Remove deleted files.
This commit is contained in:
parent
70c60b1491
commit
0632564172
249
third_party/gpus/crosstool/CROSSTOOL.tpl
vendored
249
third_party/gpus/crosstool/CROSSTOOL.tpl
vendored
@ -1,249 +0,0 @@
|
||||
major_version: "local"
|
||||
minor_version: ""
|
||||
default_target_cpu: "same_as_host"
|
||||
|
||||
default_toolchain {
|
||||
cpu: "k8"
|
||||
toolchain_identifier: "local_linux"
|
||||
}
|
||||
default_toolchain {
|
||||
cpu: "piii"
|
||||
toolchain_identifier: "local_linux"
|
||||
}
|
||||
default_toolchain {
|
||||
cpu: "arm"
|
||||
toolchain_identifier: "local_linux"
|
||||
}
|
||||
default_toolchain {
|
||||
cpu: "darwin"
|
||||
toolchain_identifier: "local_darwin"
|
||||
}
|
||||
default_toolchain {
|
||||
cpu: "ppc"
|
||||
toolchain_identifier: "local_linux"
|
||||
}
|
||||
|
||||
toolchain {
|
||||
abi_version: "local"
|
||||
abi_libc_version: "local"
|
||||
builtin_sysroot: ""
|
||||
compiler: "compiler"
|
||||
host_system_name: "local"
|
||||
needsPic: true
|
||||
supports_gold_linker: false
|
||||
supports_incremental_linker: false
|
||||
supports_fission: false
|
||||
supports_interface_shared_objects: false
|
||||
supports_normalizing_ar: false
|
||||
supports_start_end_lib: false
|
||||
supports_thin_archives: false
|
||||
target_libc: "local"
|
||||
target_cpu: "local"
|
||||
target_system_name: "local"
|
||||
toolchain_identifier: "local_linux"
|
||||
|
||||
tool_path { name: "ar" path: "/usr/bin/ar" }
|
||||
tool_path { name: "compat-ld" path: "/usr/bin/ld" }
|
||||
tool_path { name: "cpp" path: "/usr/bin/cpp" }
|
||||
tool_path { name: "dwp" path: "/usr/bin/dwp" }
|
||||
# As part of the TensorFlow release, we place some cuda-related compilation
|
||||
# files in @local_config_cuda//crosstool/clang/bin, and this relative
|
||||
# path, combined with the rest of our Bazel configuration causes our
|
||||
# compilation to use those files.
|
||||
tool_path { name: "gcc" path: "clang/bin/crosstool_wrapper_driver_is_not_gcc" }
|
||||
# Use "-std=c++11" for nvcc. For consistency, force both the host compiler
|
||||
# and the device compiler to use "-std=c++11".
|
||||
cxx_flag: "-std=c++11"
|
||||
linker_flag: "-Wl,-no-as-needed"
|
||||
linker_flag: "-lstdc++"
|
||||
linker_flag: "-B/usr/bin/"
|
||||
|
||||
%{gcc_host_compiler_includes}
|
||||
tool_path { name: "gcov" path: "/usr/bin/gcov" }
|
||||
|
||||
# C(++) compiles invoke the compiler (as that is the one knowing where
|
||||
# to find libraries), but we provide LD so other rules can invoke the linker.
|
||||
tool_path { name: "ld" path: "/usr/bin/ld" }
|
||||
|
||||
tool_path { name: "nm" path: "/usr/bin/nm" }
|
||||
tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
|
||||
objcopy_embed_flag: "-I"
|
||||
objcopy_embed_flag: "binary"
|
||||
tool_path { name: "objdump" path: "/usr/bin/objdump" }
|
||||
tool_path { name: "strip" path: "/usr/bin/strip" }
|
||||
|
||||
# Anticipated future default.
|
||||
unfiltered_cxx_flag: "-no-canonical-prefixes"
|
||||
|
||||
# Make C++ compilation deterministic. Use linkstamping instead of these
|
||||
# compiler symbols.
|
||||
unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
|
||||
unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
|
||||
unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
|
||||
unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
|
||||
|
||||
# Security hardening on by default.
|
||||
# Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
|
||||
# We need to undef it before redefining it as some distributions now have
|
||||
# it enabled by default.
|
||||
compiler_flag: "-U_FORTIFY_SOURCE"
|
||||
compiler_flag: "-D_FORTIFY_SOURCE=1"
|
||||
compiler_flag: "-fstack-protector"
|
||||
compiler_flag: "-fPIE"
|
||||
linker_flag: "-pie"
|
||||
linker_flag: "-Wl,-z,relro,-z,now"
|
||||
|
||||
# Enable coloring even if there's no attached terminal. Bazel removes the
|
||||
# escape sequences if --nocolor is specified. This isn't supported by gcc
|
||||
# on Ubuntu 14.04.
|
||||
# compiler_flag: "-fcolor-diagnostics"
|
||||
|
||||
# All warnings are enabled. Maybe enable -Werror as well?
|
||||
compiler_flag: "-Wall"
|
||||
# Enable a few more warnings that aren't part of -Wall.
|
||||
compiler_flag: "-Wunused-but-set-parameter"
|
||||
# But disable some that are problematic.
|
||||
compiler_flag: "-Wno-free-nonheap-object" # has false positives
|
||||
|
||||
# Keep stack frames for debugging, even in opt mode.
|
||||
compiler_flag: "-fno-omit-frame-pointer"
|
||||
|
||||
# Anticipated future default.
|
||||
linker_flag: "-no-canonical-prefixes"
|
||||
unfiltered_cxx_flag: "-fno-canonical-system-headers"
|
||||
# Have gcc return the exit code from ld.
|
||||
linker_flag: "-pass-exit-codes"
|
||||
# Stamp the binary with a unique identifier.
|
||||
linker_flag: "-Wl,--build-id=md5"
|
||||
linker_flag: "-Wl,--hash-style=gnu"
|
||||
# Gold linker only? Can we enable this by default?
|
||||
# linker_flag: "-Wl,--warn-execstack"
|
||||
# linker_flag: "-Wl,--detect-odr-violations"
|
||||
|
||||
# Include directory for cuda headers.
|
||||
cxx_builtin_include_directory: "%{cuda_include_path}"
|
||||
|
||||
compilation_mode_flags {
|
||||
mode: DBG
|
||||
# Enable debug symbols.
|
||||
compiler_flag: "-g"
|
||||
}
|
||||
compilation_mode_flags {
|
||||
mode: OPT
|
||||
|
||||
# No debug symbols.
|
||||
# Maybe we should enable https://gcc.gnu.org/wiki/DebugFission for opt or
|
||||
# even generally? However, that can't happen here, as it requires special
|
||||
# handling in Bazel.
|
||||
compiler_flag: "-g0"
|
||||
|
||||
# Conservative choice for -O
|
||||
# -O3 can increase binary size and even slow down the resulting binaries.
|
||||
# Profile first and / or use FDO if you need better performance than this.
|
||||
compiler_flag: "-O2"
|
||||
|
||||
# Disable assertions
|
||||
compiler_flag: "-DNDEBUG"
|
||||
|
||||
# Removal of unused code and data at link time (can this increase binary size in some cases?).
|
||||
compiler_flag: "-ffunction-sections"
|
||||
compiler_flag: "-fdata-sections"
|
||||
linker_flag: "-Wl,--gc-sections"
|
||||
}
|
||||
linking_mode_flags { mode: DYNAMIC }
|
||||
}
|
||||
|
||||
toolchain {
|
||||
abi_version: "local"
|
||||
abi_libc_version: "local"
|
||||
builtin_sysroot: ""
|
||||
compiler: "compiler"
|
||||
host_system_name: "local"
|
||||
needsPic: true
|
||||
target_libc: "macosx"
|
||||
target_cpu: "darwin"
|
||||
target_system_name: "local"
|
||||
toolchain_identifier: "local_darwin"
|
||||
|
||||
tool_path { name: "ar" path: "/usr/bin/libtool" }
|
||||
tool_path { name: "compat-ld" path: "/usr/bin/ld" }
|
||||
tool_path { name: "cpp" path: "/usr/bin/cpp" }
|
||||
tool_path { name: "dwp" path: "/usr/bin/dwp" }
|
||||
tool_path { name: "gcc" path: "clang/bin/crosstool_wrapper_driver_is_not_gcc" }
|
||||
cxx_flag: "-std=c++11"
|
||||
ar_flag: "-static"
|
||||
ar_flag: "-s"
|
||||
ar_flag: "-o"
|
||||
linker_flag: "-lc++"
|
||||
linker_flag: "-undefined"
|
||||
linker_flag: "dynamic_lookup"
|
||||
# TODO(ulfjack): This is wrong on so many levels. Figure out a way to auto-detect the proper
|
||||
# setting from the local compiler, and also how to make incremental builds correct.
|
||||
cxx_builtin_include_directory: "/"
|
||||
tool_path { name: "gcov" path: "/usr/bin/gcov" }
|
||||
tool_path { name: "ld" path: "/usr/bin/ld" }
|
||||
tool_path { name: "nm" path: "/usr/bin/nm" }
|
||||
tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
|
||||
objcopy_embed_flag: "-I"
|
||||
objcopy_embed_flag: "binary"
|
||||
tool_path { name: "objdump" path: "/usr/bin/objdump" }
|
||||
tool_path { name: "strip" path: "/usr/bin/strip" }
|
||||
|
||||
# Anticipated future default.
|
||||
unfiltered_cxx_flag: "-no-canonical-prefixes"
|
||||
# Make C++ compilation deterministic. Use linkstamping instead of these
|
||||
# compiler symbols.
|
||||
unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
|
||||
unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
|
||||
unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
|
||||
unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
|
||||
|
||||
# Security hardening on by default.
|
||||
# Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
|
||||
compiler_flag: "-D_FORTIFY_SOURCE=1"
|
||||
compiler_flag: "-fstack-protector"
|
||||
|
||||
# Enable coloring even if there's no attached terminal. Bazel removes the
|
||||
# escape sequences if --nocolor is specified.
|
||||
compiler_flag: "-fcolor-diagnostics"
|
||||
|
||||
# All warnings are enabled. Maybe enable -Werror as well?
|
||||
compiler_flag: "-Wall"
|
||||
# Enable a few more warnings that aren't part of -Wall.
|
||||
compiler_flag: "-Wthread-safety"
|
||||
compiler_flag: "-Wself-assign"
|
||||
|
||||
# Keep stack frames for debugging, even in opt mode.
|
||||
compiler_flag: "-fno-omit-frame-pointer"
|
||||
|
||||
# Anticipated future default.
|
||||
linker_flag: "-no-canonical-prefixes"
|
||||
|
||||
# Include directory for cuda headers.
|
||||
cxx_builtin_include_directory: "%{cuda_include_path}"
|
||||
|
||||
compilation_mode_flags {
|
||||
mode: DBG
|
||||
# Enable debug symbols.
|
||||
compiler_flag: "-g"
|
||||
}
|
||||
compilation_mode_flags {
|
||||
mode: OPT
|
||||
# No debug symbols.
|
||||
# Maybe we should enable https://gcc.gnu.org/wiki/DebugFission for opt or even generally?
|
||||
# However, that can't happen here, as it requires special handling in Bazel.
|
||||
compiler_flag: "-g0"
|
||||
|
||||
# Conservative choice for -O
|
||||
# -O3 can increase binary size and even slow down the resulting binaries.
|
||||
# Profile first and / or use FDO if you need better performance than this.
|
||||
compiler_flag: "-O2"
|
||||
|
||||
# Disable assertions
|
||||
compiler_flag: "-DNDEBUG"
|
||||
|
||||
# Removal of unused code and data at link time (can this increase binary size in some cases?).
|
||||
compiler_flag: "-ffunction-sections"
|
||||
compiler_flag: "-fdata-sections"
|
||||
}
|
||||
}
|
15
third_party/gpus/cuda/platform.bzl.tpl
vendored
15
third_party/gpus/cuda/platform.bzl.tpl
vendored
@ -1,15 +0,0 @@
|
||||
CUDA_VERSION = "%{cuda_version}"
|
||||
CUDNN_VERSION = "%{cudnn_version}"
|
||||
PLATFORM = "%{platform}"
|
||||
|
||||
def cuda_sdk_version():
|
||||
return CUDA_VERSION
|
||||
|
||||
def cudnn_sdk_version():
|
||||
return CUDNN_VERSION
|
||||
|
||||
def readlink_command():
|
||||
if PLATFORM == "Darwin":
|
||||
return "greadlink"
|
||||
else:
|
||||
return "readlink"
|
0
third_party/nccl/BUILD
vendored
0
third_party/nccl/BUILD
vendored
85
third_party/nccl/fix_clang_compilation.patch
vendored
85
third_party/nccl/fix_clang_compilation.patch
vendored
@ -1,85 +0,0 @@
|
||||
From 8241cd7b6ed1425eeb88fd380090575978e358f4 Mon Sep 17 00:00:00 2001
|
||||
From: Ilya Biryukov <ibiryukov@google.com>
|
||||
Date: Thu, 16 Mar 2017 12:01:11 +0100
|
||||
Subject: [PATCH 1/1] Fix compilation error when compiling with 'clang -x
|
||||
cuda'.
|
||||
|
||||
Functions vFetch and vStore are not found by ADL with clang,
|
||||
so they need to be declared before usage in ReduceCopy.
|
||||
---
|
||||
src/common_kernel.h | 52 ++++++++++++++++++++++++++--------------------------
|
||||
1 file changed, 26 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/src/common_kernel.h b/src/common_kernel.h
|
||||
index 28fbc85..cc71f8a 100644
|
||||
--- a/src/common_kernel.h
|
||||
+++ b/src/common_kernel.h
|
||||
@@ -30,6 +30,32 @@
|
||||
#define BAR(type, barid, nthreads) \
|
||||
BAR_EXPAND(type, barid, ROUNDUP(nthreads, WARP_SIZE))
|
||||
|
||||
+template<typename T> inline __device__
|
||||
+T vFetch(const volatile T* ptr) {
|
||||
+ return *ptr;
|
||||
+}
|
||||
+
|
||||
+#ifdef CUDA_HAS_HALF
|
||||
+template<> inline __device__
|
||||
+half vFetch<half>(const volatile half* ptr) {
|
||||
+ half r;
|
||||
+ r.x = ptr->x;
|
||||
+ return r;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+template<typename T> inline __device__
|
||||
+void vStore(volatile T* ptr, const T val) {
|
||||
+ *ptr = val;
|
||||
+}
|
||||
+
|
||||
+#ifdef CUDA_HAS_HALF
|
||||
+template<> inline __device__
|
||||
+void vStore<half>(volatile half* ptr, const half val) {
|
||||
+ ptr->x = val.x;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
__device__ unsigned int spinct;
|
||||
|
||||
// Spin wait until func evaluates to true
|
||||
@@ -225,32 +251,6 @@ __device__ inline volatile T* AlignUp(volatile T * ptr, size_t align) {
|
||||
return reinterpret_cast<volatile T*>(ALIGNUP(ptrval, align));
|
||||
}
|
||||
|
||||
-template<typename T> inline __device__
|
||||
-T vFetch(const volatile T* ptr) {
|
||||
- return *ptr;
|
||||
-}
|
||||
-
|
||||
-#ifdef CUDA_HAS_HALF
|
||||
-template<> inline __device__
|
||||
-half vFetch<half>(const volatile half* ptr) {
|
||||
- half r;
|
||||
- r.x = ptr->x;
|
||||
- return r;
|
||||
-}
|
||||
-#endif
|
||||
-
|
||||
-template<typename T> inline __device__
|
||||
-void vStore(volatile T* ptr, const T val) {
|
||||
- *ptr = val;
|
||||
-}
|
||||
-
|
||||
-#ifdef CUDA_HAS_HALF
|
||||
-template<> inline __device__
|
||||
-void vStore<half>(volatile half* ptr, const half val) {
|
||||
- ptr->x = val.x;
|
||||
-}
|
||||
-#endif
|
||||
-
|
||||
// Assumptions:
|
||||
// - there is exactly 1 block
|
||||
// - THREADS is the number of producer threads
|
||||
--
|
||||
2.12.0.367.g23dc2f6d3c-goog
|
||||
|
66
third_party/nccl/nccl.BUILD
vendored
66
third_party/nccl/nccl.BUILD
vendored
@ -1,66 +0,0 @@
|
||||
# NVIDIA nccl
|
||||
# A package of optimized primitives for collective multi-GPU communication.
|
||||
|
||||
licenses(["notice"]) # BSD
|
||||
|
||||
exports_files(["LICENSE.txt"])
|
||||
|
||||
load("@local_config_cuda//cuda:build_defs.bzl", "cuda_default_copts", "if_cuda")
|
||||
|
||||
SRCS = [
|
||||
"src/all_gather.cu",
|
||||
"src/all_reduce.cu",
|
||||
"src/broadcast.cu",
|
||||
"src/core.cu",
|
||||
"src/libwrap.cu",
|
||||
"src/reduce.cu",
|
||||
"src/reduce_scatter.cu",
|
||||
]
|
||||
|
||||
# Copy .cu to .cu.cc so they can be in srcs of cc_library.
|
||||
[
|
||||
genrule(
|
||||
name = "gen_" + src,
|
||||
srcs = [src],
|
||||
outs = [src + ".cc"],
|
||||
cmd = "cp $(location " + src + ") $(location " + src + ".cc)",
|
||||
)
|
||||
for src in SRCS
|
||||
]
|
||||
|
||||
SRCS_CU_CC = [src + ".cc" for src in SRCS]
|
||||
|
||||
cc_library(
|
||||
name = "nccl",
|
||||
srcs = if_cuda(SRCS_CU_CC + glob(["src/*.h"])),
|
||||
hdrs = if_cuda(["src/nccl.h"]),
|
||||
copts = [
|
||||
"-DCUDA_MAJOR=0",
|
||||
"-DCUDA_MINOR=0",
|
||||
"-DNCCL_MAJOR=0",
|
||||
"-DNCCL_MINOR=0",
|
||||
"-DNCCL_PATCH=0",
|
||||
"-Iexternal/nccl_archive/src",
|
||||
"-O3",
|
||||
] + cuda_default_copts(),
|
||||
linkopts = select({
|
||||
"@%ws%//tensorflow:android": [
|
||||
"-pie",
|
||||
],
|
||||
"@%ws%//tensorflow:darwin": [
|
||||
"-Wl,-framework",
|
||||
"-Wl,CoreFoundation",
|
||||
"-Wl,-framework",
|
||||
"-Wl,Security",
|
||||
],
|
||||
"@%ws%//tensorflow:ios": [],
|
||||
"@%ws%//tensorflow:windows": [
|
||||
"ws2_32.lib",
|
||||
],
|
||||
"//conditions:default": [
|
||||
"-lrt",
|
||||
],
|
||||
}),
|
||||
visibility = ["//visibility:public"],
|
||||
deps = ["@local_config_cuda//cuda:cuda_headers"],
|
||||
)
|
@ -1,39 +0,0 @@
|
||||
build:cuda --crosstool_top=@local_config_cuda//crosstool:toolchain
|
||||
build:cuda --define=using_cuda=true --define=using_cuda_nvcc=true
|
||||
|
||||
build:cuda_clang --crosstool_top=@local_config_cuda//crosstool:toolchain
|
||||
build:cuda_clang --define=using_cuda=true --define=using_cuda_clang=true
|
||||
|
||||
build:win-cuda --define=using_cuda=true --define=using_cuda_nvcc=true
|
||||
|
||||
build:mkl --define=using_mkl=true
|
||||
|
||||
build:sycl --crosstool_top=@local_config_sycl//crosstool:toolchain
|
||||
build:sycl --define=using_sycl=true
|
||||
|
||||
build:sycl_asan --crosstool_top=@local_config_sycl//crosstool:toolchain
|
||||
build:sycl_asan --define=using_sycl=true --copt -fno-omit-frame-pointer --copt -fsanitize-coverage=3 --copt -DGPR_NO_DIRECT_SYSCALLS --linkopt -fPIC --linkopt -fsanitize=address
|
||||
|
||||
build --force_python=py$PYTHON_MAJOR_VERSION
|
||||
build --host_force_python=py$PYTHON_MAJOR_VERSION
|
||||
build --python$PYTHON_MAJOR_VERSION_path=$PYTHON_BINARY
|
||||
build --define=use_fast_cpp_protos=true
|
||||
build --define=allow_oversize_protos=true
|
||||
|
||||
build --define PYTHON_BIN_PATH=$PYTHON_BINARY
|
||||
test --define PYTHON_BIN_PATH=$PYTHON_BINARY
|
||||
test --force_python=py$PYTHON_MAJOR_VERSION
|
||||
test --host_force_python=py$PYTHON_MAJOR_VERSION
|
||||
run --define PYTHON_BIN_PATH=$PYTHON_BINARY
|
||||
|
||||
build --spawn_strategy=standalone
|
||||
test --spawn_strategy=standalone
|
||||
run --spawn_strategy=standalone
|
||||
|
||||
build --genrule_strategy=standalone
|
||||
test --genrule_strategy=standalone
|
||||
run --genrule_strategy=standalone
|
||||
|
||||
build -c opt
|
||||
test -c opt
|
||||
run -c opt
|
@ -1,159 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright 2015 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ==============================================================================
|
||||
|
||||
set -e -o errexit
|
||||
|
||||
if [ -d "../org_tensorflow" ]; then
|
||||
script_path="../org_tensorflow"
|
||||
else
|
||||
# Prefix expected paths with ./ locally and external/reponame/ for remote repos.
|
||||
# TODO(kchodorow): remove once runfiles paths are fixed, see
|
||||
# https://github.com/bazelbuild/bazel/issues/848.
|
||||
script_path=$(dirname $(dirname $(dirname "$0")))
|
||||
script_path=${script_path:-.}
|
||||
fi
|
||||
|
||||
function main {
|
||||
setup_python "$1"
|
||||
exit 0
|
||||
}
|
||||
|
||||
function python_path {
|
||||
"$PYTHON_BIN_PATH" - <<END
|
||||
from __future__ import print_function
|
||||
import site
|
||||
import os
|
||||
|
||||
try:
|
||||
input = raw_input
|
||||
except NameError:
|
||||
pass
|
||||
|
||||
python_paths = []
|
||||
if os.getenv('PYTHONPATH') is not None:
|
||||
python_paths = os.getenv('PYTHONPATH').split(':')
|
||||
try:
|
||||
library_paths = site.getsitepackages()
|
||||
except AttributeError:
|
||||
from distutils.sysconfig import get_python_lib
|
||||
library_paths = [get_python_lib()]
|
||||
all_paths = set(python_paths + library_paths)
|
||||
|
||||
paths = []
|
||||
for path in all_paths:
|
||||
if os.path.isdir(path):
|
||||
paths.append(path)
|
||||
|
||||
if len(paths) == 1:
|
||||
print(paths[0])
|
||||
else:
|
||||
ret_paths = ",".join(paths)
|
||||
print(ret_paths)
|
||||
END
|
||||
}
|
||||
|
||||
function default_python_path {
|
||||
PYTHON_ARG="$1" "$PYTHON_BIN_PATH" - <<END
|
||||
from __future__ import print_function
|
||||
import os
|
||||
|
||||
default = os.getenv('PYTHON_ARG')
|
||||
default = str(default)
|
||||
print(default)
|
||||
END
|
||||
}
|
||||
|
||||
function setup_python {
|
||||
PYTHON_BIN_PATH="$1";
|
||||
|
||||
# TODO(ngiraldo): move most of these checks to root configure
|
||||
if [ -z "$PYTHON_BIN_PATH" ]; then
|
||||
echo "PYTHON_BIN_PATH was not provided. Did you run configure?"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -x "$PYTHON_BIN_PATH" ] || [ -d "$PYTHON_BIN_PATH" ]; then
|
||||
echo "PYTHON_BIN_PATH is not executable. Is it the python binary?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local python_major_version=$("${PYTHON_BIN_PATH}" -c 'from __future__ import print_function; import sys; print(sys.version_info[0]);')
|
||||
if [ "$python_major_version" == "" ]; then
|
||||
echo -e "\n\nERROR: Problem getting python version. Is $PYTHON_BIN_PATH the correct python binary?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# TODO(ngiraldo): confirm if these checks are really necessary, remove if not
|
||||
if [ -z "$PYTHON_LIB_PATH" ]; then
|
||||
local python_lib_path
|
||||
# Split python_path into an array of paths, this allows path containing spaces
|
||||
IFS=','
|
||||
python_lib_path=($(python_path))
|
||||
unset IFS
|
||||
|
||||
if [ 1 = "$USE_DEFAULT_PYTHON_LIB_PATH" ]; then
|
||||
PYTHON_LIB_PATH="$(default_python_path "${python_lib_path[0]}")"
|
||||
echo "Using python library path: $PYTHON_LIB_PATH"
|
||||
|
||||
else
|
||||
echo "Found possible Python library paths:"
|
||||
for x in "${python_lib_path[@]}"; do
|
||||
echo " $x"
|
||||
done
|
||||
set -- "${python_lib_path[@]}"
|
||||
echo "Please input the desired Python library path to use. Default is ["$1"]"
|
||||
read b || true
|
||||
if [ "$b" == "" ]; then
|
||||
PYTHON_LIB_PATH="$(default_python_path "${python_lib_path[0]}")"
|
||||
echo "Using python library path: $PYTHON_LIB_PATH"
|
||||
else
|
||||
PYTHON_LIB_PATH="$b"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -d "$PYTHON_LIB_PATH" -a -x "$PYTHON_LIB_PATH"; then
|
||||
python_lib="$PYTHON_LIB_PATH"
|
||||
else
|
||||
echo -e "\n\nERROR: Invalid python library path: ${PYTHON_LIB_PATH}."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Convert python path to Windows style before writing into bazel.rc
|
||||
if is_windows; then
|
||||
PYTHON_BIN_PATH="$(cygpath -m "$PYTHON_BIN_PATH")"
|
||||
fi
|
||||
|
||||
# TODO(ngiraldo): move all below to root configure
|
||||
# Write tools/bazel.rc
|
||||
echo "# Autogenerated by configure: DO NOT EDIT" > tools/bazel.rc
|
||||
sed -e "s/\$PYTHON_MAJOR_VERSION/$python_major_version/g" \
|
||||
-e "s|\$PYTHON_BINARY|\"$PYTHON_BIN_PATH\"|g" \
|
||||
tools/bazel.rc.template >> tools/bazel.rc
|
||||
# Write tools/python_bin_path.sh
|
||||
echo "export PYTHON_BIN_PATH=\"$PYTHON_BIN_PATH\"" > tools/python_bin_path.sh
|
||||
}
|
||||
|
||||
PLATFORM="$(uname -s | tr 'A-Z' 'a-z')"
|
||||
function is_windows() {
|
||||
# On windows, the shell script is actually running in msys
|
||||
if [[ "${PLATFORM}" =~ msys_nt* ]]; then
|
||||
true
|
||||
else
|
||||
false
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
Loading…
Reference in New Issue
Block a user