summaryrefslogtreecommitdiff
blob: bb0f92eac108c8584f6bc7453b041e9689d70e63 (plain)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import re

def parse_system_requirements(req):
    nonalpha=r'([^a-zA-Z]|$|^)'
    regex_map={
        r'Gnu Scientific Library':'sci-libs/gsl',
        r'cairo':'x11-libs/cairo',
        r'ActiveTcl':'dev-lang/tcl',
        r'(?i)java':'virtual/jre',
        r'(?i)'+nonalpha+r'libgd'+nonalpha:'media-libs/gd',
        r'boost':'dev-libs/boost',
        r'(?i)berkeleydb':'dev-perl/BerkeleyDB',
        nonalpha+r'curl'+nonalpha:'net-misc/curl',
        r'(?i)'+nonalpha+r'atk'+nonalpha:'dev-libs/atk',
        r'(?i)'+nonalpha+r'pango'+nonalpha:'x11-libs/pango',
        r'(?i)netcdf':'sci-libs/netcdf',
        r'(?i)udunits':'sci-libs/udunits',
        r'(?i)odbc':'dev-db/libiodbc',
        r'(?i)protocol buffer':'dev-libs/protobuf',
        r'(?i)'+nonalpha+'python'+nonalpha:'dev-lang/python',
        r'(?i)'+nonalpha+'quantlib'+nonalpha:'dev-libs/quantlib',
        r'(?i)'+nonalpha+'mpfr'+nonalpha:'dev-libs/mpfr',
        r'(?i)'+nonalpha+'postgresql'+nonalpha:'dev-db/postgresql',
        r'(?i)postgresql jdbc':'dev-java/jdbc-postgresql',
        r'(?i)'+nonalpha+'yacas'+nonalpha:'sci-mathematics/yacas',
        r'(?i)'+nonalpha+r'nvcc'+nonalpha:'dev-util/nvidia-cuda-sdk',
        r'(?i)'+nonalpha+r'(lib)?xml2'+nonalpha:'dev-libs/libxml2',
        r'(?i)'+nonalpha+r'(lib)?jpeg'+nonalpha:'media-libs/jpeg',
        r'(?i)'+nonalpha+r'fftw'+nonalpha:'sci-libs/fftw',
        r'(?i)'+nonalpha+r'gmp'+nonalpha:'dev-libs/gmp',
        r'(?i)'+nonalpha+r'gmt'+nonalpha:'sci-geosciences/gmt',
        r'(?i)nvidia.*toolkit':'dev-util/nvidia-cuda-toolkit',
        r'(?i)'+nonalpha+r'ghostscript'+nonalpha:'app-text/ghostscript-gpl',
        r'(?i)'+nonalpha+r'graphviz'+nonalpha:'dev-perl/GraphViz',
        r'(?i)'+nonalpha+r'(lib)?png'+nonalpha:'media-libs/libpng',
        r'(?i)'+nonalpha+r'proj'+nonalpha:'sci-libs/proj',
        r'(?i)'+nonalpha+r'(lib)?itpp'+nonalpha:'sci-libs/itpp',
        r'(?i)'+nonalpha+r'bwidget'+nonalpha:'dev-tcltk/bwidget',
        r'(?i)'+nonalpha+r'tktable'+nonalpha:'dev-tcltk/tktable',
        r'(?i)'+nonalpha+r'gdal'+nonalpha:'sci-libs/gdal',
        r'(?i)'+nonalpha+r'ggobi'+nonalpha:'sci-visualization/ggobi',
        r'(?i)'+nonalpha+r'opengl'+nonalpha:'virtual/opengl',
        r'(?i)'+nonalpha+r'glu library'+nonalpha:'virtual/glu',
        r'(?i)'+nonalpha+r'zlib'+nonalpha:'sys-libs/zlib',
        r'(?i)'+nonalpha+r'xclip'+nonalpha:'x11-misc/xclip',
        r'(Bwidget|Tktable|Tk[a-zA-Z]+).*[^a-zA-Z]Img[^a-zA-Z]':'dev-tcltk/tkimg',
        r'(?i)'+nonalpha+r'(lib)?tiff'+nonalpha:'media-libs/tiff',
        r'(?i)'+nonalpha+r'grass'+nonalpha:'sci-geosciences/grass',
        nonalpha+r'MPI[0-9]?'+nonalpha:'virtual/mpi',
        r'(?i)'+nonalpha+r'tcl'+nonalpha:'dev-lang/tcl',
        r'(?i)'+nonalpha+r'tk'+nonalpha:'dev-lang/tk',
        nonalpha+r'PARI'+nonalpha:'sci-mathematics/pari',
        r'(?i)'+nonalpha+r'gtk\+'+nonalpha:'x11-libs/gtk+',
        r'(?i)'+nonalpha+r'gsl'+nonalpha:'sci-libs/gsl',
        r'(?i)'+nonalpha+r'glib'+nonalpha:'dev-libs/glib',
        r'(?i)'+nonalpha+r'mpich2'+nonalpha:'sys-cluster/mpich2',
        r'(?i)'+nonalpha+r'openmpi'+nonalpha:'sys-cluster/openmpi',
        r'(?i)'+nonalpha+r'blas'+nonalpha:'virtual/blas',
        r'(?i)'+nonalpha+r'(lib)?xerces-c'+nonalpha:'dev-libs/xerces-c',
        r'(?i)'+nonalpha+r'freetype'+nonalpha:'media-libs/freetype',
        #r'(?i)'+nonalpha+r''+nonalpha:'',
        #r'(?i)'+nonalpha+r''+nonalpha:'',
        #r'(?i)'+nonalpha+r''+nonalpha:'',
        #r'(?i)'+nonalpha+r''+nonalpha:'',
    }
    deps=[]
    for key, value in regex_map.iteritems():
        if re.search(key,req)!=None: #found regex, output dependency
            deps.append(value)
    return deps