Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: build/SConscript.main

Issue 11478: Finish replicating the *.vsprops structure. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/gfx/base_gfx.scons ('k') | build/common.scons » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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')
(...skipping 17 matching lines...) Expand all
28 28
29 root_env = Environment( 29 root_env = Environment(
30 tools = ['component_setup'], 30 tools = ['component_setup'],
31 31
32 # Requested list of system (shared) libraries, from the comma separated 32 # Requested list of system (shared) libraries, from the comma separated
33 # SYSTEM_LIBS command-line argument 33 # SYSTEM_LIBS command-line argument
34 req_system_libs = [], 34 req_system_libs = [],
35 # All supported system libraries, for the help message 35 # All supported system libraries, for the help message
36 all_system_libs = [], 36 all_system_libs = [],
37 37
38 CHROME_BUILD_TYPE = os.environ.get('CHROME_BUILD_TYPE', ''),
39 CHROMIUM_BUILD = os.environ.get('CHROMIUM_BUILD', ''),
40
38 CHROME_SRC_DIR = '$MAIN_DIR/..', 41 CHROME_SRC_DIR = '$MAIN_DIR/..',
39 DESTINATION_ROOT = '$MAIN_DIR/Hammer', 42 DESTINATION_ROOT = '$MAIN_DIR/Hammer',
40 43
41 # Where ComponentTestProgram() will build test executables. 44 # Where ComponentTestProgram() will build test executables.
42 TESTS_DIR = '$DESTINATION_ROOT', 45 TESTS_DIR = '$DESTINATION_ROOT',
43 46
44 # Where ComponentProgram() will build program executables. 47 # Where ComponentProgram() will build program executables.
45 STAGING_DIR = '$DESTINATION_ROOT', 48 STAGING_DIR = '$DESTINATION_ROOT',
46 49
47 # Where ComponentLibrary() will build libraries. 50 # Where ComponentLibrary() will build libraries.
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 root_env['CXXCOMSTR'] = 'Compiling $TARGET ...' 156 root_env['CXXCOMSTR'] = 'Compiling $TARGET ...'
154 root_env['SHCCCOMSTR'] = 'Compiling $TARGET ...' 157 root_env['SHCCCOMSTR'] = 'Compiling $TARGET ...'
155 root_env['SHCXXCOMSTR'] = 'Compiling $TARGET ...' 158 root_env['SHCXXCOMSTR'] = 'Compiling $TARGET ...'
156 root_env['ARCOMSTR'] = 'Archiving $TARGET ...' 159 root_env['ARCOMSTR'] = 'Archiving $TARGET ...'
157 root_env['LINKCOMSTR'] = 'Linking $TARGET ...' 160 root_env['LINKCOMSTR'] = 'Linking $TARGET ...'
158 root_env['BINDINGSCOMSTR'] = 'Building bindings in $TARGET ...' 161 root_env['BINDINGSCOMSTR'] = 'Building bindings in $TARGET ...'
159 162
160 # Use timestamps change, followed by MD5 for speed 163 # Use timestamps change, followed by MD5 for speed
161 root_env.Decider('MD5-timestamp') 164 root_env.Decider('MD5-timestamp')
162 165
166 # Incorporate settings that should apply globally (primarily to provide
167 # an obvious place for developmental experimentation).
168 root_env.ApplySConscript(['$CHROME_SRC_DIR/build/common.scons'])
163 169
164 # The list of all leaf (fully described) environments. 170 # The list of all leaf (fully described) environments.
165 environment_list = [] 171 environment_list = []
166 172
167 173
168 # -------------------------------------------------------------------------- 174 # --------------------------------------------------------------------------
169 # Decide which things to load. 175 # Decide which things to load.
170 # Don't put anything platform depended here, this is just to gate things 176 # Don't put anything platform depended here, this is just to gate things
171 # in or out for speed. 177 # in or out for speed.
172 178
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 272
267 # Add the final list into the root environment to be build in BuildComponents. 273 # Add the final list into the root environment to be build in BuildComponents.
268 root_env.Append(BUILD_SCONSCRIPTS = sconscripts) 274 root_env.Append(BUILD_SCONSCRIPTS = sconscripts)
269 275
270 276
271 277
272 # -------------------------------------------------------------------------- 278 # --------------------------------------------------------------------------
273 # Windows specific 279 # Windows specific
274 280
275 windows_env = root_env.Clone() 281 windows_env = root_env.Clone()
276 environment_list.append(windows_env)
277 windows_env.Tool('target_platform_windows') 282 windows_env.Tool('target_platform_windows')
278 windows_env.Tool('target_debug')
279 windows_env.Tool('component_targets_msvs') # Per target project support. 283 windows_env.Tool('component_targets_msvs') # Per target project support.
280 windows_env.Tool('midl') 284 windows_env.Tool('midl')
281 windows_env.Replace(
282 BUILD_TYPE = 'debug-windows',
283 BUILD_TYPE_DESCRIPTION = 'Windows debug build',
284 )
285 windows_env.Append(BUILD_GROUPS = ['default'])
286 285
287 # TODO(bradnelson): this is needed for now because target_platform_windows 286 # TODO(bradnelson): target_platform_windows defines a whole bunch of
288 # has OS_WINDOWS defined in a weird way. 287 # flags that we don't care about, including defining OS_WINDOWS in a
289 windows_env.FilterOut(CPPDEFINES = ['OS_WINDOWS=OS_WINDOWS']) 288 # way that we don't want, and (most especially) adding *_DEBUG and
289 # *_OPTIMIZED constructionv variables that add magic values to
290 # CCFLAGS. We override the normal variables (CPPDEFINES, CCFLAGS,
291 # LINKFLAGS, ARFLAGS) below, but get rid of the special Hammer ones
292 # here, until Hammer can be made a little nicer about htis.
293
294 del windows_env['CCFLAGS_DEBUG']
295 del windows_env['LINKFLAGS_DEBUG']
296 del windows_env['CCFLAGS_OPTIMIZED']
290 297
291 windows_env['PDB'] = '${TARGET.base}.pdb' 298 windows_env['PDB'] = '${TARGET.base}.pdb'
292 299
293
294 # TODO(bradnelson): this should not need to be gated on host platform. 300 # TODO(bradnelson): this should not need to be gated on host platform.
295 if root_env['PLATFORM'] in ['win32', 'cygwin']: 301 if root_env['PLATFORM'] in ['win32', 'cygwin']:
296 msvs_env = Environment(tools=['msvc', 'mslink', 'msvs'])['ENV'] 302 msvs_env = Environment(tools=['msvc', 'mslink', 'msvs'])['ENV']
297 msvs_drive = msvs_env['PATH'][0] 303 msvs_drive = msvs_env['PATH'][0]
298 else: 304 else:
299 msvs_env = {'PATH': '', 'INCLUDE': '', 'LIB': ''} 305 msvs_env = {'PATH': '', 'INCLUDE': '', 'LIB': ''}
300 msvs_drive = 'C' 306 msvs_drive = 'C'
301 307
302 # Use the absolute path for MSVC because it might not be on the same drive 308 # Use the absolute path for MSVC because it might not be on the same drive
303 # as our source checkout. 309 # as our source checkout.
304 visual_studio_path = msvs_drive + ':/Program Files/Microsoft Visual Studio 8' 310 visual_studio_path = msvs_drive + ':/Program Files/Microsoft Visual Studio 8'
305 311
306 windows_env.Replace( 312 windows_env.Replace(
307 CSCRIPT = 'c:\\Windows\\System32\\cscript', 313 CSCRIPT = 'c:\\Windows\\System32\\cscript',
308 314
309 PLATFORMSDK_VISTA_REL = '../third_party/platformsdk_vista_6_0', 315 PLATFORMSDK_VISTA_REL = '../third_party/platformsdk_vista_6_0',
310 PLATFORMSDK_VISTA = '$CHROME_SRC_DIR/third_party/platformsdk_vista_6_0', 316 PLATFORMSDK_VISTA = '$CHROME_SRC_DIR/third_party/platformsdk_vista_6_0',
311 VISUAL_STUDIO = visual_studio_path, 317 VISUAL_STUDIO = visual_studio_path,
312 318
313 CYGWIN_DIR = windows_env.Dir('$CHROME_SRC_DIR/third_party/cygwin'), 319 CYGWIN_DIR = windows_env.Dir('$CHROME_SRC_DIR/third_party/cygwin'),
314 CYGWIN_BIN_DIR = '$CYGWIN_DIR/bin', 320 CYGWIN_BIN_DIR = '$CYGWIN_DIR/bin',
315 321
316 PERL = '$CYGWIN_BIN_DIR/perl.exe', 322 PERL = '$CYGWIN_BIN_DIR/perl.exe',
317 323
318 MSVS_ENV = msvs_env, 324 MSVS_ENV = msvs_env,
319 325
320 YACC = '$CYGWIN_BIN_DIR/bison.exe', 326 YACC = '$CYGWIN_BIN_DIR/bison.exe',
321 )
322 327
323 windows_env.Append(
324 ARFLAGS = [ 328 ARFLAGS = [
325 '/nologo', 329 '/nologo',
326 ], 330 ],
327 331
328 CCFLAGS = [ 332 CCFLAGS = [
329 '/nologo', 333 '/nologo',
330
331 '/Od', # no optimization
332
333 '/RTC1',
334 '/MTd', # static link to crt, and debug version
335 '/Gy',
336 '/GR-',
337
338 '/W3',
339
340 '/Z7',
341
342 '/errorReport:prompt', 334 '/errorReport:prompt',
343
344 '/wd4503',
345 '/wd4819',
346 ], 335 ],
347 336
348 CPPDEFINES = [ 337 CPPDEFINES = [
349 '_CRT_SECURE_NO_DEPRECATE',
350 '_CRT_NONSTDC_NO_WARNINGS',
351 '_CRT_NONSTDC_NO_DEPRECATE',
352 '_SCL_SECURE_NO_DEPRECATE',
353
354 '_DEBUG',
355
356 '_CRT_RAND_S',
357 ('_WIN32_WINNT', '0x0600'),
358 ('WINVER', '0x0600'),
359 'WIN32',
360 '_WINDOWS',
361 ('_HAS_EXCEPTIONS', 0),
362 'NOMINMAX',
363 '_UNICODE', 338 '_UNICODE',
364 'UNICODE', 339 'UNICODE',
365
366 'CERT_CHAIN_PARA_HAS_EXTRA_FIELDS',
367 'WIN32_LEAN_AND_MEAN',
368 ], 340 ],
369 341
370 CPPPATH = [
371 '$PLATFORMSDK_VISTA/files/Include',
372 '$PLATFORMSDK_VISTA/files/VC/INCLUDE',
373 '$VISUAL_STUDIO/VC/atlmfc/include',
374 ],
375 342
376 LIBS = [ 343 LIBS = [
377 'advapi32.lib', 344 'advapi32.lib',
378 'comdlg32.lib', 345 'comdlg32.lib',
379 'gdi32.lib', 346 'gdi32.lib',
380 'kernel32.lib', 347 'kernel32.lib',
381 'msimg32.lib',
382 'odbc32.lib', 348 'odbc32.lib',
383 'odbccp32.lib', 349 'odbccp32.lib',
384 'ole32.lib', 350 'ole32.lib',
385 'oleaut32.lib', 351 'oleaut32.lib',
386 'psapi.lib',
387 'shell32.lib', 352 'shell32.lib',
388 'user32.lib', 353 'user32.lib',
389 'usp10.lib',
390 'uuid.lib', 354 'uuid.lib',
391 'version.lib',
392 'wininet.lib',
393 'winspool.lib', 355 'winspool.lib',
394 'ws2_32.lib',
395 356
396 'DelayImp.lib', 357 'DelayImp.lib',
397 ], 358 ],
398 359
399 LINKFLAGS = [ 360 LINKFLAGS = [
400 '/nologo', 361 '/nologo',
401 '/DEBUG',
402 ], 362 ],
403 363
404 ICU_LIBS = ['icu'], 364 ICU_LIBS = ['icu'],
405 ) 365 )
406 366
407 windows_env.Append(
408 LIBPATH = [
409 '$PLATFORMSDK_VISTA/files/Lib',
410 '$PLATFORMSDK_VISTA/files/VC/LIB',
411 '$VISUAL_STUDIO/VC/atlmfc/lib',
412 ],
413 )
414
415 # TODO(sgk): remove once we upgrade to SCons 0.98.4
416 for var in ['INCLUDE', 'LIB', 'PATH']:
417 msvs_env[var] = msvs_env[var].split('|', 1)[0]
418 windows_env['ENV'][var] = windows_env['ENV'][var].split('|', 1)[0]
419
420 # Force scons to handle long include lines correctly. 367 # Force scons to handle long include lines correctly.
421 pchcom_fixed = windows_env['PCHCOM'] 368 pchcom_fixed = windows_env['PCHCOM']
422 pchcom_fixed = pchcom_fixed.replace('${TARGETS[0]}', '$TARGET') 369 pchcom_fixed = pchcom_fixed.replace('${TARGETS[0]}', '$TARGET')
423 pchcom_fixed = pchcom_fixed.replace('${TARGETS[1]}', '$TARGETS1') 370 pchcom_fixed = pchcom_fixed.replace('${TARGETS[1]}', '$TARGETS1')
424 371
372 # Below, we'll redefine $CXXFLAGS so its expansion doesn't include
373 # $CCFLAGS. Modify $PCHCOM, which was relying on this fact, so
374 # that $CCFLAGS still shows up in precompiled header compilations.
375 pchcom_fixed = pchcom_fixed.replace('$CXXFLAGS', '$CXXFLAGS $CCFLAGS')
376
425 windows_env.Replace( 377 windows_env.Replace(
426 CCCOM = "${TEMPFILE('%s')}" % windows_env['CCCOM'], 378 CCCOM = "${TEMPFILE('%s')}" % windows_env['CCCOM'],
427 CXXCOM = "${TEMPFILE('%s')}" % windows_env['CXXCOM'], 379 CXXCOM = "${TEMPFILE('%s')}" % windows_env['CXXCOM'],
428 SHCCCOM = "${TEMPFILE('%s')}" % windows_env['SHCCCOM'], 380 SHCCCOM = "${TEMPFILE('%s')}" % windows_env['SHCCCOM'],
429 SHCXXCOM = "${TEMPFILE('%s')}" % windows_env['SHCXXCOM'], 381 SHCXXCOM = "${TEMPFILE('%s')}" % windows_env['SHCXXCOM'],
430 PCHCOM = "${TEMPFILE('%s')}" % pchcom_fixed, 382 PCHCOM = "${TEMPFILE('%s')}" % pchcom_fixed,
431 TARGETS1 = '${TARGETS[1]}', 383 TARGETS1 = '${TARGETS[1]}',
384
385 # The SCons default for $CXXFLAGS contains $CCFLAGS, which is
386 # also on the $CCCOM command line string separately. Redefine
387 # $CXXFLAGS to avoid the duplication
388 CXXFLAGS = '$( /TP $)',
432 ) 389 )
433 390
434 windows_env['ENV']['PROGRAMFILES'] = os.environ.get('PROGRAMFILES', '') 391 windows_env['ENV']['PROGRAMFILES'] = os.environ.get('PROGRAMFILES', '')
435 windows_env['ENV']['SystemDrive'] = os.environ.get('SystemDrive', '') 392 windows_env['ENV']['SystemDrive'] = os.environ.get('SystemDrive', '')
436 windows_env['ENV']['USERPROFILE'] = os.environ.get('USERPROFILE', '') 393 windows_env['ENV']['USERPROFILE'] = os.environ.get('USERPROFILE', '')
437 394
438 windows_env.AppendENVPath('PATH', ';C:\\WINDOWS\\system32') 395 windows_env.AppendENVPath('PATH', ';C:\\WINDOWS\\system32')
439 396
397 windows_dbg = windows_env.Clone()
398 environment_list.append(windows_dbg)
399 windows_dbg.Replace(
400 BUILD_TYPE = 'dbg',
401 BUILD_TYPE_DESCRIPTION = 'Windows debug build',
402 )
403 windows_dbg.Tool('target_debug')
404 windows_dbg.ApplySConscript(['$CHROME_SRC_DIR/build/debug.scons'])
405 windows_dbg.Append(BUILD_GROUPS = ['default'])
406
407 windows_opt = windows_env.Clone()
408 environment_list.append(windows_opt)
409 windows_opt.Replace(
410 BUILD_TYPE = 'opt',
411 BUILD_TYPE_DESCRIPTION = 'Windows optimized build',
412 )
413 windows_opt.Tool('target_optimized')
414 windows_opt.ApplySConscript(['$CHROME_SRC_DIR/build/release.scons'])
440 415
441 # -------------------------------------------------------------------------- 416 # --------------------------------------------------------------------------
442 # Linux specific 417 # Linux specific
443 418
444 linux_env = root_env.Clone() 419 linux_env = root_env.Clone()
445 linux_env.Tool('target_platform_linux') 420 linux_env.Tool('target_platform_linux')
446 linux_env.Tool('yacc') 421 linux_env.Tool('yacc')
447 422
448 # TODO(bradnelson): this is needed for now because target_platform_linux has 423 # TODO(bradnelson): this is needed for now because target_platform_linux has
449 # OS_LINUX defined in a weird way. 424 # OS_LINUX defined in a weird way.
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 'all_libraries', 764 'all_libraries',
790 'all_languages', 765 'all_languages',
791 'all_programs', 766 'all_programs',
792 'all_test_programs', 767 'all_test_programs',
793 ], projects = [p], 768 ], projects = [p],
794 COMPONENT_VS_PROJECT_SCRIPT_PATH=( 769 COMPONENT_VS_PROJECT_SCRIPT_PATH=(
795 'cd $$(ProjectDir)/$VS_PROJECT_TO_MAIN_DIR && hammer.bat'), 770 'cd $$(ProjectDir)/$VS_PROJECT_TO_MAIN_DIR && hammer.bat'),
796 ) 771 )
797 772
798 # ------------------------------------------------------------------------- 773 # -------------------------------------------------------------------------
OLDNEW
« no previous file with comments | « base/gfx/base_gfx.scons ('k') | build/common.scons » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698