Tizen 2.1 base
[platform/core/uifw/ise-engine-sunpinyin.git] / wrapper / xim / SConstruct
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