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'])