blob: 6fcae987693e13dfab27608f2e518faee610b3ac [file] [log] [blame] [view]
# Python packaging scripts.
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`.
## Building core wheels with CMake
Most of IREE is built/packaged with CMake. For the parts that build with CMake,
this is preferred.
Canonical instructions follow:
### Linux
```shell
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))
```
## Building IREE/TensorFlow wheels
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:
### Env Setup
```shell
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
```
### Building:
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.
```shell
cd $IREE_SRC
bazel build -c opt \
//packaging/python:all_pyiree_packages
```
# Packaging
```shell
(cd $IREE_SRC/packaging/python && (
rm -Rf build;
python3 setup_tf.py bdist_wheel))
```
```shell
(cd $IREE_SRC/packaging/python && (
rm -Rf build;
python3 setup_compiler.py bdist_wheel))
```
```shell
(cd $IREE_SRC/packaging/python && (
rm -Rf build;
python3 setup_rt.py bdist_wheel))
```