Skip to content

CMake backports for 3.2#6850

Merged
alliepiper merged 14 commits intoNVIDIA:branch/3.2.xfrom
alliepiper:cmake-backports-3.2.0
Dec 4, 2025
Merged

CMake backports for 3.2#6850
alliepiper merged 14 commits intoNVIDIA:branch/3.2.xfrom
alliepiper:cmake-backports-3.2.0

Conversation

@alliepiper
Copy link
Contributor

Loads of build system / infra changes that the libcudacxx/thrust/cub interdependency update depends on.

1. Rewrote `inspect_changes.sh` to python.
2. Split out project name, path, dependency information into new yaml file.
3. Simplified dependency specification (only direct dependencies are needed).
4. Split dependency specification into two types: full (use the pull_request matrix) and lite (use the pull_request_lite matrix).
5. Use new features to split some projects with expensive dependency chains into 'public' (public headers, etc) and `internal` (tests/examples/infra, etc). Dependencies are only added when the public API files change.
6. Update the ignored paths to include newer additions.
7. Add tests for inspect_changes to make it easier to test and validate modifications.
* Remove MSVC hint that is applied globally in CCCL.

* Fix oversubscription issue with lit precompile, label hack.

Moves the C2H tests earlier in the config so we can add the fake dependency to lit.
Explains and labels the hack we're using to avoid oversubscription.
* Drive-by fix to packaging test script. Building isn't needed at the moment, but this will save some headaches if we add any executables that need to be built to this preset.
* Fix warnings in nvbench_helper tests.
* Skip test sizes that OOM CI runners.
* Update boost dep to work with CMake 4+
* Enable CI coverage for nvbench_helper tests.
* Update inspect_changes smoke tests.
This is more robust than the github cache approach, which evicts caches
regularly due to a 10GB repo limit. The S3 cache will be more reliable
and persistent.

This also allows preprocessor caching in our linux devcontainers,
improving developer experience with faster build times.
…#6722)

* Remove special handling for dialect in Thrust's build system.
* Allow consumers to set CCCL_TOP_LEVEL_PROJECT.
  This enables python to build the c libraries it depends on.
* Force windows python builds to use ninja.
* Exclude python build artifacts from git.
* Fix python build to reuse CCCL's existing install rules.
  The old implementation reinvented the wheel and depended on variables that can't be relied upon.
* Fix CUB header extensions.
  We use .cuh, not .h in CUB. This broke our install rules.
* Fixup ptx_json header testing.
Did some drive-by cleanups/standardizing of how our internal libraries link together.
… public interface. (NVIDIA#6791)

* Change the MSVC preprocessor check to an error.
  When `/Zc:preprocessor` is not set, the build will error out before `#pragma message` directives are handled.
  Changing to an error ensures that this will be caught.
* Add /Zc:preprocessor and /Zc:__cplusplus to public libcudacxx::libcudacxx target.
* Remove dev build defs for /Zc:preprocessor and /Zc:__cplusplus.
* Recheck languages on successive `find_package(libcudacxx)` calls.
* Clean up dependency handling between projects.
* Set <project>_DIR when locating packages with our add_subdir helper.
  This ensures that it behaves the same as find_package, and that later calls to find_package will locate the same configs.
* Update test_packaging.sh to use the local repo for CPM.
* Enable CUDA language and verbose logging for CMake example configs.
* Reduce verbosity of libcudacxx package.
* Fix early return checks.
* Improve some option names / diagnostics.
* Remove check for unsupported CTK versions.
@copy-pr-bot
Copy link
Contributor

copy-pr-bot bot commented Dec 3, 2025

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@cccl-authenticator-app cccl-authenticator-app bot moved this from Todo to In Progress in CCCL Dec 3, 2025
@alliepiper
Copy link
Contributor Author

/ok to test

@github-actions

This comment has been minimized.

@bernhardmgruber
Copy link
Contributor

Q: Why do we need the backport? Do we have a bug that those are supposed to fix?

@github-actions

This comment has been minimized.

@alliepiper
Copy link
Contributor Author

Q: Why do we need the backport? Do we have a bug that those are supposed to fix?

The main motivation is that @pciolkosz needs the libcudacxx dependency on CUB for some work that he's backporting, and that is tied up / dependent on a bunch of the other CMake refactorings that have gone in recently.

Another benefit is that this adds the MSVC compat flags to our public packages in 3.2, which has already been reported as a frustration for some users trying out the RCs.

@alliepiper alliepiper marked this pull request as ready for review December 3, 2025 15:41
@alliepiper alliepiper requested review from a team as code owners December 3, 2025 15:41
@alliepiper alliepiper requested review from a team as code owners December 3, 2025 15:41
@cccl-authenticator-app cccl-authenticator-app bot moved this from In Progress to In Review in CCCL Dec 3, 2025
@alliepiper alliepiper enabled auto-merge (squash) December 3, 2025 18:40
@github-actions

This comment has been minimized.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 4, 2025

🥳 CI Workflow Results

🟩 Finished in 7h 45m: Pass: 100%/267 | Total: 6d 05h | Max: 4h 46m | Hits: 87%/380200

See results here.

@alliepiper alliepiper merged commit 783ebe6 into NVIDIA:branch/3.2.x Dec 4, 2025
632 of 635 checks passed
@github-project-automation github-project-automation bot moved this from In Review to Done in CCCL Dec 4, 2025
@alliepiper alliepiper deleted the cmake-backports-3.2.0 branch December 4, 2025 03:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants