Note that packages will be placed in packaging/python/dist
with the canonical instructions. However, the setup scripts can be run from anywhere and will create build
and dist
directories where run. Wheels can be installed with pip3 install --user dist/*.whl
.
Most of IREE is built/packaged with CMake. For the parts that build with CMake, this is preferred.
Canonical instructions follow:
export LDFLAGS=-fuse-ld=/usr/bin/ld.lld export PYIREE_CMAKE_BUILD_ROOT="${HOME?}/build-iree-release" export IREE_SRC="${HOME?}/src/iree" rm -Rf "${PYIREE_CMAKE_BUILD_ROOT?}"; mkdir -p "${PYIREE_CMAKE_BUILD_ROOT?}" cmake -GNinja -B"${PYIREE_CMAKE_BUILD_ROOT?}" -H"${IREE_SRC}" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \ -DIREE_BUILD_PYTHON_BINDINGS=ON -DIREE_BUILD_SAMPLES=OFF (cd "${PYIREE_CMAKE_BUILD_ROOT?}" && ninja) (cd "${IREE_SRC?}/packaging/python" && ( rm -Rf build; python3 setup_compiler.py bdist_wheel; rm -Rf build; python3 setup_rt.py bdist_wheel))
If building TensorFlow integration wheels, then this must be done via Bazel. In this case, it can be easiest to just package everything from a Bazel build to avoid multiple steps.
Canonical instructions follow:
IREE_SRC=$HOME/src/iree export PYIREE_BAZEL_BUILD_ROOT="$IREE_SRC/bazel-bin" if which cygpath; then export PYIREE_BAZEL_BUILD_ROOT="$(cygpath -w "$PYIREE_BAZEL_BUILD_ROOT")" fi
Optionally add: --define=PYIREE_TF_DISABLE_KERNELS=1
to build a ‘thin’ (less functional) version without TensorFlow kernels. This should not be done for released binaries but can help while developing.
Note that bazel does not always build properly named artifacts. See the tool hack_python_package_from_runfiles.py
to extract and fixup artifacts from a bazel-bin directory. If using this mechanism, then the environment variable PYIREE_PYTHON_ROOT
should be set to a suitable temp directory.
cd $IREE_SRC bazel build -c opt \ //packaging/python:all_pyiree_packages
(cd $IREE_SRC/packaging/python && ( rm -Rf build; python3 setup_tf.py bdist_wheel))
(cd $IREE_SRC/packaging/python && ( rm -Rf build; python3 setup_compiler.py bdist_wheel))
(cd $IREE_SRC/packaging/python && ( rm -Rf build; python3 setup_rt.py bdist_wheel))