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 if sys.platform == 'win32': | 10 if sys.platform == 'win32': |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 clvars = Variables('scons.opts', ARGUMENTS) | 57 clvars = Variables('scons.opts', ARGUMENTS) |
58 clvars.AddVariables( | 58 clvars.AddVariables( |
59 ('BUILD_TARGET_DIR', '', 'Hammer'), | 59 ('BUILD_TARGET_DIR', '', 'Hammer'), |
60 ('CHROME_BUILD_TYPE', '', os.environ.get('CHROME_BUILD_TYPE', '')), | 60 ('CHROME_BUILD_TYPE', '', os.environ.get('CHROME_BUILD_TYPE', '')), |
61 ('CHROMIUM_BUILD', '', os.environ.get('CHROMIUM_BUILD', '')), | 61 ('CHROMIUM_BUILD', '', os.environ.get('CHROMIUM_BUILD', '')), |
62 BoolVariable('INCREMENTAL', '', os.environ.get('INCREMENTAL')), | 62 BoolVariable('INCREMENTAL', '', os.environ.get('INCREMENTAL')), |
63 ) | 63 ) |
64 | 64 |
65 | 65 |
66 root_env = Environment( | 66 root_env = Environment( |
| 67 # MSVSNew in the base environment? Yes, the point is we can (and |
| 68 # want to) generate Visual Studio project and solution files from |
| 69 # any platform. |
67 tools = ['component_setup', | 70 tools = ['component_setup', |
68 'chromium_builders', | 71 'chromium_builders', |
69 'chromium_load_component'], | 72 'chromium_load_component', |
| 73 'MSVSNew'], |
70 variables = clvars, | 74 variables = clvars, |
71 | 75 |
72 # Requested list of system (shared) libraries, from the comma separated | 76 # Requested list of system (shared) libraries, from the comma separated |
73 # SYSTEM_LIBS command-line argument | 77 # SYSTEM_LIBS command-line argument |
74 req_system_libs = [], | 78 req_system_libs = [], |
75 # All supported system libraries, for the help message | 79 # All supported system libraries, for the help message |
76 all_system_libs = [], | 80 all_system_libs = [], |
77 | 81 |
78 CHROME_SRC_DIR = '$MAIN_DIR/..', | 82 CHROME_SRC_DIR = '$MAIN_DIR/..', |
79 DESTINATION_ROOT = '$MAIN_DIR/$BUILD_TARGET_DIR', | 83 DESTINATION_ROOT = '$MAIN_DIR/$BUILD_TARGET_DIR', |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 BZIP2_DIR = '$THIRD_PARTY_DIR/bzip2', | 123 BZIP2_DIR = '$THIRD_PARTY_DIR/bzip2', |
120 ICU38_DIR = '$THIRD_PARTY_DIR/icu38', | 124 ICU38_DIR = '$THIRD_PARTY_DIR/icu38', |
121 LIBEVENT_DIR = '$THIRD_PARTY_DIR/libevent', | 125 LIBEVENT_DIR = '$THIRD_PARTY_DIR/libevent', |
122 LIBJPEG_DIR = '$THIRD_PARTY_DIR/libjpeg', | 126 LIBJPEG_DIR = '$THIRD_PARTY_DIR/libjpeg', |
123 LIBPNG_DIR = '$THIRD_PARTY_DIR/libpng', | 127 LIBPNG_DIR = '$THIRD_PARTY_DIR/libpng', |
124 LIBXML_DIR = '$THIRD_PARTY_DIR/libxml', | 128 LIBXML_DIR = '$THIRD_PARTY_DIR/libxml', |
125 LIBXSLT_DIR = '$THIRD_PARTY_DIR/libxslt', | 129 LIBXSLT_DIR = '$THIRD_PARTY_DIR/libxslt', |
126 LZMA_SDK_DIR = '$THIRD_PARTY_DIR/lzma_sdk', | 130 LZMA_SDK_DIR = '$THIRD_PARTY_DIR/lzma_sdk', |
127 MODP_B64_DIR = '$THIRD_PARTY_DIR/modp_b64', | 131 MODP_B64_DIR = '$THIRD_PARTY_DIR/modp_b64', |
128 NPAPI_DIR = '$THIRD_PARTY_DIR/npapi', | 132 NPAPI_DIR = '$THIRD_PARTY_DIR/npapi', |
| 133 SQLITE_DIR = '$THIRD_PARTY_DIR/sqlite', |
129 ZLIB_DIR = '$THIRD_PARTY_DIR/zlib', | 134 ZLIB_DIR = '$THIRD_PARTY_DIR/zlib', |
130 | 135 |
131 THIRD_PARTY_WEBKIT_DIR = '$THIRD_PARTY_DIR/WebKit', | 136 THIRD_PARTY_WEBKIT_DIR = '$THIRD_PARTY_DIR/WebKit', |
132 | 137 |
133 PYTHON=sys.executable, | 138 PYTHON=sys.executable, |
134 | 139 |
135 PERL = 'perl', | 140 PERL = 'perl', |
136 PERL_INCLUDE_FLAG = '-I ', | 141 PERL_INCLUDE_FLAG = '-I ', |
137 PERL_INCLUDE_SUFFIX = '', | 142 PERL_INCLUDE_SUFFIX = '', |
138 _PERL_INCLUDE_FLAGS = ('${_concat(PERL_INCLUDE_FLAG, ' | 143 _PERL_INCLUDE_FLAGS = ('${_concat(PERL_INCLUDE_FLAG, ' |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 | 219 |
215 # Add the final list into the root environment to be build in BuildComponents. | 220 # Add the final list into the root environment to be build in BuildComponents. |
216 root_env.Append(BUILD_SCONSCRIPTS = sconscripts) | 221 root_env.Append(BUILD_SCONSCRIPTS = sconscripts) |
217 | 222 |
218 | 223 |
219 | 224 |
220 # -------------------------------------------------------------------------- | 225 # -------------------------------------------------------------------------- |
221 # Windows specific | 226 # Windows specific |
222 | 227 |
223 windows_env = root_env.Clone() | 228 windows_env = root_env.Clone() |
| 229 |
224 windows_env.Tool('target_platform_windows') | 230 windows_env.Tool('target_platform_windows') |
225 windows_env.Tool('component_targets_msvs') # Per target project support. | 231 windows_env.Tool('component_targets_msvs') # Per target project support. |
| 232 |
| 233 # Hammer's target_platform_windows module added the stock SCons |
| 234 # MSVSProject() and MSVSSolution() Builders, which we're going to |
| 235 # replace with our newer, more flexible implementation. Wipe out the |
| 236 # older ones so they don't interfere with our initialization and so |
| 237 # SCons doesn't propagate them to cloned construction environments. |
| 238 del windows_env['BUILDERS']['MSVSProject'] |
| 239 del windows_env['BUILDERS']['MSVSSolution'] |
| 240 windows_env.Tool('MSVSNew') |
| 241 |
226 windows_env.Tool('midl') | 242 windows_env.Tool('midl') |
227 | 243 |
228 # TODO(bradnelson): target_platform_windows defines a whole bunch of | 244 # TODO(bradnelson): target_platform_windows defines a whole bunch of |
229 # flags that we don't care about, including defining OS_WINDOWS in a | 245 # flags that we don't care about, including defining OS_WINDOWS in a |
230 # way that we don't want, and (most especially) adding *_DEBUG and | 246 # way that we don't want, and (most especially) adding *_DEBUG and |
231 # *_OPTIMIZED constructionv variables that add magic values to | 247 # *_OPTIMIZED constructionv variables that add magic values to |
232 # CCFLAGS. We override the normal variables (CPPDEFINES, CCFLAGS, | 248 # CCFLAGS. We override the normal variables (CPPDEFINES, CCFLAGS, |
233 # LINKFLAGS, ARFLAGS) below, but get rid of the special Hammer ones | 249 # LINKFLAGS, ARFLAGS) below, but get rid of the special Hammer ones |
234 # here, until Hammer can be made a little nicer about htis. | 250 # here, until Hammer can be made a little nicer about htis. |
235 | 251 |
236 del windows_env['CCFLAGS_DEBUG'] | 252 del windows_env['CCFLAGS_DEBUG'] |
237 del windows_env['LINKFLAGS_DEBUG'] | 253 del windows_env['LINKFLAGS_DEBUG'] |
238 del windows_env['CCFLAGS_OPTIMIZED'] | 254 del windows_env['CCFLAGS_OPTIMIZED'] |
239 | 255 |
240 windows_env['PDB'] = '${TARGET.base}.pdb' | 256 windows_env['PDB'] = '${TARGET.base}.pdb' |
241 windows_env['MSVC_BATCH'] = True | 257 windows_env['MSVC_BATCH'] = True |
242 | 258 |
243 # TODO(bradnelson): this should not need to be gated on host platform. | 259 # TODO(bradnelson): this should not need to be gated on host platform. |
244 if root_env['PLATFORM'] in ['win32', 'cygwin']: | 260 if root_env['PLATFORM'] in ['win32', 'cygwin']: |
245 msvs_env = Environment(tools=['msvc', 'mslink', 'msvs'])['ENV'] | 261 msvs_env = Environment(tools=['msvc', 'mslink'])['ENV'] |
246 msvs_drive = msvs_env['PATH'][0] | 262 msvs_drive = msvs_env['PATH'][0] |
247 else: | 263 else: |
248 msvs_env = {'PATH': '', 'INCLUDE': '', 'LIB': ''} | 264 msvs_env = {'PATH': '', 'INCLUDE': '', 'LIB': ''} |
249 msvs_drive = 'C' | 265 msvs_drive = 'C' |
250 | 266 |
251 # Use the absolute path for MSVC because it might not be on the same drive | 267 # Use the absolute path for MSVC because it might not be on the same drive |
252 # as our source checkout. | 268 # as our source checkout. |
253 visual_studio_path = msvs_drive + ':/Program Files/Microsoft Visual Studio 8' | 269 visual_studio_path = msvs_drive + ':/Program Files/Microsoft Visual Studio 8' |
254 | 270 |
255 # If side-by-side platform sdk is not available try local copy. | 271 # If side-by-side platform sdk is not available try local copy. |
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
718 'all_libraries', | 734 'all_libraries', |
719 'all_languages', | 735 'all_languages', |
720 'all_programs', | 736 'all_programs', |
721 'all_test_programs', | 737 'all_test_programs', |
722 ], projects = [p], | 738 ], projects = [p], |
723 COMPONENT_VS_PROJECT_SCRIPT_PATH=( | 739 COMPONENT_VS_PROJECT_SCRIPT_PATH=( |
724 'cd $$(ProjectDir)/$VS_PROJECT_TO_MAIN_DIR && hammer.bat'), | 740 'cd $$(ProjectDir)/$VS_PROJECT_TO_MAIN_DIR && hammer.bat'), |
725 ) | 741 ) |
726 | 742 |
727 # ------------------------------------------------------------------------- | 743 # ------------------------------------------------------------------------- |
OLD | NEW |