[CMake] Converting a OpenCL program into a C++ header?
Stefan Buschmann
s_buschmann at gmx.de
Tue Jun 15 17:33:47 EDT 2010
Am 15.06.2010 23:13, schrieb Daniel Blezek:
> 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?
You could write a little application that reads in the source file and
generates the header file just as in your example. Then you could use
CMake to execute that application e.g. using add_custom_command() before
building your executables that include the generated header files. You
could even build the tool itself as a dependency first.
Hope that helps...
Stefan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100615/30e41d4b/attachment.htm>
More information about the CMake
mailing list