~ubuntu-branches/ubuntu/vivid/sunpinyin/vivid

« back to all changes in this revision

Viewing changes to wrapper/xim/SConstruct

  • Committer: Package Import Robot
  • Author(s): YunQiang Su
  • Date: 2012-04-11 03:06:40 UTC
  • mfrom: (1.1.3)
  • Revision ID: package-import@ubuntu.com-20120411030640-wl9yw5no4n4lcf82
Tags: 2.0.3+git20120404-1
* Medium urgency for fixing RC bug.
* New upstream commit: fix FTBFS with gcc-4.7 (Closes: #667385).
* Add Multi-Arch: same to libsunpinyin3, -dev and -dbg.
* Add YunQiang Su to uploaders.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
import os
2
 
 
3
 
sources = ['ic.c',
4
 
           'ic_gtk.c',
5
 
           'ic_skin.c',
6
 
           'skin.c',
7
 
           'ui.c',
8
 
           'main.c',
9
 
           'settings.c',
10
 
           'sunpinyin_preedit.cc',
11
 
           'sunpinyin_preedit_gtk.cc',
12
 
           'sunpinyin_preedit_skin.cc',
13
 
           'xim.c',
14
 
           'xim_trigger.c',
15
 
           'xmisc.c']
16
 
 
17
 
preferences_sources = ['preferences.c',
18
 
                       'settings.c',
19
 
                       'xmisc.c']
20
 
 
21
 
imdkit_sources = ['IMdkit/FrameMgr.c',
22
 
                  'IMdkit/i18nAttr.c',
23
 
                  'IMdkit/i18nClbk.c',
24
 
                  'IMdkit/i18nIc.c',
25
 
                  'IMdkit/i18nIMProto.c',
26
 
                  'IMdkit/i18nMethod.c',
27
 
                  'IMdkit/i18nPtHdr.c',
28
 
                  'IMdkit/i18nUtil.c',
29
 
                  'IMdkit/i18nX.c',
30
 
                  'IMdkit/IMConn.c',
31
 
                  'IMdkit/IMMethod.c',
32
 
                  'IMdkit/IMValues.c']
33
 
 
34
 
 
35
 
cflags='-O2 -g -pipe '
36
 
 
37
 
# options
38
 
AddOption('--prefix', dest='prefix', type='string', nargs=1, action='store',
39
 
          metavar='DIR', help='installation prefix')
40
 
AddOption('--rpath', dest='rpath', type='string', nargs=1, action='store',
41
 
          metavar='DIR', help='encode rpath in the executables')
42
 
 
43
 
# save the options
44
 
opts = Variables('configure.conf')
45
 
opts.Add('PREFIX', default='/usr/local')
46
 
 
47
 
def PassVariables(envvar, env):
48
 
    for (x, y) in envvar:
49
 
        if x in os.environ:
50
 
            print 'Warning: you\'ve set %s in the environmental variable!' % x
51
 
            env[y] = os.environ[x]
52
 
 
53
 
env = Environment(ENV=os.environ,
54
 
                  CFLAGS=cflags, CXXFLAGS=cflags,
55
 
                  CPPPATH=['.', 'IMdkit'])
56
 
opts.Update(env)
57
 
 
58
 
 
59
 
if GetOption('prefix') is not None:
60
 
    env['PREFIX'] = GetOption('prefix')
61
 
 
62
 
opts.Save('configure.conf', env)
63
 
 
64
 
envvar = [('CC', 'CC'),
65
 
          ('CXX', 'CXX'),
66
 
          ('CFLAGS', 'CFLAGS'),
67
 
          ('CXXFLAGS', 'CXXFLAGS'),
68
 
          ('LDFLAGS', 'LINKFLAGS')]
69
 
PassVariables(envvar, env)
70
 
 
71
 
bin_dir = env['PREFIX'] + '/bin'
72
 
data_dir = '%s/share/xsunpinyin/' % env['PREFIX']
73
 
icon_dir = data_dir + 'icons/'
74
 
 
75
 
extra_cflags =  ' -DSUNPINYIN_XIM_ICON_DIR=\\"%s\\"' % icon_dir
76
 
extra_cflags += ' -DSUNPINYIN_XIM_SETTING_DIR=\\"%s\\"' % data_dir
77
 
 
78
 
env.Append(CFLAGS=extra_cflags)
79
 
env.Append(CXXFLAGS=extra_cflags)
80
 
env.Append(LINKFLAGS=' -export-dynamic')
81
 
 
82
 
# set rpath
83
 
if GetOption('rpath') is not None:
84
 
    env.Append(LINKFLAGS=' -Wl,-R -Wl,%s' % GetOption('rpath'))
85
 
 
86
 
#
87
 
#==============================configure================================
88
 
#
89
 
def CheckPKGConfig(context, version='0.12.0'):
90
 
    context.Message( 'Checking for pkg-config... ' )
91
 
    ret = context.TryAction('pkg-config --atleast-pkgconfig-version=%s' % version)[0]
92
 
    context.Result(ret)
93
 
    return ret
94
 
 
95
 
def CheckPKG(context, name):
96
 
    context.Message( 'Checking for %s... ' % name )
97
 
    ret = context.TryAction('pkg-config --exists \'%s\'' % name)[0]
98
 
    context.Result(ret)
99
 
    return ret
100
 
 
101
 
conf = Configure(env, custom_tests={'CheckPKGConfig' : CheckPKGConfig,
102
 
                                    'CheckPKG' : CheckPKG })
103
 
def DoConfigure():
104
 
    if GetOption('clean'):
105
 
        return
106
 
 
107
 
    if not conf.CheckPKGConfig():
108
 
        Exit(1)
109
 
 
110
 
    if not conf.CheckPKG('gtk+-2.0'):
111
 
        Exit(1)
112
 
 
113
 
    if not conf.CheckPKG('x11'):
114
 
        Exit(1)
115
 
 
116
 
    if not conf.CheckPKG('sunpinyin-2.0'):
117
 
        Exit(1)
118
 
 
119
 
    env = conf.Finish()
120
 
    env.ParseConfig('pkg-config gtk+-2.0 x11 sunpinyin-2.0 --libs --cflags')
121
 
 
122
 
DoConfigure()
123
 
 
124
 
env.Append(LIBS=env.Library('IMdkit', source=imdkit_sources))
125
 
env.Program('xsunpinyin', source=sources)
126
 
env.Program('xsunpinyin-preferences', source=preferences_sources)
127
 
 
128
 
 
129
 
def DoInstall():
130
 
    bin_target = env.Install(bin_dir,
131
 
                             ['xsunpinyin', 'xsunpinyin-preferences'])
132
 
    icon_target = env.Install(icon_dir,
133
 
                              ['data/chnpunc.png',
134
 
                               'data/han.png',
135
 
                               'data/eng.png',
136
 
                               'data/han.svg',
137
 
                               'data/eng.svg',
138
 
                               'data/engpunc.png',
139
 
                               'data/full.png',
140
 
                               'data/half.png',
141
 
                               'data/sunpinyin-logo-big.png',
142
 
                               'data/sunpinyin-logo.png'])
143
 
    data_target = env.Install(data_dir, ['data/settings_ui.xml'])
144
 
    data_target += env.Install(data_dir + 'skins/', Glob('data/skins/*'))
145
 
    env.Alias('install-bin', bin_target)
146
 
    env.Alias('install-data', [icon_target, data_target])
147
 
 
148
 
DoInstall()
149
 
env.Alias('install', ['install-bin', 'install-data'])
150
 
 
151