Build tracy by default in the Python runtime packages. (#14639)
This is accomplished by:
* Re-organizing the native dependencies under `iree._runtime_libs` and
`iree._runtime_libs_tracy`, which can co-exist in the same wheel.
* Have `runtime/setup.py` do an additional CMake build for
`_runtime_libs_tracy` if the env var `IREE_RUNTIME_BUILD_TRACY=ON`.
* Re-mash `setup.py` to make it happy with the new layout and make
everything optional.
* Split the package prefixes for the source and built directories.
* Move generated version.py to the built _runtime_libs package and
trampoline from `iree.runtime.version` to preserve the API.
* Modify the `_binding.py` loader (loaded at `iree.runtime` init time)
to dynamically switch its backing runtime based on the value of the
environment variable `IREE_PY_RUNTIME`, which can be `default` or
`tracy`.
* Rework all of the `__main__.py` wrappers (for `iree-run-module` and
such) to use the runtime library path found in the previous step.
This can be improved in the future to eliminate more binary size
duplication by adopting a busybox-like strategy as used on the compiler
(would also be a good time to enable LTO, clang, and debug symbols).
As-is, this ~doubles the size to about 7MiB, which is acceptable given
the usability benefit. I expect with such re-organizations, we can get
it to roughly half of its size prior to this change (1/4 after).
diff --git a/.gitignore b/.gitignore
index 569d140..42821b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,6 +52,7 @@
# Python deployment artifacts
*.whl
+*.egg-info
# Android Studio / Gradle files
.cxx