Skip to content

NanoVDB: install six missing public headers - #2311

Merged
kmuseth merged 1 commit into
AcademySoftwareFoundation:masterfrom
sifakis:fix/missing-nanovdb-install-headers
Sep 3, 2026
Merged

NanoVDB: install six missing public headers#2311
kmuseth merged 1 commit into
AcademySoftwareFoundation:masterfrom
sifakis:fix/missing-nanovdb-install-headers

Conversation

@sifakis

@sifakis sifakis commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Six headers live in the source tree but are absent from the set(NANOVDB_INCLUDE_*_FILES) lists
that install(FILES ...) copies, so make install produces a tree containing headers that
reference files it did not ship:

header list it belongs in
cuda/Buffer.h NANOVDB_INCLUDE_CUDA_FILES
cuda/PinnedResource.h NANOVDB_INCLUDE_CUDA_FILES
math/Proximity.h NANOVDB_INCLUDE_MATH_FILES
tools/cuda/MeshToGrid.cuh NANOVDB_INCLUDE_TOOLS_CUDA_FILES
util/MaskPrefixSum.h NANOVDB_INCLUDE_UTIL_FILES
util/cuda/Rasterization.cuh NANOVDB_INCLUDE_UTIL_CUDA_FILES

Two of them are reached by installed headers, which makes this a hard failure rather than a
missing convenience — 42 installed headers transitively include cuda/Buffer.h and two include
util/MaskPrefixSum.h:

install-prefix/include/nanovdb/cuda/GridHandle.cuh:20:10: fatal error:
    nanovdb/cuda/Buffer.h: No such file or directory
install-prefix/include/nanovdb/tools/VoxelBlockManager.h:32:10: fatal error:
    nanovdb/util/MaskPrefixSum.h: No such file or directory

tools/cuda/MeshToGrid.cuh is not reached by an installed header, so it produces no error — it is
simply unavailable from an installed NanoVDB. math/Proximity.h and util/cuda/Rasterization.cuh
are its transitive dependencies, so all three are needed for it to be usable.

In-tree builds compile against the source directory, where every header exists, so none of this is
visible until the headers are installed.

This is the same class of drift fixed by #2117 ("Fix missing nanovdb install files"), which added
eight entries in one sweep — including tools/cuda/DilateGrid.cuh, which had been in the tree
since 2025-09-04 and was installed only from 2025-10-22.

cuda/Buffer.h, cuda/PinnedResource.h, math/Proximity.h,
tools/cuda/MeshToGrid.cuh, util/MaskPrefixSum.h and
util/cuda/Rasterization.cuh are in the source tree but absent from the
install lists, so the installed tree contained headers referencing files
it did not ship: 42 installed headers reach cuda/Buffer.h and two reach
util/MaskPrefixSum.h.

In-tree builds compile against the source directory, where every header
exists, so the omissions stay invisible until the headers are installed.
Compiling a translation unit that includes each installed header against
an installed prefix goes from 40/88 to 83/94, with the 44 missing-file
errors eliminated.

Signed-off-by: Efty Sifakis <esifakis@nvidia.com>

@harrism harrism left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch. Thanks!

@sifakis
sifakis marked this pull request as ready for review September 3, 2026 17:06
@sifakis
sifakis requested a review from kmuseth as a code owner September 3, 2026 17:06

@kmuseth kmuseth left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good

@kmuseth
kmuseth merged commit f42248c into AcademySoftwareFoundation:master Sep 3, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants