AcademySoftwareFoundation / AcademySoftwareFoundation/openvdb
[BUILD] nanovdb/util/cuda in NanoVDB 11 installs to invalid folder
- Dominant language
- C++
- Stars
- 3.4k
- Forks
- 774
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 34
Description
### Environment
**Operating System: Windows 10**
**Version nanoVDB 11 / Commit SHA: 77f28d16114949dfbe2937aa2dae1379f6d2b653**
**CMake Version: 3.27.7**
**Compiler:MSVC 2022**
### Describe the problem
[The release notes](https://www.openvdb.org/documentation/doxygen/changes.html#:~:text=by%C2%A0Matthias%C2%A0Ueberheide%5D-,NanoVDB,-%3A) state that the CUDA-related headers for NanoVDB have been added to nanovdb/util/cuda, but due to an incorrect CMake script, they are actually installed under nanovdb/util.
This causes projects that use NanoVDB as a library to fail to build when including header files under nanovdb/util/cuda, which destroys the relative reference to nanovdb/util.
### To Reproduce
Steps to reproduce the behavior:
1. Checkout repo 'master'
2. Run CMake and Build
```PowerShell
cmake -S . -B .\build -DCMAKE_INSTALL_PREFIX=D:\openvdb\build\Release -DOPENVDB_BUILD_BINARIES=OFF -DUSE_AX=OFF -DUSE_NANOVDB=ON -DOPENVDB_BUILD_NANOVDB=ON -DNANOVDB_BUILD_TOOLS=OFF -DNANOVDB_USE_CUDA=ON -DCMAKE_TOOLCHAIN_FILE='C:\Program Files\Microsoft Visual Studio\2022\Community\VC\vcpkg\scripts\buildsystems\vcpkg.cmake' -DVCPKG_TARGET_TRIPLET=x64-windows -A x64`
cmake --build .\build --parallel 8 --config Release --target install
```
3. Goto `.\build\Release\include\nanovdb\util` and check directory structure
Contributor guide
Research direction
Reproduce the Windows installation with the provided CMake configure and build commands, then inspect the CMake install rules responsible for NanoVDB headers under nanovdb/util/cuda. Done means the CUDA-related headers install under nanovdb/util/cuda so projects including those paths build successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100