Skip to content

Commit db99cdf

Browse files
committed
Add /Zc:preprocessor for CUDA 13.2 on MSVC.
Hopefully resolves the following build error: ``` Run Build Command(s): D:\downloads\tools\ninja-1.13.2-windows\ninja.exe -v -v -j33 install [1/32] C:\PROGRA~1\NVIDIA~2\CUDA\v13.2\bin\nvcc.exe -forward-unknown-to-host-compiler -Dpopsift_EXPORTS -ID:\b\popsift\src\v0.10.0-4df863d942.clean\src -ID:\b\popsift\x64-windows-dbg\src\generated -ID:\b\popsift\x64-windows-dbg\src\generated\popsift -isystem "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include" -isystem "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl" -D_WINDOWS -Xcompiler=" /EHsc" -Xcompiler=" -Zi -Ob0 -Od /RTC1" -std=c++17 -arch=all-major -Xcompiler=-MDd -MD -MT src\CMakeFiles\popsift.dir\popsift\s_filtergrid.cu.obj -MF src\CMakeFiles\popsift.dir\popsift\s_filtergrid.cu.obj.d -x cu -rdc=true -c D:\b\popsift\src\v0.10.0-4df863d942.clean\src\popsift\s_filtergrid.cu -o src\CMakeFiles\popsift.dir\popsift\s_filtergrid.cu.obj -Xcompiler=-Fdsrc\CMakeFiles\popsift.dir\,-FS FAILED: [code=2] src/CMakeFiles/popsift.dir/popsift/s_filtergrid.cu.obj C:\PROGRA~1\NVIDIA~2\CUDA\v13.2\bin\nvcc.exe -forward-unknown-to-host-compiler -Dpopsift_EXPORTS -ID:\b\popsift\src\v0.10.0-4df863d942.clean\src -ID:\b\popsift\x64-windows-dbg\src\generated -ID:\b\popsift\x64-windows-dbg\src\generated\popsift -isystem "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include" -isystem "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include\cccl" -D_WINDOWS -Xcompiler=" /EHsc" -Xcompiler=" -Zi -Ob0 -Od /RTC1" -std=c++17 -arch=all-major -Xcompiler=-MDd -MD -MT src\CMakeFiles\popsift.dir\popsift\s_filtergrid.cu.obj -MF src\CMakeFiles\popsift.dir\popsift\s_filtergrid.cu.obj.d -x cu -rdc=true -c D:\b\popsift\src\v0.10.0-4df863d942.clean\src\popsift\s_filtergrid.cu -o src\CMakeFiles\popsift.dir\popsift\s_filtergrid.cu.obj -Xcompiler=-Fdsrc\CMakeFiles\popsift.dir\,-FS C:\PROGRA~1\NVIDIA~2\CUDA\v13.2\include\cccl\cuda/std/__cccl/preprocessor.h(23): fatal error C1189: #error: MSVC/cl.exe with traditional preprocessor is used. This may lead to unexpected compilation errors. Please switch to the standard conforming preprocessor by passing `/Zc:preprocessor` to cl.exe. You can define CCCL_IGNORE_MSVC_TRADITIONAL_PREPROCESSOR_WARNING to suppress this warning. s_filtergrid.cu ``` This change was prepared with assistance from GPT 5.4. Related: microsoft/vcpkg#51210
1 parent 77d1d28 commit db99cdf

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

src/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ target_link_libraries(popsift
4949
set_target_properties(popsift PROPERTIES VERSION ${PROJECT_VERSION})
5050
set_target_properties(popsift PROPERTIES DEBUG_POSTFIX "d")
5151
set_target_properties(popsift PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
52+
if(MSVC)
53+
target_compile_options(popsift PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=/Zc:preprocessor>)
54+
endif()
5255

5356
# build directory containing the automatically generated files
5457
set(popsift_generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")

0 commit comments

Comments
 (0)