File: pkgconfig.py

package info (click to toggle)
xmms2 0.5DrLecter-2
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 6,988 kB
  • ctags: 11,272
  • sloc: ansic: 51,389; cpp: 26,556; python: 11,479; perl: 202; ruby: 138; makefile: 100; asm: 7; sh: 4
file content (52 lines) | stat: -rw-r--r-- 1,455 bytes parent folder | download
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
""" tool to generate .pc files for pkgconfig """

import Common
import Object
import Utils
import Params
import Node
import os
from misc import copyobj, subst_func

class pkgcobj(copyobj):
    def __init__(self, type='none'):
        copyobj.__init__(self, type)
        self.fun = subst_func
        self.libs = []

    def apply(self):
        for name, lib in self.libs:
            val = {}
            p = self.env["PREFIX"]
            val["PREFIX"] = p
            val["BINDIR"] = os.path.join("${prefix}", "bin")
            val["LIBDIR"] = os.path.join("${prefix}", "lib")
            val["INCLUDEDIR"] = os.path.join("${prefix}", "include", "xmms2")
            val["VERSION"] = self.env["VERSION"]

            val["NAME"] = name
            val["LIB"] = lib

            node = self.path.find_source('xmms2.pc.in')
            newnode = self.path.find_build(name+'.pc')

            if not newnode:
                newnode = Node.Node(name+'.pc', self.m_current_path)
                self.path.append_build(newnode)

            task = self.create_task('copy', self.env, 8)
            task.set_inputs(node)
            task.set_outputs(newnode)
            task.m_env = self.env
            task.fun = self.fun
            task.dict = val

    def install(self):
        for task in self.m_tasks:
            self.install_results('PKGCONFIGDIR', '', task)

def setup(env):
    Object.register('pkgc', pkgcobj)

def detect(conf):
    return 1