56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
import os, os.path, sys, glob
 | 
						|
 | 
						|
indir = sys.argv[1]
 | 
						|
outname = sys.argv[2]
 | 
						|
#indir = "/Users/vp/work/ocv/opencv/modules/ocl/src/kernels"
 | 
						|
#outname = "/Users/vp/work/ocv.build/xcode/modules/ocl/kernels.cpp"
 | 
						|
 | 
						|
try:
 | 
						|
    os.mkdir(os.path.dirname(outname))
 | 
						|
except OSError:
 | 
						|
    pass
 | 
						|
 | 
						|
cl_list = glob.glob(os.path.join(indir, "*.cl"))
 | 
						|
kfile = open(outname, "wt")
 | 
						|
 | 
						|
kfile.write("""// This file is auto-generated. Do not edit!
 | 
						|
 | 
						|
namespace cv
 | 
						|
{
 | 
						|
namespace ocl
 | 
						|
{
 | 
						|
""")
 | 
						|
 | 
						|
for cl in cl_list:
 | 
						|
    cl_file = open(cl, "rt")
 | 
						|
    cl_filename = os.path.basename(cl)
 | 
						|
    cl_filename = cl_filename[:cl_filename.rfind(".")]
 | 
						|
    kfile.write("const char* %s=" % cl_filename)
 | 
						|
    state = 0
 | 
						|
 | 
						|
    for cl_line in cl_file.readlines():
 | 
						|
        l = cl_line.strip()
 | 
						|
        # skip the leading comments
 | 
						|
        if l.startswith("//") and l.find("*/") < 0:
 | 
						|
            if state == 0:
 | 
						|
                state = 1
 | 
						|
        else:
 | 
						|
            if state == 1 or l.find("*/") >= 0:
 | 
						|
                state = 2
 | 
						|
 | 
						|
        if state == 1:
 | 
						|
            continue
 | 
						|
 | 
						|
        l = l.replace("\\", "\\\\")
 | 
						|
        l = l.replace("\r", "")
 | 
						|
        l = l.replace("\"", "\\\"")
 | 
						|
        l = l.replace("\t", "  ")
 | 
						|
        kfile.write("\"%s\\n\"\n" % l)
 | 
						|
    kfile.write(";\n")
 | 
						|
    cl_file.close()
 | 
						|
 | 
						|
kfile.write("""}
 | 
						|
}
 | 
						|
""")
 | 
						|
kfile.close()
 |