diff --git a/.gitignore b/.gitignore index 6aad486..90600b0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ dwss modes.h -LoadFile-gen.inc +cfs.cc +cfs.h diff --git a/SConstruct b/SConstruct index a17a495..c20de7b 100644 --- a/SConstruct +++ b/SConstruct @@ -1,16 +1,17 @@ # vim:syntax=python import os +import re +from subprocess import * install_dir = '/usr/lib/gnome-screensaver/gnome-screensaver' desktop_dir = os.getenv('HOME') + '/.local/share/applications/screensavers' -load_files = ['logo/dwlogo.obj', 'logo/dwlogo.mtl'] +load_files = ['logo/dwlogo.obj', 'logo/dwlogo.mtl', Glob('shaders/*')] env = Environment(CPPPATH = ['.']) env.ParseConfig("pkg-config --cflags --libs glib-2.0 gdk-2.0 atk gtk+-2.0 gtkglext-1.0") -genLoadFile = Builder(action = 'perl genLoadFile.pl --root=logo $SOURCES') -env.Append(BUILDERS = {'LoadFile' : genLoadFile}) +# modes builder def gen_modes(target, source, env): f = open(str(target[0]), 'w') @@ -22,10 +23,27 @@ def gen_modes(target, source, env): genModes = Builder(action = gen_modes) env.Append(BUILDERS = {'Modes' : genModes}) +# CFS builder + +def CFS(target, source, env): + source_list = [] + for s in source: + source_list.append(str(s)) + Popen(['./cfs_gen/cfs_gen.py', str(target[0])] + source_list).wait() + return None + +def CFS_emitter(target, source, env): + target.append(re.sub(r'\.cc?', '.h', str(target[0]))) + return target, source + +env.Append(BUILDERS = {'CFS' : Builder(action = CFS, emitter = CFS_emitter)}) + +# source file list + sources = [Glob('*.c'), Glob('*.cc'), Glob('LoadFile/*.cc'), Glob('modes/*.cc')] -env.LoadFile('LoadFile-gen.inc', load_files) -env.Depends('LoadFile-gen.inc', 'genLoadFile.pl') +env.CFS('cfs.cc', load_files) +env.Depends('cfs.cc', 'cfs_gen/cfs_gen.py') env.Modes('modes.h', Glob('modes/*.h'))