0
我想将一些OpenCL内核添加到CMake项目中。这些需要编译为.ptx
文件作为编译的一部分。CMake项目:具有不同定义的目标
内核位于源代码树的子目录中,输出应该放入二进制树中。每个.cl
文件将会有一个.ptx
文件。
我的问题是如何表达这个CMake自定义命令?
我尝试了以下操作,但是这是从具有单个预定义输出文件的自定义命令派生的 - 现在我有许多输出,其名称取决于输入。
set(OPENCL_CL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/openclkern)
set(OPENCL_PTX_DIR ${CMAKE_CURRENT_BINARY_DIR}/openclkern/ptx)
set(OPENCL_CLOPTS "-cl-nv-verbose")
set(OPENCL_COMPILER ${CMAKE_SOURCE_DIR}/linux/clcc)
file (GLOB openclkern openclkern/*.cl)
ADD_CUSTOM_COMMAND(
OUTPUT ${OPENCL_PTX_DIR}
COMMAND "${OPENCL_COMPILER}" ${OPENCL_CLOPTS} ${OPENCL_PTX_DIR} ${openclkern}
DEPENDS ${openclkern}
)
此编译步骤之后,将其他自定义命令到.ptx
文件转换成C格式的“斑点”编译到最后的可执行文件,所以我想我需要一个${ptxFiles}
列表来结束这我可以用作下一个命令的DEPENDS
参数。