Skip to content

[REFACTOR] Simplify standalone TIRx CMake - #20749

Merged
tqchen merged 6 commits into
apache:mainfrom
tqchen:tirx-cmake-cleanup
Oct 15, 2026
Merged

tqchen merged 6 commits into
apache:mainfrom
tqchen:tirx-cmake-cleanup

Conversation

@tqchen

@tqchen tqchen commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Organize the core build around native TVM_TIRX_* options, explicit compilation policies, and reusable source targets. Build the pinned FFI source within the core, keep opt-in C++ tests in their own subtree, and keep standalone installation beside the core/backend definitions. Embedding parents own their installation rules.

Expose tvm_tirx::header, tvm_tirx::shared, and tvm_runtime::shared for installed consumers. Python-backed discovery reports the normal package's public headers and core shared libraries; consumers find and link FFI explicitly. TIRx installs only its own artifacts, while parent extensions handle their backend integration privately. Update source and wheel entry points for the dependency layout, native option names, and quoted CMAKE_ARGS environment settings.

Move the pinned FFI submodule into the core package and update source consumers to use its new location.
Use native package options and target policies for the standalone core, with source-built FFI dependencies and public package exports. Keep tests and installation separate from reusable target setup, and adapt parent consumers to the core interfaces.
Use the core configuration directly throughout parent backend integrations and update build entry points to the namespaced settings.
Read additional native CMake settings from the environment with quoted values preserved. Keep those settings scoped to TVM configuration and document their use for native and Python package builds.
Group native options by backend, expose directory compilation policy and target aliases, and keep only origin RPATH setup in the shared helper. Install enabled backend libraries beside their module definitions.

Install TIRx-owned artifacts with Python-backed native and wheel discovery, leaving installed FFI dependencies to their separate package. Allow explicit C++ test configuration in source parents and preserve their executable output layout.
Expose the header, compiler shared, and runtime shared targets. Keep installed discovery focused on core paths and make consumers find and link FFI explicitly, with backend integration owned privately by the parent.

Install standalone core and backend libraries under PROJECT_IS_TOP_LEVEL and let source parents own their installation rules. Preserve internal static builds while removing public static targets and generated build-option metadata.
@tqchen
tqchen merged commit f4137df into apache:main Oct 15, 2026
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants