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
參數。