Skip to content

Ensure nested C++ projects discover CMake packages installed by RAPIDS wheels #325

Description

@bdice

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:

  • cuDF
  • rapidsmpf

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

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions