forked from iree-org/iree
-
Notifications
You must be signed in to change notification settings - Fork 0
/
configure_bazel.py
67 lines (55 loc) · 2.13 KB
/
configure_bazel.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# Copyright 2020 Google LLC
#
# 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
#
# https://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.
import platform
import os
import subprocess
import sys
def normalize_path(p):
if platform.system() == "Windows":
# Sure. Good idea, bazel.
return p.replace("\\", "/")
return p
def write_platform(bazelrc):
platform_config = "generic_clang"
if platform.system() == "Windows":
platform_config = "windows"
print("build --config={}".format(platform_config), file=bazelrc)
def write_python_bin(bazelrc):
python_bin = normalize_path(sys.executable)
print("build --python_path=\"{}\"".format(python_bin), file=bazelrc)
# IREE extension compilation requires PYTHON_BIN
print("build --action_env PYTHON_BIN=\"{}\"".format(python_bin), file=bazelrc)
# TensorFlow defines this one. No idea why.
print(
"build --action_env PYTHON_BIN_PATH=\"{}\"".format(python_bin),
file=bazelrc)
def write_python_path(bazelrc):
# For some reason, bazel doesn't always find the user site path, which
# is typically where "pip install --user" libraries end up. Inject it.
try:
user_site = subprocess.check_output(
[sys.executable, "-m", "site", "--user-site"]).decode("utf-8").strip()
print("Found user site directory:", user_site)
except OSError:
print("Could not resolve user site directory")
return
print(
"build --action_env PYTHONPATH=\"{}\"".format(normalize_path(user_site)),
file=bazelrc)
local_bazelrc = os.path.join(os.path.dirname(__file__), "configured.bazelrc")
with open(local_bazelrc, "wt") as bazelrc:
write_platform(bazelrc)
write_python_bin(bazelrc)
write_python_path(bazelrc)
print("Wrote", local_bazelrc)