cucim icon indicating copy to clipboard operation
cucim copied to clipboard

Use scikit-build

Open jakirkham opened this issue 2 years ago • 2 comments

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)

jakirkham avatar Jun 06 '22 21:06 jakirkham

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.

vyasr avatar Jun 07 '22 15:06 vyasr

This PR ( https://github.com/rapidsai/cudf/pull/10919 ) making this change to cuDF could serve as a good example

jakirkham avatar Jun 07 '22 23:06 jakirkham

Maybe a simpler example case is this KvikIO PR ( https://github.com/rapidsai/kvikio/pull/32 )

jakirkham avatar Oct 18 '22 20:10 jakirkham

@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.

bdice avatar Aug 08 '23 20:08 bdice

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

bdice avatar Aug 08 '23 20:08 bdice

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

jakirkham avatar Nov 10 '23 04:11 jakirkham