2012-04-13 9 views
5

FindCUDA를 사용하는 CMAKE에서 입력 파일 filename.cu이 주어진 경우 cuda_compile_ptx 명령은 cuda_compile_ptx_generated_filename.cu.ptx 형식의 출력 파일 이름을 생성하지만 출력 파일 이름은 filename.ptx이어야합니다.CMake에서 cuda_compile_ptx의 출력 파일 이름을 어떻게 변경합니까?

이 작업을 수행하는 간단한 방법이 있습니까?

+2

이렇게하는 유일한 방법은 cuda_wrap_srcs 매크로를 해킹하는 것입니다. 다음 줄의 : 세트 (generated_file_basename "$ {cuda_target} _generated _ $ {basename} .ptx") –

답변

3

-o <outputName>을 지정할 수 있어야합니다. 문제는 여기에 두 가지 다른 방법이있는 CUDA_COMPILE_PTX 매크로 실제로 cuda_compile_ptx_generated_${filename}.ptx

-o 옵션을 무시한다는 것입니다 그러나 프로젝트에 CUDA 컴파일을 추가

  1. 당신은 여전히로 이름을 변경하여 문제를 해결 CUDA_COMPILE_PTX하지만 일을 사용할 수 있습니다 add_custom_command : add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/my_ptx.ptx COMMAND ${CMAKE_COMMAND} -E copy ${cuda_ptx_files} ${CMAKE_BINARY_DIR}/my_ptx.ptx DEPENDS ${cuda_ptx_files}) 및 사용 add_custom_target
  2. CMake로 CUDA PTX를 컴파일하는 더 좋은 대안이 있습니다. 매크로의 좋은 예가 https://github.com/nvpro-samples/shared_sources/blob/master/cmake/private/FindCuda.cmake입니다. 이 매크로를 사용하는 방법의 예는 https://github.com/nvpro-samples/gl_cuda_interop_pingpong_st/blob/master/CMakeLists.txt입니다.
관련 문제