• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# This file is generated; do not edit.
2
3import os
4
5Import("env")
6
7env = env.Clone(COMPONENT_NAME='libevent',
8                TARGET_NAME='libevent')
9
10configurations = {
11    'Debug' : {
12        'Append' : dict(
13            CCFLAGS = [
14                '-pthread',
15                '-fno-exceptions',
16                '-fno-asynchronous-unwind-tables',
17                '-fvisibility=hidden',
18                '-D_FILE_OFFSET_BITS=64',
19                '-O0',
20                '-g'
21            ],
22            CPPDEFINES = [
23                'CHROMIUM_BUILD',
24                'HAVE_CONFIG_H',
25                '_DEBUG'
26            ],
27            CPPPATH = [
28                env.Dir('$SRC_DIR/third_party/libevent/.'),
29                env.Dir('$SRC_DIR/third_party/libevent/linux')
30            ],
31            CXXFLAGS = [
32                '-fno-rtti',
33                '-fno-threadsafe-statics',
34                '-fvisibility-inlines-hidden'
35            ],
36            LINKFLAGS = [
37                '-pthread',
38                '-rdynamic'
39            ],
40        ),
41        'FilterOut' : dict(
42        ),
43        'Replace' : dict(
44             FLOCK_LDMODULE = ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
45             FLOCK_LINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
46             FLOCK_SHLINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
47             IMPLICIT_COMMAND_DEPENDENCIES = '0',
48             LDMODULECOM = [['$FLOCK_LDMODULE',
49  '-o',
50  '$TARGET',
51  '$_LIBDIRFLAGS',
52  '$LDMODULEFLAGS',
53  '$SOURCES',
54  '-Wl,--start-group',
55  '$_LIBFLAGS',
56  '-Wl,--end-group']],
57             LIBPATH = ['$LIB_DIR'],
58             LINKCOM = [['$FLOCK_LINK',
59  '-o',
60  '$TARGET',
61  '$_LIBDIRFLAGS',
62  '$LINKFLAGS',
63  '$SOURCES',
64  '-Wl,--start-group',
65  '$_LIBFLAGS',
66  '-Wl,--end-group']],
67             SHLINKCOM = [['$FLOCK_SHLINK',
68  '-o',
69  '$TARGET',
70  '$_LIBDIRFLAGS',
71  '$SHLINKFLAGS',
72  '$SOURCES',
73  '-Wl,--start-group',
74  '$_LIBFLAGS',
75  '-Wl,--end-group']],
76        ),
77        'ImportExternal' : [
78             'AS',
79             'CC',
80             'CXX',
81             'LINK',
82        ],
83        'PropagateExternal' : [
84             'AS',
85             'CC',
86             'CCACHE_DIR',
87             'CXX',
88             'DISTCC_DIR',
89             'DISTCC_HOSTS',
90             'HOME',
91             'INCLUDE_SERVER_ARGS',
92             'INCLUDE_SERVER_PORT',
93             'LINK',
94             'CHROME_BUILD_TYPE',
95             'CHROMIUM_BUILD',
96             'OFFICIAL_BUILD',
97        ],
98    },
99    'Release' : {
100        'Append' : dict(
101            CCFLAGS = [
102                '-pthread',
103                '-fno-exceptions',
104                '-fno-asynchronous-unwind-tables',
105                '-fvisibility=hidden',
106                '-D_FILE_OFFSET_BITS=64',
107                '-O2',
108                '-fno-ident',
109                '-fdata-sections',
110                '-ffunction-sections'
111            ],
112            CPPDEFINES = [
113                'CHROMIUM_BUILD',
114                'HAVE_CONFIG_H',
115                'NDEBUG',
116                'NVALGRIND'
117            ],
118            CPPPATH = [
119                env.Dir('$SRC_DIR/third_party/libevent/.'),
120                env.Dir('$SRC_DIR/third_party/libevent/linux')
121            ],
122            CXXFLAGS = [
123                '-fno-rtti',
124                '-fno-threadsafe-statics',
125                '-fvisibility-inlines-hidden'
126            ],
127            LINKFLAGS = [
128                '-pthread',
129                '-Wl,--gc-sections'
130            ],
131        ),
132        'FilterOut' : dict(
133        ),
134        'Replace' : dict(
135             FLOCK_LDMODULE = ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
136             FLOCK_LINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
137             FLOCK_SHLINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
138             IMPLICIT_COMMAND_DEPENDENCIES = '0',
139             LDMODULECOM = [['$FLOCK_LDMODULE',
140  '-o',
141  '$TARGET',
142  '$_LIBDIRFLAGS',
143  '$LDMODULEFLAGS',
144  '$SOURCES',
145  '-Wl,--start-group',
146  '$_LIBFLAGS',
147  '-Wl,--end-group']],
148             LIBPATH = ['$LIB_DIR'],
149             LINKCOM = [['$FLOCK_LINK',
150  '-o',
151  '$TARGET',
152  '$_LIBDIRFLAGS',
153  '$LINKFLAGS',
154  '$SOURCES',
155  '-Wl,--start-group',
156  '$_LIBFLAGS',
157  '-Wl,--end-group']],
158             SHLINKCOM = [['$FLOCK_SHLINK',
159  '-o',
160  '$TARGET',
161  '$_LIBDIRFLAGS',
162  '$SHLINKFLAGS',
163  '$SOURCES',
164  '-Wl,--start-group',
165  '$_LIBFLAGS',
166  '-Wl,--end-group']],
167        ),
168        'ImportExternal' : [
169             'AS',
170             'CC',
171             'CXX',
172             'LINK',
173        ],
174        'PropagateExternal' : [
175             'AS',
176             'CC',
177             'CCACHE_DIR',
178             'CXX',
179             'DISTCC_DIR',
180             'DISTCC_HOSTS',
181             'HOME',
182             'INCLUDE_SERVER_ARGS',
183             'INCLUDE_SERVER_PORT',
184             'LINK',
185             'CHROME_BUILD_TYPE',
186             'CHROMIUM_BUILD',
187             'OFFICIAL_BUILD',
188        ],
189    },
190}
191
192config = configurations[env['CONFIG_NAME']]
193env.Append(**config['Append'])
194env.FilterOut(**config['FilterOut'])
195env.Replace(**config['Replace'])
196
197# Scons forces -fPIC for SHCCFLAGS on some platforms.
198# Disable that so we can control it from cflags in gyp.
199# Note that Scons itself is inconsistent with its -fPIC
200# setting. SHCCFLAGS forces -fPIC, and SHCFLAGS does not.
201# This will make SHCCFLAGS consistent with SHCFLAGS.
202env['SHCCFLAGS'] = ['$CCFLAGS']
203
204for _var in config['ImportExternal']:
205  if _var in ARGUMENTS:
206    env[_var] = ARGUMENTS[_var]
207  elif _var in os.environ:
208    env[_var] = os.environ[_var]
209for _var in config['PropagateExternal']:
210  if _var in ARGUMENTS:
211    env[_var] = ARGUMENTS[_var]
212  elif _var in os.environ:
213    env['ENV'][_var] = os.environ[_var]
214
215env['ENV']['LD_LIBRARY_PATH'] = env.subst('$LIB_DIR')
216
217if ARGUMENTS.get('COVERAGE') not in (None, '0'):
218  env.AppendUnique(
219            CCFLAGS = [
220                '-fprofile-arcs',
221                '-ftest-coverage'
222            ],
223            LINKFLAGS = [
224                '-fprofile-arcs'
225            ],
226  )
227
228if ARGUMENTS.get('PROFILE') not in (None, '0'):
229  env.AppendUnique(
230            CCFLAGS = [
231                '-pg',
232                '-g'
233            ],
234            LINKFLAGS = [
235                '-pg'
236            ],
237  )
238
239if ARGUMENTS.get('SYMBOLS') not in (None, '0'):
240  env.AppendUnique(
241            CCFLAGS = [
242                '-g'
243            ],
244  )
245
246input_files = [
247    'buffer.c',
248    'evbuffer.c',
249    'evdns.c',
250    'event.c',
251    'event_tagging.c',
252    'evrpc.c',
253    'evutil.c',
254    'http.c',
255    'log.c',
256    'poll.c',
257    'select.c',
258    'signal.c',
259    'strlcpy.c',
260    'epoll.c',
261    'epoll_sub.c',
262]
263
264target_files = []
265prerequisites = []
266
267_result = []
268for infile in input_files:
269  if env.compilable(infile):
270    if (type(infile) == type('')
271        and (infile.startswith('$SRC_DIR/third_party/libevent/')
272             or not os.path.isabs(env.subst(infile)))):
273      # Force files below the build directory by replacing all '..'
274      # elements in the path with '__':
275      base, ext = os.path.splitext(os.path.normpath(infile))
276      base = [d == '..' and '__' or d for d in base.split('/')]
277      base = os.path.join(*base)
278      object = '${OBJ_DIR}/${COMPONENT_NAME}/${TARGET_NAME}/' + base
279      if not infile.startswith('$SRC_DIR/third_party/libevent/'):
280        infile = '$SRC_DIR/third_party/libevent/' + infile
281      infile = env.StaticObject(object, infile)[0]
282    else:
283      infile = env.StaticObject(infile)[0]
284  _result.append(infile)
285input_files = _result
286
287_outputs = env.GypStaticLibrary('event', input_files)
288target_files.extend(_outputs)
289
290gyp_target = env.Alias('libevent', target_files)
291env.Requires(gyp_target, prerequisites)
292Return("gyp_target")
293