10
'sunpinyin_preedit.cc',
11
'sunpinyin_preedit_gtk.cc',
12
'sunpinyin_preedit_skin.cc',
17
preferences_sources = ['preferences.c',
21
imdkit_sources = ['IMdkit/FrameMgr.c',
25
'IMdkit/i18nIMProto.c',
26
'IMdkit/i18nMethod.c',
35
cflags='-O2 -g -pipe '
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')
44
opts = Variables('configure.conf')
45
opts.Add('PREFIX', default='/usr/local')
47
def PassVariables(envvar, env):
50
print 'Warning: you\'ve set %s in the environmental variable!' % x
51
env[y] = os.environ[x]
53
env = Environment(ENV=os.environ,
54
CFLAGS=cflags, CXXFLAGS=cflags,
55
CPPPATH=['.', 'IMdkit'])
59
if GetOption('prefix') is not None:
60
env['PREFIX'] = GetOption('prefix')
62
opts.Save('configure.conf', env)
64
envvar = [('CC', 'CC'),
67
('CXXFLAGS', 'CXXFLAGS'),
68
('LDFLAGS', 'LINKFLAGS')]
69
PassVariables(envvar, env)
71
bin_dir = env['PREFIX'] + '/bin'
72
data_dir = '%s/share/xsunpinyin/' % env['PREFIX']
73
icon_dir = data_dir + 'icons/'
75
extra_cflags = ' -DSUNPINYIN_XIM_ICON_DIR=\\"%s\\"' % icon_dir
76
extra_cflags += ' -DSUNPINYIN_XIM_SETTING_DIR=\\"%s\\"' % data_dir
78
env.Append(CFLAGS=extra_cflags)
79
env.Append(CXXFLAGS=extra_cflags)
80
env.Append(LINKFLAGS=' -export-dynamic')
83
if GetOption('rpath') is not None:
84
env.Append(LINKFLAGS=' -Wl,-R -Wl,%s' % GetOption('rpath'))
87
#==============================configure================================
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]
95
def CheckPKG(context, name):
96
context.Message( 'Checking for %s... ' % name )
97
ret = context.TryAction('pkg-config --exists \'%s\'' % name)[0]
101
conf = Configure(env, custom_tests={'CheckPKGConfig' : CheckPKGConfig,
102
'CheckPKG' : CheckPKG })
104
if GetOption('clean'):
107
if not conf.CheckPKGConfig():
110
if not conf.CheckPKG('gtk+-2.0'):
113
if not conf.CheckPKG('x11'):
116
if not conf.CheckPKG('sunpinyin-2.0'):
120
env.ParseConfig('pkg-config gtk+-2.0 x11 sunpinyin-2.0 --libs --cflags')
124
env.Append(LIBS=env.Library('IMdkit', source=imdkit_sources))
125
env.Program('xsunpinyin', source=sources)
126
env.Program('xsunpinyin-preferences', source=preferences_sources)
130
bin_target = env.Install(bin_dir,
131
['xsunpinyin', 'xsunpinyin-preferences'])
132
icon_target = env.Install(icon_dir,
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])
149
env.Alias('install', ['install-bin', 'install-data'])