[cmake] reorganize CMake harness/targets#36
Conversation
e56918f to
551006f
Compare
551006f to
3b33d18
Compare
3b33d18 to
c95ed74
Compare
…rgets for proper consumption from outside packages
… uncontrollably affect BLIS (which is not sanitizable)
c95ed74 to
ee8cab5
Compare
There was a problem hiding this comment.
Pull request overview
This PR refactors TAPP’s CMake build/packaging to export consumable targets (tapp::api, tapp::reference) and reorganizes the reference implementation, aiming to support downstream find_package(tapp) usage.
Changes:
- Split build logic into
api/andreference_implementation/subprojects with consistentTAPP_*variables and exported targets. - Added a CMake package config (
cmake/tapp-config.cmake.in) and target export/install rules. - Added a new consumer smoke-test project under
test/consume.
Reviewed changes
Copilot reviewed 7 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
CMakeLists.txt |
Renames version variables, sets install dirs, adds package export/config generation. |
api/CMakeLists.txt |
Defines tapp-api as exported tapp::api and installs headers/target. |
reference_implementation/CMakeLists.txt |
Creates exported tapp::reference, links to API, adds optional TBLIS bindings and install rules. |
cmake/tapp-config.cmake.in |
Implements find_package(tapp COMPONENTS ...) config with component checks. |
reference_implementation/tblis_bindings/tblis_bind.h |
Declares exported TBLIS binding entry points. |
reference_implementation/tblis_bindings/tblis_bind.cpp |
Implements TBLIS binding logic (including tensor reduction/compare helpers). |
test/consume/CMakeLists.txt |
Adds a standalone project intended to validate downstream consumption. |
test/consume/smoke.c |
Minimal runtime smoke test exercising handle create/destroy via installed headers/targets. |
.github/workflows/cmake.yml |
Adjusts sanitizer flag handling during CMake configure. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
4d57bdd to
bf7a8bd
Compare
bf7a8bd to
9125da7
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 9 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…st default to TAPP::reference
SpaceyLake
left a comment
There was a problem hiding this comment.
It looks good to me! But I am not experienced enough to feel like I understand it all. I think it would be good if @janbrandejs also looked at it.
we probably want to consider this before any additional PRs as cuTENSOR and others would have to be revised in response to this ... |
… than those in tapp::api are needed to consume it.
…pp::reference) since everything else depends on it one can imagine wanting to only install tapp::api without installing tapp::reference when installing TAPP bindings to a third-party tensor library
|
i need to check if the (unofficial) tblis as executor is not broken by this change |
janbrandejs
left a comment
There was a problem hiding this comment.
all my checks passed and the proposed cmake restructuring makes good sense
This pull request refactors the build and packaging system for the TAPP project to provide a modern, modular CMake setup with proper package export and consumption support. It splits the reference implementation into its own directory, introduces a CMake package config for easy downstream usage, and updates naming conventions throughout. The changes also add tests for consuming TAPP both from the build and install trees, ensuring the package can be used as intended.
CMake build and packaging improvements:
CMakeLists.txtto use consistent naming (TAPP_*), moved the reference implementation toreference_implementation/CMakeLists.txt, and updated install directory variables for modularity and clarity. [1] [2] [3]cmake/tapp-config.cmake.in) for downstream projects to easily find and use TAPP components (api,reference). This includes versioning and component checking. [1] [2]Installation and export enhancements:
tapp::api,tapp::reference). [1] [2]Testing and consumption improvements:
test/consume) and corresponding workflow steps in.github/workflows/cmake.ymlto verify that TAPP can be consumed from both the build and install trees, ensuring package usability for downstream users. [1] [2] [3]Miscellaneous adjustments:
TAPP_BUILD_EXERCISEinstead ofTAPP_REFERENCE_BUILD_EXERCISE).tblis-staticfor tests when TBLIS is enabled.These changes make the TAPP project easier to build, install, and integrate into other CMake-based projects, while maintaining compatibility and modularity.