【发布时间】:2015-02-09 16:58:45
【问题描述】:
我正在尝试将一些 OpenCL 内核添加到 CMake 项目中。这些需要编译成.ptx文件作为编译的一部分。
内核位于源树的子目录中,输出应该进入二叉树。每个.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 格式的“blob”,以便编译为最终的可执行文件,所以我想我需要得到一个 ${ptxFiles} 列表我可以使用下一个命令的DEPENDS 参数。
【问题讨论】:
标签: compilation cmake dependencies opencl