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