Problem
RAPIDS pip devcontainers install prebuilt library wheels, but direct C++ builds invoke CMake without scikit-build-core so those prebuilt libraries aren't discovered from the cmake.prefix entry-point (that only helps in C++ wheel builds which use scikit-build-core). Then rapids_cpm_find() clones and builds an already-installed dependency from source.
This has two costs:
- pip devcontainer builds do unnecessary upstream compilation;
- downstream projects accumulate private build dependencies of the source-built upstream library, as seen when cuGraph and cuML needed cuVS cutile dependencies.
rapids_cython_find_prefix_paths() solves this by adding the discovered wheel library paths to CMAKE_PREFIX_PATH before resolving dependencies.
Libraries that need this
Already handled:
Missing and need PRs:
Acceptance criteria
For each missing project:
- include
cython-core/find_prefix_paths.cmake;
- find the active Python interpreter;
- prepend discovered wheel prefixes to
CMAKE_PREFIX_PATH before dependency resolution;
- enable
FIND_LIBRARY_USE_LIB64_PATHS;
- verify that configuring CMake in a pip devcontainer reports installed RAPIDS dependencies as local packages instead of populating their
_deps/*-src trees
Problem
RAPIDS pip devcontainers install prebuilt library wheels, but direct C++ builds invoke CMake without scikit-build-core so those prebuilt libraries aren't discovered from the
cmake.prefixentry-point (that only helps in C++ wheel builds which use scikit-build-core). Thenrapids_cpm_find()clones and builds an already-installed dependency from source.This has two costs:
rapids_cython_find_prefix_paths()solves this by adding the discovered wheel library paths toCMAKE_PREFIX_PATHbefore resolving dependencies.Libraries that need this
Already handled:
Missing and need PRs:
Acceptance criteria
For each missing project:
cython-core/find_prefix_paths.cmake;CMAKE_PREFIX_PATHbefore dependency resolution;FIND_LIBRARY_USE_LIB64_PATHS;_deps/*-srctrees