target_include_directories not able to find header file for a cuda-compiled library
I'm trying to add NVidia's OptiX to my code. However, using the target-approach for generating my VS2017 project with CMake, the include path is missing when the target should be built with NVCC.
I have reduced my original CMakeLists to the following which shows the actual problem. Am I missing something or could this be a bug somewhere in CMake?
Thanks in advance
cmake_minimum_required(VERSION 3.10)
project(CMakeOptix LANGUAGES CXX CUDA)
find_package(CUDA 10.0 REQUIRED)
if(CUDA_FOUND)
message(STATUS "CUDA include: ${CUDA_INCLUDE_DIRS}")
message(STATUS "CUDA lib: ${CUDA_LIBRARIES}")
endif()
list(APPEND CMAKE_MODULE_PATH "C:/ProgramData/NVIDIA Corporation/OptiX SDK 5.1.1/SDK/CMake")
set(OptiX_INSTALL_DIR "C:/ProgramData/NVIDIA Corporation/OptiX SDK 5.1.1" CACHE PATH "Path to OptiX installed location." FORCE)
find_package(OptiX REQUIRED)
if(OptiX_FOUND)
message(STATUS "OptiX include: ${OptiX_INCLUDE_DIRS}")
message(STATUS "OptiX lib: ${OptiX_LIBRARIES}")
endif()
#Uncomment to be able to build library
#include_directories("${OptiX_INCLUDE_DIRS}")
cuda_compile_ptx(shaders_ptx shaders/raygeneration.cu shaders/exception.cu)
add_executable(${PROJECT_NAME} main.cpp)
target_include_directories(${PROJECT_NAME} PRIVATE ${OptiX_INCLUDE_DIRS})
add_library(${PROJECT_NAME}_lib sum.cu ${shaders_ptx})
target_include_directories(${PROJECT_NAME}_lib PRIVATE ${OptiX_INCLUDE_DIRS})
Edited by Federico Martinez Lopez