[CMake] Converting a OpenCL program into a C++ header?

David Cole david.cole at kitware.com
Tue Jun 15 17:24:42 EDT 2010


On Tue, Jun 15, 2010 at 5:13 PM, Daniel Blezek <Blezek.Daniel at mayo.edu>wrote:

>  Hi,
>
>   We would like to convert an OpenCL program written in a separate file to
> a C++ header (essentially a long string).
>
> For example, if my OpenCL program is in the file Square.cl
>
> __kernel square(
>    __global float* input,
>    __global float* output,
>    const unsigned int count)
> {
>    int i = get_global_id(0);
>    if(i < count)
>        output[i] = input[i] * input[i];
> }
>
> I’d like to turn it into something like this in Square.h:
>
> const char *KernelSource = "\n" \
> "__kernel square(                                                       \n"
> \
> "   __global float* input,                                              \n"
> \
> "   __global float* output,                                             \n"
> \
> "   const unsigned int count)                                           \n"
> \
> "{                                                                      \n"
> \
> "   int i = get_global_id(0);                                           \n"
> \
> "   if(i < count)                                                       \n"
> \
> "       output[i] = input[i] * input[i];                                \n"
> \
> "}                                                                      \n"
> \
> "\n";
>
> So that my OpenCL code can be directly compiled into my executable.  This
> is also useful for OpenGL shaders.
>
> The question: is this something that CMake could do?  If so, any examples
> where to begin looking?
>


It is. CMake can definitely do that. I know I've written code like this
somewhere... I have to dash off at the moment, but when I get back to a
computer, I'll see if I can look it up and pass along a function that does
something similar.

Unless somebody else beats me to it. :-)

- David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100615/eae7d996/attachment-0001.htm>


More information about the CMake mailing list