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
|