~ubuntu-branches/ubuntu/quantal/sunpinyin/quantal

« back to all changes in this revision

Viewing changes to wrapper/scim/SConstruct

  • Committer: Package Import Robot
  • Author(s): YunQiang Su
  • Date: 2012-04-11 03:06:40 UTC
  • mfrom: (1.1.4) (1.2.8 sid)
  • Revision ID: package-import@ubuntu.com-20120411030640-8mxepz5e6wffy87c
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
 
import SCons.Tool.textfile
3
 
 
4
 
locales = []
5
 
 
6
 
cflags = '-O2 -g -pipe '
7
 
version = '2.0.3'
8
 
 
9
 
AddOption('--prefix', dest='prefix', metavar='DIR',
10
 
          help='installation prefix')
11
 
AddOption('--libdir', dest='libdir', metavar='DIR',
12
 
          help='installation libdir')
13
 
AddOption('--libexecdir', dest='libexecdir', metavar='DIR',
14
 
          help='installation libexecdir')
15
 
AddOption('--datadir', dest='datadir', metavar='DIR',
16
 
          help='installation datadir')
17
 
AddOption('--rpath', dest='rpath', metavar='DIR',
18
 
          help='encode rpath in the executables')
19
 
 
20
 
opts = Variables('configure.conf')
21
 
opts.Add('PREFIX', default='/usr/local')
22
 
opts.Add('LIBDIR', default='/usr/local/lib')
23
 
opts.Add('LIBEXECDIR', default='/usr/local/lib')
24
 
opts.Add('DATADIR', default='/usr/local/share')
25
 
 
26
 
def PassVariables(envvar, env):
27
 
    for (x, y) in envvar:
28
 
        if x in os.environ:
29
 
            print 'Warning: you\'ve set %s in the environmental variable!' % x
30
 
            env[y] = os.environ[x]
31
 
 
32
 
env = Environment(ENV=os.environ,
33
 
                  CFLAGS=cflags, CXXFLAGS=cflags, 
34
 
                  CPPPATH=['.'], SUBSTFILESUFFIX='.in')
35
 
opts.Update(env)
36
 
 
37
 
if GetOption('prefix') is not None:
38
 
    env['PREFIX'] = GetOption('prefix')
39
 
    env['LIBDIR'] = env['PREFIX'] + '/lib'
40
 
    env['LIBEXECDIR'] = env['PREFIX'] + '/lib/'
41
 
    env['DATADIR'] = env['PREFIX'] + '/share/'
42
 
 
43
 
if GetOption('libdir') is not None:
44
 
    env['LIBDIR'] = GetOption('libdir')
45
 
 
46
 
if GetOption('libexecdir') is not None:
47
 
    env['LIBEXECDIR'] = GetOption('libexecdir')
48
 
 
49
 
if GetOption('datadir') is not None:
50
 
    env['DATADIR'] = GetOption('datadir')
51
 
 
52
 
opts.Save('configure.conf', env)
53
 
 
54
 
envvar = [('CC', 'CC'),
55
 
          ('CXX', 'CXX'),
56
 
          ('CFLAGS', 'CFLAGS'),
57
 
          ('CXXFLAGS', 'CXXFLAGS'),
58
 
          ('LDFLAGS', 'LINKFLAGS')]
59
 
PassVariables(envvar, env)
60
 
 
61
 
data_dir = env['DATADIR'] + '/scim-sunpinyin'
62
 
icons_dir = env['DATADIR'] + '/scim-sunpinyin/icons'
63
 
bin_dir = env['LIBEXECDIR'] + '/scim-sunpinyin'
64
 
gettext_package = 'scim-sunpinyin'
65
 
 
66
 
extra_cflags  = ' -DSCIM_SUNPINYIN_LOCALEDIR=\'"%s"\'' % (env['DATADIR'] + '/locale')
67
 
extra_cflags += ' -DSCIM_SUNPINYIN_ICON_DIR=\'"%s"\'' % icons_dir
68
 
extra_cflags += ' -DLIBEXECDIR=\'"%s"\'' % bin_dir
69
 
extra_cflags += ' -DGETTEXT_PACKAGE=\'"%s"\'' % gettext_package
70
 
extra_cflags += ' -Isrc'
71
 
 
72
 
env.Append(CFLAGS=extra_cflags)
73
 
env.Append(CXXFLAGS=extra_cflags)
74
 
env.Replace(SHLIBPREFIX = '')
75
 
 
76
 
if GetOption('rpath') is not None:
77
 
    env.Append(LINKFLAGS=' -Wl,-R -Wl,%s' % GetOption('rpath'))
78
 
 
79
 
#
80
 
#==============================configure================================
81
 
#
82
 
def CheckPKGConfig(context, version='0.12.0'):
83
 
    context.Message( 'Checking for pkg-config... ' )
84
 
    ret = context.TryAction('pkg-config --atleast-pkgconfig-version=%s' % version)[0]
85
 
    context.Result(ret)
86
 
    return ret
87
 
 
88
 
def CheckPKG(context, name):
89
 
    context.Message( 'Checking for %s... ' % name )
90
 
    ret = context.TryAction('pkg-config --exists \'%s\'' % name)[0]
91
 
    context.Result(ret)
92
 
    return ret
93
 
 
94
 
conf = Configure(env, custom_tests={'CheckPKGConfig' : CheckPKGConfig,
95
 
                                    'CheckPKG' : CheckPKG })
96
 
 
97
 
def DoConfigure():
98
 
    if GetOption('clean'):
99
 
        return
100
 
 
101
 
    if not conf.CheckPKGConfig():
102
 
        Exit(1)
103
 
 
104
 
    if not conf.CheckPKG('scim'):
105
 
        Exit(1)
106
 
 
107
 
    if not conf.CheckPKG('sunpinyin-2.0'):
108
 
        Exit(1)
109
 
 
110
 
    if not conf.CheckPKG('gtk+-2.0'):
111
 
        Exit(1)
112
 
    
113
 
    env = conf.Finish()
114
 
    env.ParseConfig('pkg-config scim sunpinyin-2.0 gtk+-2.0 --libs --cflags')
115
 
 
116
 
DoConfigure()
117
 
 
118
 
scim_icondir = os.popen('pkg-config scim   --variable=icondir').readlines()[0].rstrip()
119
 
scim_moduledir =os.popen('pkg-config scim   --variable=moduledir').readlines()[0].rstrip()
120
 
 
121
 
lib_sunpinyin_imengine_setup_target  = "sunpinyin_imengine_setup"
122
 
lib_sunpinyin_imengine_setup_sources = ["src/sunpinyin_imengine_setup.cpp"]
123
 
env.SharedLibrary(target = lib_sunpinyin_imengine_setup_target, source = lib_sunpinyin_imengine_setup_sources)
124
 
 
125
 
lib_sunpinyin_imengine_target  = "sunpinyin_imengine"
126
 
lib_sunpinyin_imengine_sources = ['src/imi_scimwin.cpp',
127
 
                                  'src/sunpinyin_imengine.cpp',
128
 
                                  'src/sunpinyin_lookup_table.cpp',
129
 
                                  'src/sunpinyin_utils.cpp']
130
 
env.SharedLibrary(target = lib_sunpinyin_imengine_target, source = lib_sunpinyin_imengine_sources)
131
 
os.system('chmod 0644 ' + lib_sunpinyin_imengine_setup_target + '.so')
132
 
os.system('chmod 0644 ' + lib_sunpinyin_imengine_target + '.so')
133
 
for locale in locales:
134
 
    mo = 'po/%s.mo' % (locale,)
135
 
    env.Command(mo, [], 'msgfmt po/%s.po -o %s' % (locale, mo))
136
 
 
137
 
#
138
 
#==============================install================================
139
 
#
140
 
def DoInstall():
141
 
 
142
 
    os.system('chmod 0644 ' + lib_sunpinyin_imengine_setup_target + '.so')
143
 
    os.system('chmod 0644 ' + lib_sunpinyin_imengine_target + '.so')
144
 
        
145
 
    icons_target = env.Install(scim_icondir,
146
 
                               ['data/sunpinyin_logo.png'])
147
 
 
148
 
    imengine_target = env.Install(scim_moduledir + '/IMEngine',
149
 
                                   'sunpinyin_imengine.so')
150
 
 
151
 
    imsetup_target = env.Install(scim_moduledir + '/SetupUI',
152
 
                                   'sunpinyin_imengine_setup.so')
153
 
 
154
 
    locale_targets = []
155
 
    for locale in locales:
156
 
        path = env['DATADIR'] + '/locale/%s/LC_MESSAGES/%s.mo' % \
157
 
            (locale, gettext_package)
158
 
        locale_targets.append(env.InstallAs(path, 'po/%s.mo' % (locale,)))
159
 
 
160
 
    env.Alias('install-libexec', [imengine_target, imsetup_target])
161
 
    env.Alias('install-data', [icons_target])
162
 
    env.Alias('install-locale', locale_targets)
163
 
 
164
 
DoInstall()
165
 
env.Alias('install', ['install-libexec', 'install-data', 'install-locale'])