如何设置每个.cu文件的CMake CUDA_NVCC_FLAGS

时间:2014-07-03 17:33:59

标签: cuda cmake

我正在尝试为单个CUDA源(.cu)文件设置--device-debug标志。使用

设置整个项目的标志
set(CUDA_NVCC_FLAGS_RELWITHDEBINFO "--device-debug;-lineinfo")

在主CMakeLists.txt文件中。但是我有一个子项目,包含在

add_subdirectory (${PROJECT_SOURCE_DIR}/cuda)

我试图从主程序和子项目CMakeLists.txt文件中设置属性,但它根本不起作用。添加命令后,它甚至不会重新编译文件。这是我试过的命令:

set_source_files_properties(test.cu PROPERTIES CUDA_NVCC_FLAGS_RELWITHDEBUGINFO "--device-debug;-lineinfo")
set_source_files_properties(ilm/test.cu PROPERTIES CUDA_NVCC_FLAGS_RELWITHDEBUGINFO "--device-debug;-lineinfo")
set_source_files_properties(cuda/ilm/test.cu PROPERTIES CUDA_NVCC_FLAGS_RELWITHDEBUGINFO "--device-debug;-lineinfo")
set_source_files_properties(${PROJECT_SOURCE_DIR}/cuda/ilm/test.cu PROPERTIES CUDA_NVCC_FLAGS_RELWITHDEBUGINFO "--device-debug;-lineinfo")
set_source_files_properties(${PROJECT_SOURCE_DIR}/cuda/ilm/test.cu PROPERTIES CUDA_NVCC_FLAGS "--device-debug;-lineinfo;${CUDA_NVCC_FLAGS}")

是否可以使用CMake更改单个.cu文件的所需编译器标志?

1 个答案:

答案 0 :(得分:2)

CUDA_COMPILE( generated_files file0 file1 ... [STATIC | SHARED | MODULE] [OPTIONS ...] )

使用add_libraryadd_executable命令生成要使用的目标文件列表。它会调用CUDA_WRAP_SRCS,并可以附加额外的命令给nvcc。您可以使用CUDA_COMPILE命令和不同选项分别编译每个源文件。然后,您可以将它们链接到您需要的任何内容。

如果您需要更多详细信息,请阅读FindCUDA.cmake