File: gen_sip_apis.py

package info (click to toggle)
eric 3.9.1-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 14,868 kB
  • ctags: 10,639
  • sloc: python: 65,017; ruby: 2,559; sh: 276; makefile: 74
file content (57 lines) | stat: -rw-r--r-- 1,954 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env python
# Copyright (c) 2002-2004 Detlev Offenbach <detlev@die-offenbachs.de>
# Adapted for usage with Debian by Torsten Marek <shlomme@gmx.net>
import os
import sys
import pyqtconfig

apidir = sys.argv[1]
if not os.path.isdir(apidir):
    print "Generating the api directory."
    os.makedirs(apidir)

sip = "/usr/bin/sip"

def createAPIFiles(baseDir, modules, defaultImports, getFlags):
    for mod in modules:
        try:
            sipfile = os.path.join(baseDir, mod, "%smod.sip" % (mod, ))
            apifile = os.path.join(apidir, os.path.split(sipfile.replace("mod.sip", ".api"))[1])
            args = [sip, "-a", apifile,
                    "-I", os.path.join(baseDir, mod),
                    "-I", baseDir] \
                    + defaultImports \
                    + getFlags(mod) \
                    +  [sipfile]
            print "Generating %s ..." % apifile
            ret = os.spawnv(os.P_WAIT, sip, args)
            if ret != 0:
                print "Error: the process returned the exit code %d" % ret
        except OSError:
            print "Warning: The module '%s' does not exist." % mod



qtsipdir = os.path.abspath(pyqtconfig._pkg_config['pyqt_sip_dir'])
modules = pyqtconfig._pkg_config['pyqt_modules'].split()

createAPIFiles(qtsipdir, modules, [],
               lambda x: pyqtconfig._pkg_config["pyqt_%s_sip_flags" % (x,)].split())
               

try:
    import pykdeconfig
    kdesipdir = "/usr/share/sip/kde3"
    modules = pykdeconfig._pkg_config['pykde_modules'].split()

    extraimport = []
    # just import anything for anything else, so we get rid of keeping track of the
    # inter-module deps
    for mod in modules:
        extraimport.extend(["-I", os.path.join(kdesipdir, mod)])
    extraimport.extend(["-I", qtsipdir])

    createAPIFiles(kdesipdir, modules, extraimport,
                   lambda x: pykdeconfig._pkg_config["pykde_kde_sip_flags"].split(" "))
except:
    pass