Skip to content

Commit

Permalink
Update rapids-cmake (branch-24.12@03ec7ef) (#787)
Browse files Browse the repository at this point in the history
* Update rapids-cmake (branch-24.12@03ec7ef)

 Needed to support newer CCCL.

* Fix version override logic.

* Remove duplicate rapids_cpm_init call

* More work on versions.json.
  • Loading branch information
alliepiper authored Nov 1, 2024
1 parent 31b784e commit cc3f9ad
Show file tree
Hide file tree
Showing 222 changed files with 2,521 additions and 4,545 deletions.
5 changes: 1 addition & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ include(rapids-cuda)
include(rapids-export)
include(rapids-find)

rapids_cpm_init()
rapids_cpm_package_override("${CMAKE_CURRENT_SOURCE_DIR}/cmake/versions.json")
rapids_cpm_init(OVERRIDE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/versions.json")

if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
include(rapids-cuda)
Expand Down Expand Up @@ -106,8 +105,6 @@ rapids_find_package(
BUILD_EXPORT_SET matx-exports
INSTALL_EXPORT_SET matx-exports)

rapids_cpm_init()

# Create our transitive target to pass build properties to external users and our own build environment
add_library(matx INTERFACE)
add_library(matx::matx ALIAS matx)
Expand Down
23 changes: 15 additions & 8 deletions cmake/rapids-cmake/.github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@

#cmake code owners
**/CMakeLists.txt @rapidsai/rapids-cmake-codeowners
*.cmake @rapidsai/rapids-cmake-codeowners
/docs/ @rapidsai/rapids-cmake-codeowners
/example/ @rapidsai/rapids-cmake-codeowners
/rapids-cmake/ @rapidsai/rapids-cmake-codeowners
/testing/ @rapidsai/rapids-cmake-codeowners

#CI code owners
/.github/ @rapidsai/ci-codeowners
/ci/ @rapidsai/ci-codeowners
/.pre-commit-config.yaml @rapidsai/ci-codeowners

#build/ops code owners
.github/ @rapidsai/ops-codeowners
ci/ @rapidsai/ops-codeowners
conda/ @rapidsai/ops-codeowners
**/Dockerfile @rapidsai/ops-codeowners
**/.dockerignore @rapidsai/ops-codeowners
docker/ @rapidsai/ops-codeowners
#packaging code owners
/.devcontainer/ @rapidsai/packaging-codeowners
/conda/ @rapidsai/packaging-codeowners
/dependencies.yaml @rapidsai/packaging-codeowners
/build.sh @rapidsai/packaging-codeowners
pyproject.toml @rapidsai/packaging-codeowners
75 changes: 13 additions & 62 deletions cmake/rapids-cmake/.github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,62 +1,13 @@
<!--
Thank you for contributing to rapids-cmake :)
Here are some guidelines to help the review process go smoothly.
1. Please write a description in this text box of the changes that are being
made.
2. Please ensure that you have followed the following guidelines for the changes made/features
added.
- Each function should follow the `rapids_<component>_<file_name>` naming pattern
- Each function should go into a separate `.cmake` file in the appropriate directory
- Each user facing `.cmake` file should have include guards (`include_guard(GLOBAL)`)
- Each user facing `.cmake` file should be documented using the rst structure
- Each user facing function should be added to the `cmake-format.json` document
- Run `cmake-genparsers -f json` on the `.cmake` file as a starting point
- Each function first line should be `list(APPEND CMAKE_MESSAGE_CONTEXT "rapids.<component>.<function>")`
- Internal variables for things like `cmake_parse_arguments` should use `_RAPIDS`
instead of `RAPIDS`, so we don't incorrectly use an existing variable like `RAPIDS_VERSION`
- A file should not modify any state simply by being included. State modification should
only occur inside functions unless absolutely necessary due to restrictions of the CMake
language.
- Any files that do need to break this rule can't be part of `rapids-<component>.cmake`.
3. If you are closing an issue please use one of the automatic closing words as
noted here: https://help.github.com/articles/closing-issues-using-keywords/
4. If your pull request is not ready for review but you want to make use of the
continuous integration testing facilities please mark your pull request as Draft.
https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/changing-the-stage-of-a-pull-request#converting-a-pull-request-to-a-draft
5. If your pull request is ready to be reviewed without requiring additional
work on top of it, then remove it from "Draft" and make it "Ready for Review".
https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/changing-the-stage-of-a-pull-request#marking-a-pull-request-as-ready-for-review
If assistance is required to complete the functionality, for example when the
CMake code of a feature is complete but downstream testing is still required,
then add the label `help wanted` so that others can triage and assist.
The additional changes then can be implemented on top of the same PR.
If the assistance is done by members of the rapidsAI team, then no
additional actions are required by the creator of the original PR for this,
otherwise the original author of the PR needs to give permission to the
person(s) assisting to commit to their personal fork of the project. If that
doesn't happen then a new PR based on the code of the original PR can be
opened by the person assisting, which then will be the PR that will be
merged.
6. Once all work has been done and review has taken place please do not add
features or make changes out of the scope of those requested by the reviewer
(doing this just add delays as already reviewed code ends up having to be
re-reviewed/it is hard to tell what is new etc!). Further, please do not
rebase your branch on main/force push/rewrite history, doing any of these
causes the context of any comments made by reviewers to be lost. If
conflicts occur against main they should be resolved by merging main
into the branch used for making the pull request.
Many thanks in advance for your cooperation!
-->
## Description
<!-- Provide a standalone description of changes in this PR. -->
<!-- Reference any issues closed by this PR with "closes #1234". -->
<!-- Note: The pull request title will be included in the CHANGELOG. -->

## Checklist
- [ ] I am familiar with the [Contributing Guidelines](https://github.com/rapidsai/rapids-cmake/blob/HEAD/CONTRIBUTING.md).
- [ ] New or existing tests cover these changes.
- [ ] The documentation is up to date with these changes.
- [ ] The `cmake-format.json` is up to date with these changes.
- [ ] I have added new files under rapids-cmake/
- [ ] I have added include guards (`include_guard(GLOBAL)`)
- [ ] I have added the associated docs/ rst file and update the api.rst
1 change: 1 addition & 0 deletions cmake/rapids-cmake/.github/ops-bot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ branch_checker: true
label_checker: true
release_drafter: true
external_contributors: false
forward_merger: true
90 changes: 89 additions & 1 deletion cmake/rapids-cmake/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,91 @@
# rapids-cmake 24.10.00 (9 Oct 2024)

## 🚨 Breaking Changes

- update fmt (to 11.0.2) and spdlog (to 1.14.1) ([#689](https://github.com/rapidsai/rapids-cmake/pull/689)) [@jameslamb](https://github.com/jameslamb)
- Remove 24.10 deprecated commands ([#665](https://github.com/rapidsai/rapids-cmake/pull/665)) [@robertmaynard](https://github.com/robertmaynard)

## 🐛 Bug Fixes

- Add workaround for gcc bug in cuco ([#685](https://github.com/rapidsai/rapids-cmake/pull/685)) [@miscco](https://github.com/miscco)
- Revert &quot;Update to CPM 0.40.2 to fix CMake 3.30 deprecation warnings ([#678)&quot; (#679](https://github.com/rapidsai/rapids-cmake/pull/678)&quot; (#679)) [@jameslamb](https://github.com/jameslamb)
- Update to CPM 0.40.2 to fix CMake 3.30 deprecation warnings ([#678](https://github.com/rapidsai/rapids-cmake/pull/678)) [@robertmaynard](https://github.com/robertmaynard)
- Bump cuco version to fetch several bug fixes ([#677](https://github.com/rapidsai/rapids-cmake/pull/677)) [@PointKernel](https://github.com/PointKernel)
- rapids_cpm_nvcomp has consistent behavior on every cmake execution ([#676](https://github.com/rapidsai/rapids-cmake/pull/676)) [@robertmaynard](https://github.com/robertmaynard)
- rapids-cmake generated C++ files have current copyright year ([#674](https://github.com/rapidsai/rapids-cmake/pull/674)) [@robertmaynard](https://github.com/robertmaynard)
- `write_language` now properly walks up the `add_subdirectory` call stack ([#671](https://github.com/rapidsai/rapids-cmake/pull/671)) [@robertmaynard](https://github.com/robertmaynard)

## 📖 Documentation

- Update docs for overriding rapids-cmake ([#681](https://github.com/rapidsai/rapids-cmake/pull/681)) [@KyleFromNVIDIA](https://github.com/KyleFromNVIDIA)
- add ASSOCIATED_TARGETS to function signature in rapids_cython_create_modules() docs ([#670](https://github.com/rapidsai/rapids-cmake/pull/670)) [@jameslamb](https://github.com/jameslamb)

## 🚀 New Features

- Reduce cpm tests network usage ([#683](https://github.com/rapidsai/rapids-cmake/pull/683)) [@robertmaynard](https://github.com/robertmaynard)
- rapids-cmake tests no longer download CPM when `NO_CPM_CACHE` is set. ([#682](https://github.com/rapidsai/rapids-cmake/pull/682)) [@robertmaynard](https://github.com/robertmaynard)
- Remove deprecated rapids_export_find_package_* signatures ([#666](https://github.com/rapidsai/rapids-cmake/pull/666)) [@robertmaynard](https://github.com/robertmaynard)
- Upgrade nvcomp to 4.0.1 ([#633](https://github.com/rapidsai/rapids-cmake/pull/633)) [@vuule](https://github.com/vuule)

## 🛠️ Improvements

- Add INSTALL_TARGET argument to rapids_add_test() ([#692](https://github.com/rapidsai/rapids-cmake/pull/692)) [@KyleFromNVIDIA](https://github.com/KyleFromNVIDIA)
- Use CI workflow branch &#39;branch-24.10&#39; again ([#691](https://github.com/rapidsai/rapids-cmake/pull/691)) [@jameslamb](https://github.com/jameslamb)
- update fmt (to 11.0.2) and spdlog (to 1.14.1) ([#689](https://github.com/rapidsai/rapids-cmake/pull/689)) [@jameslamb](https://github.com/jameslamb)
- Add support for Python 3.12 ([#688](https://github.com/rapidsai/rapids-cmake/pull/688)) [@jameslamb](https://github.com/jameslamb)
- Update rapidsai/pre-commit-hooks ([#686](https://github.com/rapidsai/rapids-cmake/pull/686)) [@KyleFromNVIDIA](https://github.com/KyleFromNVIDIA)
- Drop Python 3.9 support ([#684](https://github.com/rapidsai/rapids-cmake/pull/684)) [@jameslamb](https://github.com/jameslamb)
- Allow nested lib location for nvcomp ([#675](https://github.com/rapidsai/rapids-cmake/pull/675)) [@KyleFromNVIDIA](https://github.com/KyleFromNVIDIA)
- Update pre-commit hooks ([#669](https://github.com/rapidsai/rapids-cmake/pull/669)) [@KyleFromNVIDIA](https://github.com/KyleFromNVIDIA)
- Improve update-version.sh ([#668](https://github.com/rapidsai/rapids-cmake/pull/668)) [@bdice](https://github.com/bdice)
- Remove 24.10 deprecated commands ([#665](https://github.com/rapidsai/rapids-cmake/pull/665)) [@robertmaynard](https://github.com/robertmaynard)

# rapids-cmake 24.08.00 (7 Aug 2024)

## 🚨 Breaking Changes

- Move required CMake version to 3.26.4 ([#627](https://github.com/rapidsai/rapids-cmake/pull/627)) [@robertmaynard](https://github.com/robertmaynard)
- Removes legacy rapids-cmake cython implementations as it is deprecated in 24.08 ([#614](https://github.com/rapidsai/rapids-cmake/pull/614)) [@robertmaynard](https://github.com/robertmaynard)
- Update CCCL to v2.5.0 ([#607](https://github.com/rapidsai/rapids-cmake/pull/607)) [@trxcllnt](https://github.com/trxcllnt)

## 🐛 Bug Fixes

- bs_thread_pool uses C++ 17 ([#662](https://github.com/rapidsai/rapids-cmake/pull/662)) [@KyleFromNVIDIA](https://github.com/KyleFromNVIDIA)
- Use `CMAKE_CUDA_ARCHITECTURES` value when ENV{CUDAARCHS} is set ([#659](https://github.com/rapidsai/rapids-cmake/pull/659)) [@robertmaynard](https://github.com/robertmaynard)
- Pass `GLOBAL_TARGETS` to `rapids_cpm_find()` in `rapids_cpm_bs_thread_pool()` ([#655](https://github.com/rapidsai/rapids-cmake/pull/655)) [@KyleFromNVIDIA](https://github.com/KyleFromNVIDIA)
- Add rapids_cpm_nvtx3 to cmake-format-rapids-cmake.json ([#652](https://github.com/rapidsai/rapids-cmake/pull/652)) [@KyleFromNVIDIA](https://github.com/KyleFromNVIDIA)
- generate_resource_spec uses the enabled languages to determine compiler ([#645](https://github.com/rapidsai/rapids-cmake/pull/645)) [@robertmaynard](https://github.com/robertmaynard)
- Set CUDA_RUNTIME_LIBRARY to documented case style ([#641](https://github.com/rapidsai/rapids-cmake/pull/641)) [@KyleFromNVIDIA](https://github.com/KyleFromNVIDIA)
- rapids_test_install_relocatable now handles SOVERSION target properties ([#636](https://github.com/rapidsai/rapids-cmake/pull/636)) [@robertmaynard](https://github.com/robertmaynard)
- Eval CMAKE_CUDA_ARCHITECTURES before ENV{CUDAARCHS} ([#624](https://github.com/rapidsai/rapids-cmake/pull/624)) [@robertmaynard](https://github.com/robertmaynard)

## 📖 Documentation

- Fix CPM package docs. ([#637](https://github.com/rapidsai/rapids-cmake/pull/637)) [@bdice](https://github.com/bdice)
- expand rapids-cmake cpm docs ([#613](https://github.com/rapidsai/rapids-cmake/pull/613)) [@robertmaynard](https://github.com/robertmaynard)

## 🚀 New Features

- Add rapids_cpm_bs_thread_pool() ([#651](https://github.com/rapidsai/rapids-cmake/pull/651)) [@KyleFromNVIDIA](https://github.com/KyleFromNVIDIA)
- proprietary_binary_cuda_version_mapping allows for better CUDA version mapping ([#648](https://github.com/rapidsai/rapids-cmake/pull/648)) [@robertmaynard](https://github.com/robertmaynard)
- use latest cuco with insert_or_apply CAS fix ([#646](https://github.com/rapidsai/rapids-cmake/pull/646)) [@srinivasyadav18](https://github.com/srinivasyadav18)
- Fetch the latest cuco with CAS fixes ([#644](https://github.com/rapidsai/rapids-cmake/pull/644)) [@PointKernel](https://github.com/PointKernel)
- Update to CPM v0.40.0 ([#642](https://github.com/rapidsai/rapids-cmake/pull/642)) [@robertmaynard](https://github.com/robertmaynard)
- Remove CCCL patch for PR 211. ([#640](https://github.com/rapidsai/rapids-cmake/pull/640)) [@bdice](https://github.com/bdice)
- Try any failing tests up to 3 times to guard against network issues ([#639](https://github.com/rapidsai/rapids-cmake/pull/639)) [@robertmaynard](https://github.com/robertmaynard)
- rapids_cmake_support_conda_env adds `-O0` to debug compile lines ([#635](https://github.com/rapidsai/rapids-cmake/pull/635)) [@robertmaynard](https://github.com/robertmaynard)
- Update cuco git tag to fetch new multiset data structure ([#628](https://github.com/rapidsai/rapids-cmake/pull/628)) [@PointKernel](https://github.com/PointKernel)
- Move required CMake version to 3.26.4 ([#627](https://github.com/rapidsai/rapids-cmake/pull/627)) [@robertmaynard](https://github.com/robertmaynard)
- Removes legacy rapids-cmake cython implementations as it is deprecated in 24.08 ([#614](https://github.com/rapidsai/rapids-cmake/pull/614)) [@robertmaynard](https://github.com/robertmaynard)
- Update CCCL to v2.5.0 ([#607](https://github.com/rapidsai/rapids-cmake/pull/607)) [@trxcllnt](https://github.com/trxcllnt)

## 🛠️ Improvements

- Use workflow branch 24.08 again ([#647](https://github.com/rapidsai/rapids-cmake/pull/647)) [@KyleFromNVIDIA](https://github.com/KyleFromNVIDIA)
- Build and test with CUDA 12.5.1 ([#643](https://github.com/rapidsai/rapids-cmake/pull/643)) [@KyleFromNVIDIA](https://github.com/KyleFromNVIDIA)
- Bump CCCL version to include cuda::std::span fix ([#631](https://github.com/rapidsai/rapids-cmake/pull/631)) [@sleeepyjack](https://github.com/sleeepyjack)
- Adopt CI/packaging codeowners ([#629](https://github.com/rapidsai/rapids-cmake/pull/629)) [@bdice](https://github.com/bdice)

# rapids-cmake 24.06.00 (5 Jun 2024)

## 🐛 Bug Fixes
Expand Down Expand Up @@ -40,7 +128,7 @@
- Migrate to `{{ stdlib(&quot;c&quot;) }}` ([#594](https://github.com/rapidsai/rapids-cmake/pull/594)) [@hcho3](https://github.com/hcho3)
- resolve &#39;file_key&#39; deprecation warning from rapids-dependency-file-generator ([#593](https://github.com/rapidsai/rapids-cmake/pull/593)) [@jameslamb](https://github.com/jameslamb)
- Prevent path conflict in builds ([#571](https://github.com/rapidsai/rapids-cmake/pull/571)) [@AyodeAwe](https://github.com/AyodeAwe)
- Bump cuco version to fetch the lastest set retrieve API ([#569](https://github.com/rapidsai/rapids-cmake/pull/569)) [@PointKernel](https://github.com/PointKernel)
- Bump cuco version to fetch the latest set retrieve API ([#569](https://github.com/rapidsai/rapids-cmake/pull/569)) [@PointKernel](https://github.com/PointKernel)
- Forward-merge branch-24.04 to branch-24.06 ([#563](https://github.com/rapidsai/rapids-cmake/pull/563)) [@bdice](https://github.com/bdice)

# rapids-cmake 24.04.00 (10 Apr 2024)
Expand Down
4 changes: 2 additions & 2 deletions cmake/rapids-cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#=============================================================================
# Copyright (c) 2021-2023, NVIDIA CORPORATION.
# Copyright (c) 2021-2024, NVIDIA CORPORATION.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -25,7 +25,7 @@
# cases it can fail due to CMAKE_MODULE_PREFIX not being exported properly

# Enforce the minimum required CMake version for all users
cmake_minimum_required(VERSION 3.23.1 FATAL_ERROR)
cmake_minimum_required(VERSION 3.26.4 FATAL_ERROR)

set(rapids-cmake-dir "${CMAKE_CURRENT_LIST_DIR}/rapids-cmake")
if(NOT DEFINED CACHE{rapids-cmake-dir})
Expand Down
2 changes: 1 addition & 1 deletion cmake/rapids-cmake/RAPIDS.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
# Allow users to control which version is used
if(NOT rapids-cmake-version)
# Define a default version if the user doesn't set one
set(rapids-cmake-version 24.06)
set(rapids-cmake-version 24.12)
endif()

# Allow users to control which GitHub repo is fetched
Expand Down
4 changes: 2 additions & 2 deletions cmake/rapids-cmake/ci/release/update-version.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# Copyright (c) 2021-2023, NVIDIA CORPORATION.
# Copyright (c) 2021-2024, NVIDIA CORPORATION.
################################
# rapids-cmake Version Updater #
################################
Expand All @@ -19,7 +19,7 @@ CURRENT_MINOR=$(echo $CURRENT_TAG | awk '{split($0, a, "."); print a[2]}')
CURRENT_PATCH=$(echo $CURRENT_TAG | awk '{split($0, a, "."); print a[3]}')
CURRENT_SHORT_TAG=${CURRENT_MAJOR}.${CURRENT_MINOR}

#Get <major>.<minor> for next version
# Get <major>.<minor> for next version
NEXT_MAJOR=$(echo $NEXT_FULL_TAG | awk '{split($0, a, "."); print a[1]}')
NEXT_MINOR=$(echo $NEXT_FULL_TAG | awk '{split($0, a, "."); print a[2]}')
NEXT_SHORT_TAG=${NEXT_MAJOR}.${NEXT_MINOR}
Expand Down
2 changes: 1 addition & 1 deletion cmake/rapids-cmake/ci/test_cpp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ EXITCODE=0
trap "EXITCODE=1" ERR
set +e

ctest -j20 --schedule-random --output-on-failure --no-tests=error
ctest -j20 --schedule-random --repeat until-pass:3 --output-on-failure --no-tests=error

rapids-logger "Test script exiting with value: $EXITCODE"
exit ${EXITCODE}
28 changes: 14 additions & 14 deletions cmake/rapids-cmake/cmake-format-rapids-cmake.json
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,15 @@
"nargs": 1
}
},
"rapids_cpm_bs_thread_pool": {
"pargs": {
"nargs": 0
},
"kwargs": {
"BUILD_EXPORT_SET": 1,
"INSTALL_EXPORT_SET": 1
}
},
"rapids_cpm_cccl": {
"pargs": {
"nargs": 0
Expand Down Expand Up @@ -152,15 +161,6 @@
"INSTALL_EXPORT_SET": 1
}
},
"rapids_cpm_libcudacxx": {
"pargs": {
"nargs": 0
},
"kwargs": {
"BUILD_EXPORT_SET": 1,
"INSTALL_EXPORT_SET": 1
}
},
"rapids_cpm_nvbench": {
"pargs": {
"nargs": 0,
Expand All @@ -183,7 +183,7 @@
"USE_PROPRIETARY_BINARY": 1
}
},
"rapids_cpm_rmm": {
"rapids_cpm_nvtx3": {
"pargs": {
"nargs": 0
},
Expand All @@ -192,22 +192,22 @@
"INSTALL_EXPORT_SET": 1
}
},
"rapids_cpm_spdlog": {
"rapids_cpm_rmm": {
"pargs": {
"nargs": 0
},
"kwargs": {
"BUILD_EXPORT_SET": 1,
"FMT_OPTION": 1,
"INSTALL_EXPORT_SET": 1
}
},
"rapids_cpm_thrust": {
"rapids_cpm_spdlog": {
"pargs": {
"nargs": 2
"nargs": 0
},
"kwargs": {
"BUILD_EXPORT_SET": 1,
"FMT_OPTION": 1,
"INSTALL_EXPORT_SET": 1
}
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#=============================================================================
# Copyright (c) 2022-2023, NVIDIA CORPORATION.
# Copyright (c) 2022-2024, NVIDIA CORPORATION.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#=============================================================================
cmake_minimum_required(VERSION 3.23.1)
cmake_minimum_required(VERSION 3.26.4)

project(rapids-dependencies LANGUAGES CXX)

Expand Down
Loading

0 comments on commit cc3f9ad

Please sign in to comment.