Skip to content

Discover CMake packages installed by wheels - #215

Open
bdice wants to merge 3 commits into
rapidsai:release/26.10from
bdice:fix-wheel-cmake-prefix
Open

Discover CMake packages installed by wheels#215
bdice wants to merge 3 commits into
rapidsai:release/26.10from
bdice:fix-wheel-cmake-prefix

Conversation

@bdice

@bdice bdice commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Adds rapids_cython_find_prefix_paths() so direct CMake builds in pip environments can discover packages provided by installed wheels.

Part of rapidsai/build-planning#325.

@copy-pr-bot

copy-pr-bot Bot commented Sep 8, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@bdice
bdice marked this pull request as ready for review September 8, 2026 22:58
@bdice
bdice requested a review from a team as a code owner September 8, 2026 22:58
@bdice

bdice commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

I guess this might not be needed if nvForest eliminates its dependencies on other RAPIDS libraries. @chyunsu3 Is #193 still targeting 26.10?

@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: cd169ad3-3a11-4fff-bfc0-c2dd9903febb

📥 Commits

Reviewing files that changed from the base of the PR and between edc29fb and 7b46a72.

📒 Files selected for processing (2)
  • python/libnvforest/CMakeLists.txt
  • python/nvforest/CMakeLists.txt

Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.


📝 Summary

Summary by CodeRabbit

  • Bug Fixes
    • Improved package discovery during installation and builds when Python is available.
    • Added support for locating libraries installed in standard 64-bit library directories.
    • Improved detection of Python-installed packages and libraries, including those installed through package wheels.
    • Reduced configuration issues when building across supported environments with libraries installed in common site-packages or 64-bit locations.

Walkthrough

CMake now detects the installed Python interpreter and uses Cython wheel prefixes for package discovery. CMake also enables lib64 library-path searches for RAPIDS wheel libraries.

Changes

Python package discovery

Layer / File(s) Summary
CMake Python path integration
cpp/CMakeLists.txt
When Python_FOUND is true, CMake collects Cython-derived wheel prefixes, enables FIND_LIBRARY_USE_LIB64_PATHS, and prepends the prefixes to CMAKE_PREFIX_PATH.
RAPIDS wheel library search
python/libnvforest/CMakeLists.txt, python/nvforest/CMakeLists.txt
The Python build configurations enable lib64 library-path searches for C++ libraries installed in RAPIDS wheels.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 7b46a

CMake can now locate RAPIDS dependencies installed from Python wheels, including libraries in adjacent lib64 directories. The change is ready to merge with no identified current-head risk.

Suggested reviewers: chyunsu3

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description check ✅ Passed The description accurately states that the pull request adds rapids_cython_find_prefix_paths() to discover packages from installed wheels during direct CMake builds.
Title check ✅ Passed The title clearly summarizes the main change: enabling CMake to discover packages installed by wheels.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CMake CUDA/C++ Cython / Python improvement Improves an existing functionality non-breaking Introduces a non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant