~ubuntu-branches/ubuntu/wily/radare/wily

« back to all changes in this revision

Viewing changes to wafadmin/Tools/batched_cc.py

  • Committer: Package Import Robot
  • Author(s): Sebastian Reichel
  • Date: 2012-03-28 03:05:57 UTC
  • mfrom: (2.1.9 sid)
  • Revision ID: package-import@ubuntu.com-20120328030557-f8ceougppsgihb8g
Tags: 1:1.5.2-6
fix glib includes for glib 2.32+ (Closes: #665604) 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /usr/bin/env python
 
2
# encoding: utf-8
 
3
 
 
4
EXT_C=['.c','.cc','.cpp','.cxx']
 
5
import shutil,os
 
6
import TaskGen,Task,ccroot,Build
 
7
from TaskGen import extension
 
8
from Constants import*
 
9
class TaskMaster(Task.Task):
 
10
        def __init__(self,action_name,env,normal=1,master=None):
 
11
                Task.Task.__init__(self,env,normal=normal)
 
12
                self.slaves=[]
 
13
                self.inputs2=[]
 
14
                self.outputs2=[]
 
15
        def add_slave(self,slave):
 
16
                self.slaves.append(slave)
 
17
                self.set_run_after(slave)
 
18
        def runnable_status(self):
 
19
                for t in self.run_after:
 
20
                        if not t.hasrun:return ASK_LATER
 
21
                for t in self.slaves:
 
22
                        self.inputs.append(t.inputs[0])
 
23
                        self.outputs.append(t.outputs[0])
 
24
                        if t.must_run:
 
25
                                self.inputs2.append(t.inputs[0])
 
26
                                self.outputs2.append(t.outputs[0])
 
27
                return Task.Task.runnable_status(self)
 
28
        def run(self):
 
29
                tmpinputs=self.inputs
 
30
                self.inputs=self.inputs2
 
31
                tmpoutputs=self.outputs
 
32
                self.outputs=self.outputs2
 
33
                ret=self.action.run(self)
 
34
                env=self.env
 
35
                rootdir=Build.bld.srcnode.abspath(env)
 
36
                for i in self.outputs:
 
37
                        name=i.name
 
38
                        if name[-1]=="s":name=name[:-1]
 
39
                        shutil.move(name,i.bldpath(env))
 
40
                self.inputs=tmpinputs
 
41
                self.outputs=tmpoutputs
 
42
                return ret
 
43
class TaskSlave(Task.Task):
 
44
        def __init__(self,action_name,env,normal=1,master=None):
 
45
                Task.Task.__init__(self,env,normal)
 
46
                self.master=master
 
47
        def prepare(self):
 
48
                self.display="* skipping "+self.inputs[0].name
 
49
        def update_stat(self):
 
50
                self.executed=1
 
51
        def runnable_status(self):
 
52
                self.must_run=Task.Task.must_run(self)
 
53
                return self.must_run
 
54
        def run(self):
 
55
                return 0
 
56
        def can_retrieve_cache(self,sig):
 
57
                return None
 
58
def create_task_cxx_new(self,node):
 
59
        try:
 
60
                mm=self.mastertask
 
61
        except AttributeError:
 
62
                mm=TaskMaster("all_"+self.type_initials,self.env)
 
63
                self.mastertask=mm
 
64
        task=TaskSlave(self.type_initials,self.env,40,master=mm)
 
65
        self.tasks.append(task)
 
66
        mm.add_slave(task)
 
67
        task.set_inputs(node)
 
68
        task.set_outputs(node.change_ext('.o'))
 
69
        self.compiled_tasks.append(task)
 
70
cc_str='${CC} ${CCFLAGS} ${CPPFLAGS} ${_CCINCFLAGS} ${_CCDEFFLAGS} -c ${SRC}'
 
71
Task.simple_task_type('all_cc',cc_str,'GREEN')
 
72
cpp_str='${CXX} ${CXXFLAGS} ${CPPFLAGS} ${_CXXINCFLAGS} ${_CXXDEFFLAGS} -c ${SRC}'
 
73
Task.simple_task_type('all_cpp',cpp_str,color='GREEN')
 
74
 
 
75
extension(EXT_C)(create_task_cxx_new)