Nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified

I am aware this issue has been posted multiple times but I couldnt find the issue in my nvcc command. I am using CMake to build my project.
The relevant parts of root cmake:

if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
  set(CMAKE_CUDA_ARCHITECTURES 90)
endif()

if(NOT DEFINED CMAKE_CUDA_STANDARD)
    set(CMAKE_CUDA_STANDARD 20)
    set(CMAKE_CUDA_STANDARD_REQUIRED ON)
endif()

project(ProjectName CUDA CXX)

set(CMAKE_CUDA_SEPARABLE_COMPILATION ON)

And the other cmake file:

find_package(CUDAToolkit)
...
add_executable(ProjectName ${...})
set_target_properties(ProjectName PROPERTIES OUTPUT_NAME ProjectName )

set_property(GLOBAL PROPERTY USE_FOLDERS ON)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES  ${...})
...
target_include_directories(ProjectName PRIVATE ${CUDA_INCLUDE_DIRS})
...
target_link_libraries(Lavender PUBLIC  ${CUDA_LIBRARIES})
target_link_libraries(Lavender PRIVATE CUDA::cudart CUDA::cuda_driver)
...

The nvcc command that fails is:

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\bin\nvcc.exe"  --use-local-env -ccbin "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\bin\HostX64\x64" -x cu -rdc=true  
-IC:\Users\Mate\Desktop\Projekti\ProjectName\ProjectName 
-IC:\Users\Mate\Desktop\Projekti\ProjectName\ProjectName\External 
-IC:\Users\Mate\Desktop\Projekti\ProjectName\Libraries\spdlog\include 
-IC:\Users\Mate\Desktop\Projekti\ProjectName\Libraries\DirectXMath\include 
-IC:\Users\Mate\Desktop\Projekti\ProjectName\Libraries\CLI11\include 
-IC:\Users\Mate\Desktop\Projekti\ProjectName\Libraries\pbrtParser 
IC:\Users\Mate\Desktop\Projekti\ProjectName\Libraries\pbrtParser\pbrtParser\include 
-I"C:\Program Files (x86)\SDL2\include" 
-I"C:\Program Files (x86)\SDL2\include\SDL2" 
-I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\include" 
-I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\include"     
--keep-dir x64\Debug  
-maxrregcount=0   
--machine 64 
--compile 
-cudart static 
-std=c++20 
--generate-code=arch=compute_90,code=[compute_90,sm_90] 
/MT 
/FICore/CoreTypes.h 
/FICore/Defines.h 
/FIMath/MathTypes.h 
-Xcompiler="/EHsc -Zi -Ob0" 
-g  
-D_WINDOWS -D"PROJECT_NAME_PATH=\"C:/Users/Mate/Desktop/Projekti/ProjectName/ProjectName\"" -DNOMINMAX -DLAVENDER_DEBUG_BUILD -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -DWIN32 
-D_WINDOWS -D"PROJECT_NAME_PATH=\"C:/Users/Mate/Desktop/Projekti/ProjectName /ProjectName\"" -DNOMINMAX -DPROJECT_NAME_DEBUG_BUILD -D"CMAKE_INTDIR=\"Debug\"" -Xcompiler "/EHsc /W1 /nologo /Od /FS /Zi /RTC1 /MDd " 
-Xcompiler /Fd"ProjectName .dir\Debug\vc143.pdb" 
-o ProjectName .dir\Debug\Renderer.obj "C:\Users\Mate\Desktop\Projekti\ProjectName\ProjectName\Scene\Renderer.cu"

From what I see here, all paths with spaces are quoted which was my first suspicion. And yes, for some reason, some flags are duplicated (-DNOMINMAX -DLAVENDER_DEBUG_BUILD etc)
Thanks for your help.

The issue seems to be /FI flags for force include in MSVC. Removing them the nvcc doesnt fail (I get other but now expected errors). I tried rewriting my force includes in cmake like this:

if(MSVC)
    target_compile_options(ProjectName
        PRIVATE
        $<$<COMPILE_LANGUAGE:CXX>:
            /FI"Core/CoreTypes.h"
            /FI"Core/Defines.h"
            /FI"Math/MathTypes.h"
        >
    )
else()
    target_compile_definitions(Lavender
    PRIVATE
    $<$<COMPILE_LANGUAGE:CXX>:
        -include Core/CoreTypes.h
        -include Core/Defines.h
        -include Math/MathTypes.h
    >
endif()

target_compile_options(ProjectName
    PRIVATE
    $<$<COMPILE_LANGUAGE:CUDA>:
        -include Core/CoreTypes.h
        -include Core/Defines.h
        -include Math/MathTypes.h
    >
)

However this doesnt work for some reason. I get nvcc fatal again, and this is the command:

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\bin\nvcc.exe"  --use-local-env -ccbin "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\bin\HostX64\x64" -x cu -rdc=true  -IC:\Users\Mate\Desktop\Projekti\Lavender\Lavender -IC:\Users\Mate\Desktop\Projekti\Lavender\Lavender\External -IC:\Users\Mate\Desktop\Projekti\Lavender\Libraries\spdlog\include -IC:\Users\Mate\Desktop\Projekti\Lavender\Libraries\DirectXMath\include -IC:\Users\Mate\Desktop\Projekti\Lavender\Libraries\CLI11\include -IC:\Users\Mate\Desktop\Projekti\Lavender\Libraries\pbrtParser -IC:\Users\Mate\Desktop\Projekti\Lavender\Libraries\pbrtParser\pbrtParser\include -I"C:\Program Files (x86)\SDL2\include" -I"C:\Program Files (x86)\SDL2\include\SDL2" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\include"     --keep-dir x64\Debug  -maxrregcount=0   --machine 64 --compile -cudart static -std=c++20 --generate-code=arch=compute_90,code=[compute_90,sm_90] --pre-include Core/CoreTypes.h Core/Defines.h Math/MathTypes.h -Xcompiler="/EHsc -Zi -Ob0" -g  -D_WINDOWS -D"LAVENDER_PATH=\"C:/Users/Mate/Desktop/Projekti/Lavender/Lavender\"" -DNOMINMAX -DLAVENDER_DEBUG_BUILD -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -DWIN32 -D_WINDOWS -D"LAVENDER_PATH=\"C:/Users/Mate/Desktop/Projekti/Lavender/Lavender\"" -DNOMINMAX -DLAVENDER_DEBUG_BUILD -D"CMAKE_INTDIR=\"Debug\"" -Xcompiler "/EHsc /W1 /nologo /Od /FS /Zi /RTC1 /MDd " -Xcompiler "/FdLavender.dir\Debug\vc143.pdb" -o Lavender.dir\Debug\Renderer.obj "C:\Users\Mate\Desktop\Projekti\Lavender\Lavender\Scene\Renderer.cu"

If I leave just one include like this:

target_compile_options(Lavender
    PRIVATE
    $<$<COMPILE_LANGUAGE:CUDA>:
            -include Core/CoreTypes.h 
            #-include Core/Defines.h
            #-include Math/MathTypes.h
        >

It doesnt fail.
Not a big deal since I bypass easily by actually including the files (atleast in .cu file) but maybe someone knows what’s the issue.

I forgot about this post, but this fixed my issue:

target_compile_options(Lavender
    PRIVATE
    $<$<COMPILE_LANGUAGE:CUDA>:
        --pre-include=${CMAKE_CURRENT_SOURCE_DIR}/Core/CoreTypes.h
        --pre-include=${CMAKE_CURRENT_SOURCE_DIR}/Core/Defines.h
        --pre-include=${CMAKE_CURRENT_SOURCE_DIR}/Math/MathTypes.h
    >
)