OLD | NEW |
1 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import os | 5 import os |
6 import shutil | 6 import shutil |
7 import sys | 7 import sys |
8 | 8 |
9 | 9 |
10 p = ARGUMENTS.get('PROGRESS') | 10 p = ARGUMENTS.get('PROGRESS') |
11 if p == 'spinner': | 11 if p == 'spinner': |
12 Progress(['/\r', '|\r', '\\\r', '-\r'], interval=5, file=open('con', 'w')) | 12 Progress(['/\r', '|\r', '\\\r', '-\r'], interval=5, file=open('con', 'w')) |
13 elif p == 'name': | 13 elif p == 'name': |
14 Progress('$TARGET\r', overwrite=True, file=open('con', 'w')) | 14 Progress('$TARGET\r', overwrite=True, file=open('con', 'w')) |
15 | 15 |
16 | 16 |
17 default_warnings = ['no-missing-sconscript', 'no-no-parallel-support'] | 17 default_warnings = ['no-missing-sconscript', 'no-no-parallel-support'] |
18 default_warnings = ['no-no-parallel-support'] | 18 default_warnings = ['no-no-parallel-support'] |
19 SetOption('warn', default_warnings + GetOption('warn')) | 19 SetOption('warn', default_warnings + GetOption('warn')) |
20 | 20 |
21 | 21 |
22 chrome_build_type = ARGUMENTS.get('CHROME_BUILD_TYPE') | 22 # Variables for controlling the build. |
23 if chrome_build_type is None: | 23 # |
24 chrome_build_type = os.environ.get('CHROME_BUILD_TYPE', ''), | 24 # The following variables can be set either on the command line |
25 | 25 # or in the external environment when executing SCons, with the |
26 chromium_build = ARGUMENTS.get('CHROMIUM_BUILD') | 26 # command line overriding any environment setting. |
27 if chromium_build is None: | 27 # |
28 chromium_build = os.environ.get('CHROMIUM_BUILD', ''), | 28 # CHROME_BUILD_TYPE |
| 29 # When set, applies settings from the file |
| 30 # build\internal\release_impl${CHROME_BUILD_TYPE}.scons |
| 31 # to be applied to the construction environment. |
| 32 # |
| 33 # CHROMIUM_BUILD |
| 34 # When set, applies settings from the file |
| 35 # build\internal\chromium_build${CHROMIUM_BUILD}.scons |
| 36 # to be applied to the construction environment. |
| 37 # |
| 38 # INCREMENTAL |
| 39 # Controls whether or not libraries and executable programs are |
| 40 # linked incrementally. When set to any True value (1, T, y, True), |
| 41 # uses the /INCREMENTAL flag to the Microsoft linker. An |
| 42 # explicit False value (0, f, N, false) uses the /INCREMENTAL:NO. |
| 43 # When not set, the default is to link debug (developer) builds |
| 44 # incrementally, but release builds use full links. |
| 45 # |
| 46 clvars = Variables('scons.opts', ARGUMENTS) |
| 47 clvars.AddVariables( |
| 48 ('CHROME_BUILD_TYPE', '', os.environ.get('CHROME_BUILD_TYPE', '')), |
| 49 ('CHROMIUM_BUILD', '', os.environ.get('CHROMIUM_BUILD', '')), |
| 50 BoolVariable('INCREMENTAL', '', os.environ.get('INCREMENTAL')), |
| 51 ) |
29 | 52 |
30 | 53 |
31 root_env = Environment( | 54 root_env = Environment( |
32 tools = ['component_setup', | 55 tools = ['component_setup', |
33 'chromium_builders', | 56 'chromium_builders', |
34 'chromium_load_component'], | 57 'chromium_load_component'], |
| 58 variables = clvars, |
35 | 59 |
36 # Requested list of system (shared) libraries, from the comma separated | 60 # Requested list of system (shared) libraries, from the comma separated |
37 # SYSTEM_LIBS command-line argument | 61 # SYSTEM_LIBS command-line argument |
38 req_system_libs = [], | 62 req_system_libs = [], |
39 # All supported system libraries, for the help message | 63 # All supported system libraries, for the help message |
40 all_system_libs = [], | 64 all_system_libs = [], |
41 | 65 |
42 CHROME_BUILD_TYPE = chrome_build_type, | |
43 CHROMIUM_BUILD = chromium_build, | |
44 | |
45 CHROME_SRC_DIR = '$MAIN_DIR/..', | 66 CHROME_SRC_DIR = '$MAIN_DIR/..', |
46 DESTINATION_ROOT = '$MAIN_DIR/Hammer', | 67 DESTINATION_ROOT = '$MAIN_DIR/Hammer', |
47 | 68 |
48 # Where ComponentTestProgram() will build test executables. | 69 # Where ComponentTestProgram() will build test executables. |
49 TESTS_DIR = '$DESTINATION_ROOT', | 70 TESTS_DIR = '$DESTINATION_ROOT', |
50 | 71 |
51 # Where ComponentProgram() will build program executables. | 72 # Where ComponentProgram() will build program executables. |
52 STAGING_DIR = '$DESTINATION_ROOT', | 73 STAGING_DIR = '$DESTINATION_ROOT', |
53 | 74 |
54 # Where ComponentLibrary() will build libraries. | 75 # Where ComponentLibrary() will build libraries. |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 # *_OPTIMIZED constructionv variables that add magic values to | 228 # *_OPTIMIZED constructionv variables that add magic values to |
208 # CCFLAGS. We override the normal variables (CPPDEFINES, CCFLAGS, | 229 # CCFLAGS. We override the normal variables (CPPDEFINES, CCFLAGS, |
209 # LINKFLAGS, ARFLAGS) below, but get rid of the special Hammer ones | 230 # LINKFLAGS, ARFLAGS) below, but get rid of the special Hammer ones |
210 # here, until Hammer can be made a little nicer about htis. | 231 # here, until Hammer can be made a little nicer about htis. |
211 | 232 |
212 del windows_env['CCFLAGS_DEBUG'] | 233 del windows_env['CCFLAGS_DEBUG'] |
213 del windows_env['LINKFLAGS_DEBUG'] | 234 del windows_env['LINKFLAGS_DEBUG'] |
214 del windows_env['CCFLAGS_OPTIMIZED'] | 235 del windows_env['CCFLAGS_OPTIMIZED'] |
215 | 236 |
216 windows_env['PDB'] = '${TARGET.base}.pdb' | 237 windows_env['PDB'] = '${TARGET.base}.pdb' |
| 238 windows_env['MSVC_BATCH'] = True |
217 | 239 |
218 # TODO(bradnelson): this should not need to be gated on host platform. | 240 # TODO(bradnelson): this should not need to be gated on host platform. |
219 if root_env['PLATFORM'] in ['win32', 'cygwin']: | 241 if root_env['PLATFORM'] in ['win32', 'cygwin']: |
220 msvs_env = Environment(tools=['msvc', 'mslink', 'msvs'])['ENV'] | 242 msvs_env = Environment(tools=['msvc', 'mslink', 'msvs'])['ENV'] |
221 msvs_drive = msvs_env['PATH'][0] | 243 msvs_drive = msvs_env['PATH'][0] |
222 else: | 244 else: |
223 msvs_env = {'PATH': '', 'INCLUDE': '', 'LIB': ''} | 245 msvs_env = {'PATH': '', 'INCLUDE': '', 'LIB': ''} |
224 msvs_drive = 'C' | 246 msvs_drive = 'C' |
225 | 247 |
226 # Use the absolute path for MSVC because it might not be on the same drive | 248 # Use the absolute path for MSVC because it might not be on the same drive |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
497 mac_env.Replace( | 519 mac_env.Replace( |
498 # Reproduce XCode's behavior of using gcc even to link C++, | 520 # Reproduce XCode's behavior of using gcc even to link C++, |
499 # and distinguishing it the -x c++ option. | 521 # and distinguishing it the -x c++ option. |
500 CC = 'gcc-4.2', | 522 CC = 'gcc-4.2', |
501 CXX = 'g++-4.2', | 523 CXX = 'g++-4.2', |
502 LINK = '$CXX', | 524 LINK = '$CXX', |
503 ) | 525 ) |
504 | 526 |
505 mac_env.FilterOut( | 527 mac_env.FilterOut( |
506 BUILD_SCONSCRIPTS = [ | 528 BUILD_SCONSCRIPTS = [ |
| 529 '$BREAKPAD_DIR/SConscript', |
| 530 '$BSDIFF_DIR/bsdiff.scons', |
507 '$BSPATCH_DIR/bspatch.scons', | 531 '$BSPATCH_DIR/bspatch.scons', |
508 '$BSDIFF_DIR/bsdiff.scons', | 532 '$CHROME_DIR/chrome.scons', |
509 '$LIBJPEG_DIR/SConscript', | |
510 '$LIBXML_DIR/SConscript', | |
511 '$LIBXSLT_DIR/SConscript', | |
512 '$BREAKPAD_DIR/SConscript', | |
513 '$CHROME_DIR/SConscript', | |
514 '$GEARS_DIR/SConscript', | 533 '$GEARS_DIR/SConscript', |
515 '$GOOGLE_UPDATE_DIR/SConscript', | 534 '$GOOGLE_UPDATE_DIR/SConscript', |
| 535 '$LIBJPEG_DIR/libjpeg.scons', |
| 536 '$LIBXML_DIR/libxml.scons', |
| 537 '$LIBXSLT_DIR/libxslt.scons', |
516 '$RLZ_DIR/SConscript', | 538 '$RLZ_DIR/SConscript', |
517 '$SANDBOX_DIR/sandbox.scons', | 539 '$SANDBOX_DIR/sandbox.scons', |
| 540 '$WEBKIT_DIR/SConscript', |
518 'build/SConscript.v8', | 541 'build/SConscript.v8', |
519 '$WEBKIT_DIR/SConscript', | |
520 ], | 542 ], |
521 ) | 543 ) |
522 | 544 |
523 if not root_env.WantSystemLib('libevent'): | 545 if not root_env.WantSystemLib('libevent'): |
524 mac_env.Append( | 546 mac_env.Append( |
525 BUILD_SCONSCRIPTS = [ | 547 BUILD_SCONSCRIPTS = [ |
526 '$LIBEVENT_DIR/libevent.scons', | 548 '$LIBEVENT_DIR/libevent.scons', |
527 ], | 549 ], |
528 ) | 550 ) |
529 mac_env.Append( | 551 mac_env.Append( |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
690 'all_libraries', | 712 'all_libraries', |
691 'all_languages', | 713 'all_languages', |
692 'all_programs', | 714 'all_programs', |
693 'all_test_programs', | 715 'all_test_programs', |
694 ], projects = [p], | 716 ], projects = [p], |
695 COMPONENT_VS_PROJECT_SCRIPT_PATH=( | 717 COMPONENT_VS_PROJECT_SCRIPT_PATH=( |
696 'cd $$(ProjectDir)/$VS_PROJECT_TO_MAIN_DIR && hammer.bat'), | 718 'cd $$(ProjectDir)/$VS_PROJECT_TO_MAIN_DIR && hammer.bat'), |
697 ) | 719 ) |
698 | 720 |
699 # ------------------------------------------------------------------------- | 721 # ------------------------------------------------------------------------- |
OLD | NEW |