cucim
cucim copied to clipboard
Use scikit-build
Other RAPIDS libraries have been moving to scikit-build for Python packages, this integrates nicely with CMake and can simplify the build process (as well as making other package builds like wheels easier). Would be good to investigate doing the same for cuCIM
cc @vyasr (who has some experience here)
If cuCIM moves forward with this transition I would recommend also making use of rapids-cmake, which has a lot of the helper functions I wrote to simplify the process.
This PR ( https://github.com/rapidsai/cudf/pull/10919 ) making this change to cuDF could serve as a good example
Maybe a simpler example case is this KvikIO PR ( https://github.com/rapidsai/kvikio/pull/32 )
@jakirkham requested that I share additional info about wheel builds here:
cuCIM builds wheels in a different way than most of RAPIDS. The guide for RAPIDS wheel builds says to remove versioneer and migrate to pyproject.toml. If migrating to a build system that is more similar to the rest of RAPIDS, cuCIM should remove its usage of versioneer. Another part of this migration would be to move from the current setup.py to pyproject.toml.
Additional context on rapids-cmake: I noticed a lot of CMake dependencies that are duplicating pinnings and features that are handled by rapids-cmake.
Examples of dependencies supplied by rapids-cmake: https://docs.rapids.ai/api/rapids-cmake/stable/api/#cpm-pre-configured-packages
This includes:
- fmt: https://github.com/rapidsai/cucim/blob/branch-23.10/cpp/cmake/deps/fmt.cmake
- benchmark: https://github.com/rapidsai/cucim/blob/branch-23.10/cpp/cmake/deps/googlebenchmark.cmake
- gtest: https://github.com/rapidsai/cucim/blob/branch-23.10/cpp/cmake/deps/googletest.cmake
- rmm: https://github.com/rapidsai/cucim/blob/branch-23.10/cpp/cmake/deps/rmm.cmake
A good chunk of this was done in recent PRs:
- https://github.com/rapidsai/cucim/pull/615
- https://github.com/rapidsai/cucim/pull/617
- https://github.com/rapidsai/cucim/pull/619
- https://github.com/rapidsai/cucim/pull/622
Going to close this out. Anything else can be raised in more focused issues