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

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to