~elementary-apps/noise/trunk

« back to all changes in this revision

Viewing changes to .waf-1.6.2-ad4cc42bd7d347f7e283789e711b993f/waflib/Tools/c_aliases.py

  • Committer: Scott Ringwelski
  • Date: 2011-02-10 21:30:53 UTC
  • Revision ID: sgringwe@mtu.edu-20110210213053-d3c7mnexeref3cwj
sexy icons, sexy waf

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /usr/bin/env python
 
2
# encoding: utf-8
 
3
# WARNING! All changes made to this file will be lost!
 
4
 
 
5
import os,sys,re
 
6
from waflib import Utils,Build
 
7
from waflib.Configure import conf
 
8
def get_extensions(lst):
 
9
        ret=[]
 
10
        for x in Utils.to_list(lst):
 
11
                try:
 
12
                        if not isinstance(x,str):
 
13
                                x=x.name
 
14
                        ret.append(x[x.rfind('.')+1:])
 
15
                except:
 
16
                        pass
 
17
        return ret
 
18
def sniff_features(**kw):
 
19
        exts=get_extensions(kw['source'])
 
20
        type=kw['_type']
 
21
        feats=[]
 
22
        if'cxx'in exts or'cpp'in exts or'c++'in exts or'cc'in exts:
 
23
                feats.append('cxx')
 
24
        if'c'in exts or'vala'in exts:
 
25
                feats.append('c')
 
26
        if'd'in exts:
 
27
                feats.append('d')
 
28
        if'java'in exts:
 
29
                feats.append('java')
 
30
        if'java'in exts:
 
31
                return'java'
 
32
        if type in['program','shlib','stlib']:
 
33
                for x in feats:
 
34
                        if x in['cxx','d','c']:
 
35
                                feats.append(x+type)
 
36
        return feats
 
37
def set_features(kw,_type):
 
38
        kw['_type']=_type
 
39
        kw['features']=Utils.to_list(kw.get('features',[]))+Utils.to_list(sniff_features(**kw))
 
40
def program(bld,*k,**kw):
 
41
        set_features(kw,'program')
 
42
        return bld(*k,**kw)
 
43
def shlib(bld,*k,**kw):
 
44
        set_features(kw,'shlib')
 
45
        return bld(*k,**kw)
 
46
def stlib(bld,*k,**kw):
 
47
        set_features(kw,'stlib')
 
48
        return bld(*k,**kw)
 
49
def objects(bld,*k,**kw):
 
50
        set_features(kw,'objects')
 
51
        return bld(*k,**kw)
 
52
 
 
53
conf(program)
 
54
conf(shlib)
 
55
conf(stlib)
 
56
conf(objects)
 
 
b'\\ No newline at end of file'