dwss/SConstruct

66 lines
1.7 KiB
Python

# 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', Glob('shaders/*')]
env = Environment(CPPPATH = ['.'])
env.ParseConfig("pkg-config --cflags --libs glib-2.0 gdk-2.0 atk gtk+-2.0 gtkglext-1.0")
env.Append(CPPFLAGS = ['-Isrc', '-DGL_GLEXT_PROTOTYPES'])
# modes builder
def gen_modes(target, source, env):
f = open(str(target[0]), 'w')
for s in source:
f.write("#include \"%s\"\n" % str(s))
f.close()
return None;
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 = [
'cfs.cc',
Glob('src/*.c'),
Glob('src/*.cc'),
Glob('LoadFile/*.cc'),
Glob('modes/*.cc'),
Glob('wfobj/*.cc'),
Glob('glslUtil/*.c'),
]
env.CFS('cfs.cc', load_files)
env.Depends('cfs.cc', 'cfs_gen/cfs_gen.py')
env.Modes('modes.h', Glob('modes/*.h'))
dwss = env.Program('dwss', sources)
env.Install(install_dir, dwss)
env.Install(desktop_dir, 'dwss.desktop')
install_bin = env.Alias('install-bin', install_dir)
install_desktop = env.Alias('install-desktop', desktop_dir)
env.Alias('install', [install_bin, install_desktop])