Skip to content

[cmake] reorganize CMake harness/targets#36

Open
evaleev wants to merge 5 commits intomainfrom
evaleev/cmake/reorg-export
Open

[cmake] reorganize CMake harness/targets#36
evaleev wants to merge 5 commits intomainfrom
evaleev/cmake/reorg-export

Conversation

@evaleev
Copy link
Contributor

@evaleev evaleev commented Feb 7, 2026

  • can install/export TAPP targets for proper consumption from outside packages

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:

  • Refactored the main CMakeLists.txt to use consistent naming (TAPP_*), moved the reference implementation to reference_implementation/CMakeLists.txt, and updated install directory variables for modularity and clarity. [1] [2] [3]
  • Added CMake package config and export files (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:

  • Updated installation commands to export targets and headers for both the API and reference implementation, supporting modular component installs. [1] [2]
  • Set up install interface include directories and export names for targets (tapp::api, tapp::reference). [1] [2]

Testing and consumption improvements:

  • Added a new test project (test/consume) and corresponding workflow steps in .github/workflows/cmake.yml to verify that TAPP can be consumed from both the build and install trees, ensuring package usability for downstream users. [1] [2] [3]

Miscellaneous adjustments:

  • Updated option names and linking logic to match the new structure (e.g., TAPP_BUILD_EXERCISE instead of TAPP_REFERENCE_BUILD_EXERCISE).
  • Fixed linking of tblis-static for 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.

evaleev added a commit to ValeevGroup/SeQuant that referenced this pull request Feb 7, 2026
@evaleev evaleev force-pushed the evaleev/cmake/reorg-export branch from e56918f to 551006f Compare February 7, 2026 02:52
evaleev added a commit to ValeevGroup/SeQuant that referenced this pull request Feb 7, 2026
@evaleev evaleev force-pushed the evaleev/cmake/reorg-export branch from 551006f to 3b33d18 Compare February 7, 2026 03:03
evaleev added a commit to ValeevGroup/SeQuant that referenced this pull request Feb 7, 2026
evaleev added a commit to ValeevGroup/SeQuant that referenced this pull request Feb 7, 2026
@evaleev evaleev force-pushed the evaleev/cmake/reorg-export branch from 3b33d18 to c95ed74 Compare February 7, 2026 03:13
…rgets for proper consumption from outside packages
… uncontrollably affect BLIS (which is not sanitizable)
@evaleev evaleev force-pushed the evaleev/cmake/reorg-export branch from c95ed74 to ee8cab5 Compare February 7, 2026 03:25
evaleev added a commit to ValeevGroup/SeQuant that referenced this pull request Feb 7, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/ and reference_implementation/ subprojects with consistent TAPP_* 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.

evaleev added a commit to ValeevGroup/SeQuant that referenced this pull request Feb 7, 2026
@evaleev evaleev force-pushed the evaleev/cmake/reorg-export branch from 4d57bdd to bf7a8bd Compare February 7, 2026 04:57
@evaleev evaleev force-pushed the evaleev/cmake/reorg-export branch from bf7a8bd to 9125da7 Compare February 7, 2026 05:00
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.

1 participant