summaryrefslogtreecommitdiff
path: root/tools/cl2c
blob: 1ead940811c8e7bbf6154f48ae753199cb466df5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/sh
# Convert an OpenCL source file into a C source file containing the
# OpenCL source as a C string.  Also adds a #line directive so that
# compiler messages are useful.

input="$1"
output="$2"

name=$(basename "$input" | sed 's/.cl$//')

cat >$output <<EOF
// Generated from $input
const char *ff_opencl_source_$name =
"#line 1 \"$input\"\n"
EOF

# Convert \ to \\ and " to \", then add " to the start and end of the line.
cat "$input" | sed 's/\\/\\\\/g;s/\"/\\\"/g;s/^/\"/;s/$/\\n\"/' >>$output

echo ";" >>$output