Add frontend for conference/toggle functions
[zhone.git] / setup.py
blob714659182fd698e701774af2c4a9f69086cf38cc
1 from distutils.core import setup
2 from distutils.extension import Extension
3 from Cython.Distutils import build_ext
4 from distutils.command.build import build as _build
5 from distutils.command.clean import clean as _clean
6 import os
7 import subprocess
8 import shlex
10 class my_build(_build):
11 def run(self):
12 _build.run(self)
14 # compile theme files
15 import subprocess
16 result = subprocess.call( "cd ./data/themes/toby; edje_cc -v -fd ../fonts zhone.edc; mv zhone.edj ../", shell=True )
17 if result != 0:
18 raise Exception( "Can't build theme files. Built edje_cc?" )
20 class my_clean(_clean):
21 def run(self):
22 _clean.run(self)
24 if os.path.exists('./data/themes/zhone.edj'):
25 os.remove('./data/themes/zhone.edj')
27 def getstatusoutput(cmdline):
28 cmd = shlex.split(cmdline)
29 p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
30 out, err = p.communicate()
31 return p.returncode, out
33 def pkgconfig(*packages, **kw):
34 flag_map = {'-I': 'include_dirs', '-L': 'library_dirs', '-l': 'libraries',
35 '-D': 'prepro_vars'}
36 pkgs = ' '.join(packages)
37 cmdline = 'pkg-config --libs --cflags %s' % pkgs
39 status, output = getstatusoutput(cmdline)
40 if status != 0:
41 raise ValueError("could not find pkg-config module: %s" % pkgs)
43 for token in output.split():
44 flag = flag_map.get(token[:2], None)
45 if flag is not None:
46 kw.setdefault(flag, []).append(token[2:])
47 elif token.startswith("-Wl,"):
48 kw.setdefault("extra_link_args", []).append(token)
49 else:
50 kw.setdefault("extra_compile_args", []).append(token)
52 if "extra_link_args" in kw:
53 print "Using extra_link_args: %s" % " ".join(kw["extra_link_args"])
54 if "extra_compile_args" in kw:
55 print "Using extra_compile_args: %s" % " ".join(kw["extra_compile_args"])
57 return kw
59 setup(
60 name = "zhone",
61 version = "milestone4.1+git",
62 author = "See AUTHORS",
63 author_email = "mlauer@vanille-media.de",
64 url = "http://www.freesmartphone.org",
65 ext_modules = [
66 Extension( "illume", sources=['src/illume.pyx'], **pkgconfig('"ecore >= 0.9.9.050" ''"eina >= 0.0.1"') )
68 cmdclass = { 'build_ext': build_ext ,
69 'build' : my_build ,
70 'clean' : my_clean },
71 scripts = [ "src/zhone" ],
72 data_files = [
73 ( "zhone", ["data/themes/zhone.edj"] ),
74 ( "zhone/locale/ru/LC_MESSAGES", ["data/locale/ru/LC_MESSAGES/zhone.mo"] ),
75 ( "zhone/locale/pl/LC_MESSAGES", ["data/locale/pl/LC_MESSAGES/zhone.mo"] ),
76 ( "pixmaps", ["data/launcher/zhone.png"] ),
77 ( "applications", ["data/launcher/zhone.desktop"] ),