There are many Linux variants. This document provides project-specific requirements for setting up your environment and should be relatively translatable. It was written for a relatively recent, Debian-derived distribution. If you have issues on other systems, we accept issues or additions to the documentation.
Optional if you will only be using the CMake build for runtime deps.
Follow the install instructions and verify with: bazel --version
.
sudo apt install clang
Verify version with clang++ -v
. We have verified with the following versions:
Install python (note that if, on your distribution, python3 is the only option, you may be able to drop the “3”).
sudo apt install python3 python3-pip
Verify python version with python3 -V
. We have tested with >= 3.6. Some optional integrations (such as TensorFlow/Python may have more stringent requirements).
Install packages:
sudo pip3 install numpy
We support both Bazel and CMake, however, the Bazel build covers more parts of the system (tests, integrations, bindings, etc) whereas (currently) CMake is maintained for the runtime components (which will be consumed by other projects). This section covers building with Bazel.
The following environment variables must be set.
export CXX=clang++ export CC=clang export PYTHON_BIN="$(which python3)"
You can create a user.bazelrc
in the repository root with extra bazel configs that may be useful. We usually have something like this (make sure to make replacements as needed):
build --disk_cache=/REPLACE/WITH/CACHE/DIR --experimental_guard_against_concurrent_changes build:debug --compilation_mode=dbg --copt=-O2 --per_file_copt=iree@-O0 --strip=never
# Run all tests (as of Oct-23-2019, all tests build but some still fail in the # OSS version). bazel test -k iree/... test/... bindings/python/... # Or build with optimizations disabled (just for IREE, not for deps) and # debug symbols retained. This assumes you have an alias like above setup): bazel test --config=debug bindings/python/...
In general, build artifacts will be under the bazel-bin
directory at the top level.
TODO