57 lines
1.5 KiB
Python
57 lines
1.5 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")
|
|
|
|
# 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 = [Glob('*.c'), Glob('*.cc'), Glob('LoadFile/*.cc'), Glob('modes/*.cc')]
|
|
|
|
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])
|