OLD | NEW |
1 # Copyright 2008 the V8 project authors. All rights reserved. | 1 # Copyright 2008 the V8 project authors. All rights reserved. |
2 # Redistribution and use in source and binary forms, with or without | 2 # Redistribution and use in source and binary forms, with or without |
3 # modification, are permitted provided that the following conditions are | 3 # modification, are permitted provided that the following conditions are |
4 # met: | 4 # met: |
5 # | 5 # |
6 # * Redistributions of source code must retain the above copyright | 6 # * Redistributions of source code must retain the above copyright |
7 # notice, this list of conditions and the following disclaimer. | 7 # notice, this list of conditions and the following disclaimer. |
8 # * Redistributions in binary form must reproduce the above | 8 # * Redistributions in binary form must reproduce the above |
9 # copyright notice, this list of conditions and the following | 9 # copyright notice, this list of conditions and the following |
10 # disclaimer in the documentation and/or other materials provided | 10 # disclaimer in the documentation and/or other materials provided |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 'CCFLAGS': ['-g', '-O0'] | 194 'CCFLAGS': ['-g', '-O0'] |
195 } | 195 } |
196 }, | 196 }, |
197 'msvc': { | 197 'msvc': { |
198 'all': { | 198 'all': { |
199 'CCFLAGS': ['/nologo'], | 199 'CCFLAGS': ['/nologo'], |
200 }, | 200 }, |
201 'library:shared': { | 201 'library:shared': { |
202 'CPPDEFINES': ['USING_V8_SHARED'] | 202 'CPPDEFINES': ['USING_V8_SHARED'] |
203 }, | 203 }, |
| 204 'prof:on': { |
| 205 'LINKFLAGS': ['/MAP'] |
| 206 }, |
204 'mode:release': { | 207 'mode:release': { |
205 'CCFLAGS': ['/Ox', '/MT', '/GF'], | 208 'CCFLAGS': ['/Ox', '/MT', '/GF'], |
206 'LINKFLAGS': ['/OPT:REF', '/OPT:ICF'] | 209 'LINKFLAGS': ['/OPT:REF', '/OPT:ICF'] |
207 }, | 210 }, |
208 'mode:debug': { | 211 'mode:debug': { |
209 'CCFLAGS': ['/Od', '/MTd'], | 212 'CCFLAGS': ['/Od', '/MTd'], |
210 'LINKFLAGS': ['/DEBUG'] | 213 'LINKFLAGS': ['/DEBUG'] |
211 } | 214 } |
212 } | 215 } |
213 } | 216 } |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
273 'arch': { | 276 'arch': { |
274 'values':['arm', 'ia32'], | 277 'values':['arm', 'ia32'], |
275 'default': ARCH_GUESS, | 278 'default': ARCH_GUESS, |
276 'help': 'the architecture to build for' | 279 'help': 'the architecture to build for' |
277 }, | 280 }, |
278 'snapshot': { | 281 'snapshot': { |
279 'values': ['on', 'off'], | 282 'values': ['on', 'off'], |
280 'default': 'off', | 283 'default': 'off', |
281 'help': 'build using snapshots for faster start-up' | 284 'help': 'build using snapshots for faster start-up' |
282 }, | 285 }, |
| 286 'prof': { |
| 287 'values': ['on', 'off'], |
| 288 'default': 'off', |
| 289 'help': 'enable profiling of build target' |
| 290 }, |
283 'library': { | 291 'library': { |
284 'values': ['static', 'shared'], | 292 'values': ['static', 'shared'], |
285 'default': 'static', | 293 'default': 'static', |
286 'help': 'the type of library to produce' | 294 'help': 'the type of library to produce' |
287 }, | 295 }, |
288 'wordsize': { | 296 'wordsize': { |
289 'values': ['64', '32'], | 297 'values': ['64', '32'], |
290 'default': WORDSIZE_GUESS, | 298 'default': WORDSIZE_GUESS, |
291 'help': 'the word size' | 299 'help': 'the word size' |
292 }, | 300 }, |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 Abort("Illegal value for option %s '%s'." % (option, s)) | 338 Abort("Illegal value for option %s '%s'." % (option, s)) |
331 return False | 339 return False |
332 return True | 340 return True |
333 | 341 |
334 | 342 |
335 def VerifyOptions(env): | 343 def VerifyOptions(env): |
336 if not IsLegal(env, 'mode', ['debug', 'release']): | 344 if not IsLegal(env, 'mode', ['debug', 'release']): |
337 return False | 345 return False |
338 if not IsLegal(env, 'sample', ["shell", "process"]): | 346 if not IsLegal(env, 'sample', ["shell", "process"]): |
339 return False | 347 return False |
| 348 if env['os'] == 'win32' and env['library'] == 'shared' and env['prof'] == 'on'
: |
| 349 Abort("Profiling on windows only supported for static library.") |
340 for (name, option) in SIMPLE_OPTIONS.iteritems(): | 350 for (name, option) in SIMPLE_OPTIONS.iteritems(): |
341 if (not option.get('default')) and (name not in ARGUMENTS): | 351 if (not option.get('default')) and (name not in ARGUMENTS): |
342 message = ("A value for option %s must be specified (%s)." % | 352 message = ("A value for option %s must be specified (%s)." % |
343 (name, ", ".join(option['values']))) | 353 (name, ", ".join(option['values']))) |
344 Abort(message) | 354 Abort(message) |
345 if not env[name] in option['values']: | 355 if not env[name] in option['values']: |
346 message = ("Unknown %s value '%s'. Possible values are (%s)." % | 356 message = ("Unknown %s value '%s'. Possible values are (%s)." % |
347 (name, env[name], ", ".join(option['values']))) | 357 (name, env[name], ", ".join(option['values']))) |
348 Abort(message) | 358 Abort(message) |
349 | 359 |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
532 # version of scons. Also, there's a bug in some revisions that | 542 # version of scons. Also, there's a bug in some revisions that |
533 # doesn't allow this flag to be set, so we swallow any exceptions. | 543 # doesn't allow this flag to be set, so we swallow any exceptions. |
534 # Lovely. | 544 # Lovely. |
535 try: | 545 try: |
536 SetOption('warn', 'no-deprecated') | 546 SetOption('warn', 'no-deprecated') |
537 except: | 547 except: |
538 pass | 548 pass |
539 | 549 |
540 | 550 |
541 Build() | 551 Build() |
OLD | NEW |