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

Side by Side Diff: main.scons

Issue 354011: This change kills the SCons build, since we have switched completely... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/o3d/
Patch Set: Created 11 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 | « ipc/build.scons ('k') | nbguidgen/build.scons » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2009, Google Inc.
2 # All rights reserved.
3 #
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are
6 # met:
7 #
8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer.
10 # * Redistributions in binary form must reproduce the above
11 # copyright notice, this list of conditions and the following disclaimer
12 # in the documentation and/or other materials provided with the
13 # distribution.
14 # * Neither the name of Google Inc. nor the names of its
15 # contributors may be used to endorse or promote products derived from
16 # this software without specific prior written permission.
17 #
18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
30
31
32 import os
33 import sys
34
35
36 # Underlay everything from the o3d directory.
37 Dir('tests').addRepository(Dir('#/'))
38
39 def GetDotVersion(version):
40 return '%d.%d.%d.%d' % version
41
42 def GetCommaVersion(version):
43 return '%d,%d,%d,%d' % version
44
45 # This name is used by Javascript to find the plugin therefore it must
46 # not change. If you change this you must change the name in
47 # samples/o3djs/util.js but be aware, changing the name
48 # will break all apps that use o3d on the web.
49 plugin_name = 'O3D Plugin'
50
51 # Get version string from o3d_version.py
52 o3d_version_vars = {}
53 if int(ARGUMENTS.get('MAC_KILLSWITCH', 0)):
54 execfile(str(File('installer/win/o3d_kill_version.py')), o3d_version_vars)
55 else:
56 execfile(str(File('installer/win/o3d_version.py')), o3d_version_vars)
57 plugin_version = o3d_version_vars['plugin_version']
58 sdk_version = o3d_version_vars['sdk_version']
59
60 # --------------------------------------------------------------------
61
62
63 # List of environment leaves
64 environment_list = []
65
66 base_env = Environment(
67 tools = ['component_setup'],
68 O3D_PLUGIN_NAME = plugin_name,
69 O3D_PLUGIN_VERSION = GetDotVersion(plugin_version),
70 O3D_PLUGIN_VERSION_COMMAS = GetCommaVersion(plugin_version),
71 O3D_SDK_VERSION = GetDotVersion(sdk_version),
72 O3D_SDK_VERSION_COMMAS = GetCommaVersion(sdk_version),
73
74 # TODO: this will be the default, but is set for now
75 COMPONENT_STATIC = True,
76
77 COVERAGE_TARGETS = ['unit_tests', 'system_tests'],
78 MSVS_USE_MFC_DIRS=1,
79 )
80 base_env.ApplySConscript(['svn_paths.scons'])
81
82 base_env.Append(
83 # Some derived paths
84 NACL_NRD_XFER_SOURCE_DIR = '$NACL_DIR/src/trusted/desc',
85 NACL_PLUGIN_SOURCE_DIR = '$NACL_DIR/npapi_plugin',
86 DOCS_DIR = '$DESTINATION_ROOT/docs',
87
88 CPPPATH = [
89 # The internal dir is first so that headers in internal can replace
90
91 # those in external.
92
93 '$INTERNAL_DIR',
94 '$SCONSTRUCT_DIR/..',
95 '$SCONSTRUCT_DIR',
96 '$CHROME_SRC_DIR',
97 '$GTEST_DIR/include',
98 '$EXPERIMENTAL_O3D_DIR',
99 '$NACL_DIR/..',
100 ],
101 LIBPATH = '$LIBS_DIR',
102 RENDERER_INCLUDE_PATH = [
103 '$ZLIB_DIR',
104 '$JPEG_DIR',
105 '$PNG_DIR',
106 ],
107 RENDERER_LIB_PATH = [
108 ],
109 RENDERER_LIBS = [
110 'libjpeg',
111 'libpng',
112 'zlib',
113 ],
114
115 CPPDEFINES = [
116 ['O3D_VERSION_NUMBER', '$O3D_PLUGIN_VERSION'],
117 'UNICODE',
118 ],
119 ICU_LIBS = ['icu'],
120 )
121
122
123 # If you change this argument, you'll need to clean the whole project before
124 # rebuilding.
125 if ARGUMENTS.get('PROFILE_GLUE', ''):
126 base_env.Append(
127 CPPDEFINES = [
128 'PROFILE_GLUE',
129 'PROFILE_CLIENT',
130 ])
131
132 # Define O3D_ENABLE_BREAKPAD if Pulse passes in:
133 # O3D_ENABLE_BREAKPAD=1
134 if int(ARGUMENTS.get('O3D_ENABLE_BREAKPAD', 0)):
135 base_env.Append(CPPDEFINES = 'O3D_ENABLE_BREAKPAD')
136
137 # Returns a list of objects built from a third-party directory.
138 def MakeObjects(env, stems, dir, extension):
139 return [env.ComponentObject(stem, '%s/%s.%s' % (dir, stem, extension))
140 for stem in stems]
141 base_env.AddMethod(MakeObjects)
142
143 def Python(env, args):
144 """Returns an action that executes python with the given args, specifying
145 PYTHONPATH from the scons environment"""
146 sep = ':'
147 if env.Bit('host_windows'):
148 sep = ';'
149 # Add PYTHONPATH from the scons environment to the OS environment.
150 # NOTE: Ideally that would be delay-evaluated, but I can't figure out
151 # how to do that in scons.
152 env['ENV']['PYTHONPATH'] = env.subst(sep.join(env['PYTHONPATH']))
153 return Action(' '.join(['$PYTHON'] + args))
154
155 base_env.AddMethod(Python)
156
157 # The base NaCl IMC lib.
158 nacl_imc_lib = 'google_nacl_imc'
159
160 # All the libs required for IMC layer on the host.
161 nacl_imc_all_libs = [
162 nacl_imc_lib,
163 'google_nacl_imc_c',
164 ]
165
166 # All the libs required for HTP layer on the host.
167 nacl_htp_all_libs = [
168 nacl_imc_lib,
169 'google_nacl_imc_c',
170 'nrd_xfer',
171 'gio',
172 'naclthread',
173 ]
174
175 binaries_env = base_env.Clone()
176 binaries_env.Append(
177 BUILD_COMPONENTS = [
178 'base',
179 'bitmap',
180 'compiler/antlr',
181 'compiler/technique',
182 'converter',
183 # 'converter_edge',
184 'core',
185 'import',
186 'ipc',
187 'plugin',
188 'samples',
189 'serializer',
190 'skia',
191 'tests',
192 'tests/common',
193 'utils',
194 'v8',
195 ],
196 # TODO: this is ugly, should all be rolling into builder.
197 NACL_OBJ_ROOT = '$NACL_DIR/scons-out/$NACL_VARIANT/obj',
198 NACL_LIB_DIR = '$NACL_DIR/scons-out/$NACL_VARIANT/lib',
199 NACL_HTP_LIBS = nacl_htp_all_libs,
200 )
201
202 # This function adds a path to a windows environment variable like PATH,
203 # INCLUDE, or LIB.
204 def AddPathToWindowsEnv(env_dict, var, path):
205 try:
206 src = env_dict[var]
207 except KeyError:
208 src = ''
209 if not src:
210 env_dict[var] = path
211 else:
212 env_dict[var] = '%s;%s' % (src, path)
213
214 # This function builds the native client IMC or HTP libraries by
215 # calling scons to do a NaCl build. It should handle dependencies
216 # correctly and will not rebuild unless necessary.
217 def AddNaclBuildCommand(env, variant, platforms):
218 if sys.platform not in platforms: return
219
220 nacl_os_env = dict(os.environ)
221 if sys.platform in ['win32', 'cygwin']:
222 script_suffix = '.bat'
223 # We want native client to use the same Platform SDK as ours. Pass it
224 # through INCLUDE and LIB.
225 AddPathToWindowsEnv(nacl_os_env, 'INCLUDE',
226 env.subst('$PLATFORM_SDK_VISTA_6_0_DIR/Include'))
227 AddPathToWindowsEnv(nacl_os_env, 'LIB',
228 env.subst('$PLATFORM_SDK_VISTA_6_0_DIR/Lib'))
229 else:
230 script_suffix = '.sh'
231
232 build_libs = nacl_htp_all_libs
233
234 targets = ['$NACL_LIB_DIR/${LIBPREFIX}' + f + '${LIBSUFFIX}'
235 for f in build_libs]
236 nacl_build_tool = '$PYTHON $SCONS_DIR/scons.py'
237 env.Command(targets,
238 ['$NACL_NRD_XFER_SOURCE_DIR', '$NACL_PLUGIN_SOURCE_DIR'],
239 nacl_build_tool + ' '
240 'MODE=$NACL_VARIANT '
241 'naclsdk_validate=0 '
242 'sdl=none '
243 '--verbose '
244 '--file=SConstruct '
245 '$DEBUG_OPTS '
246 '-C $NACL_DIR '
247 '$NACL_TARGETS',
248 source_scanner = DirScanner,
249 ENV = nacl_os_env,
250 # TODO: figure out why these can't be absolute paths
251 # when run on some flavors of linux. For now we can pass in the
252 # library name, which at least works everywhere.
253 NACL_TARGETS = build_libs,
254 NACL_VARIANT = variant,
255 DEBUG_OPTS = ['--debug=%s' % item for item in GetOption('debug')],
256 )
257
258 # TODO: This is really not the ideal way to do this -- for
259 # instance, the output goes into the NaCl scons-out directory instead
260 # of ours.
261
262 # Add in the two variants of NACL.
263 win_platforms = ['win32', 'cygwin']
264 mac_platforms = ['darwin']
265 linux_platforms = ['linux', 'linux2']
266 all_platforms = win_platforms + mac_platforms + linux_platforms
267 AddNaclBuildCommand(binaries_env, 'dbg-win', win_platforms)
268 AddNaclBuildCommand(binaries_env, 'opt-win', win_platforms)
269 AddNaclBuildCommand(binaries_env, 'dbg-mac', mac_platforms)
270 AddNaclBuildCommand(binaries_env, 'opt-mac', mac_platforms)
271 AddNaclBuildCommand(binaries_env, 'dbg-linux', linux_platforms)
272 AddNaclBuildCommand(binaries_env, 'opt-linux', linux_platforms)
273 AddNaclBuildCommand(binaries_env, 'nacl', all_platforms)
274
275 def AddTestingFlags(env):
276 env.Append(
277 CPPDEFINES = ['TESTING'],
278 SELENIUM_EXTRA_FLAGS = [
279 '--screenshots']
280 )
281
282 # Windows ------------------------------------------------------------------
283
284 app_data_dir = ""
285 try:
286 app_data_dir = os.environ["APPDATA"]
287 except KeyError:
288 pass # This fails messily on mac + linux, so just ignore it.
289
290 windows_env = binaries_env.Clone(
291 tools = [
292 'target_platform_windows',
293 'directx_9_18_944_0_partial',
294 'atlmfc_vc80',
295 'midl',
296 ],
297 CG_DIR = '$CG_BASE_DIR/win',
298 FIREFOX_PLUGIN_DIR = os.path.join(
299 app_data_dir, 'Mozilla', 'plugins'),
300 IE_PLUGIN_DIR = os.path.join(
301 app_data_dir, 'Google', 'O3D'),
302
303 # Turn off manifest generation, since we don't use that.
304 MANIFEST_FILE=False,
305
306 # Use MIDL compiler from the platform sdk, since
307 # we're including headers from there.
308 MIDL = '"$PLATFORM_SDK_VISTA_6_0_DIR/Bin/Midl.exe"',
309 MIDLFLAGS=['"/I$PLATFORM_SDK_VISTA_6_0_DIR/Include"'],
310 )
311
312 windows_env.Append(
313 CPPPATH = [
314 '$PLATFORM_SDK_VISTA_6_0_DIR/Include',
315 '$SWIFTSHADER_DIR',
316 ],
317 LIBPATH = [
318 '$PLATFORM_SDK_VISTA_6_0_DIR/Lib',
319 ],
320 CPPDEFINES = [
321 '_UNICODE', # turn on unicode
322 'WIN32',
323 '_WINDOWS',
324 'WIN32_LEAN_AND_MEAN',
325 'NOMINMAX',
326 '_WIN32_WINNT=0x0600',
327 '_CRT_SECURE_NO_WARNINGS',
328 'NACL_WINDOWS=1',
329 'SK_BUILD_FOR_WIN32',
330 ],
331 CCFLAGS = [
332 '/Z7', # put debug info in obj files
333 '/EHsc',
334 '/wd4018', # comparison between signed and unsigned
335 '/wd4355', # using this in a constructor
336 '/wd4305', # truncating double to float
337 ],
338 LINKFLAGS = [
339 '/DEBUG' # Always generate PDBs.
340 ],
341 LIBS = [
342 'user32',
343 'gdi32',
344 'shell32',
345 'ws2_32',
346 'rpcrt4',
347 'kernel32',
348 'advapi32',
349 'psapi',
350 'winmm', # For V8
351 'ws2_32', # For V8
352 'Dbghelp', # For Chrome base
353 ],
354 BUILD_COMPONENTS = [
355 'breakpad',
356 'installer/win',
357 'google_update',
358 'plugin/npapi_host_control',
359 'statsreport',
360 'statsreport/common',
361 'nbguidgen',
362 ],
363 COVERAGE_TARGETS = ['selenium'],
364 )
365 windows_env.FilterOut(CPPDEFINES=['OS_WINDOWS=OS_WINDOWS'])
366
367 windows_d3d_env = windows_env.Clone()
368 windows_d3d_env.Append(
369 CPPDEFINES = ['RENDERER_D3D9'],
370 RENDERER_INCLUDE_PATH = [],
371 RENDERER_LIB_PATH = [],
372 RENDERER_LIBS = ['d3d9', 'dxerr'],
373 )
374
375 windows_gl_env = windows_env.Clone()
376 windows_gl_env.Append(
377 RENDERER_INCLUDE_PATH = [
378 '$GLEW_DIR/include',
379 '$CG_DIR/include',
380 ],
381 RENDERER_LIB_PATH = [
382 '$CG_DIR/lib',
383 '$GLEW_DIR/lib',
384 ],
385 RENDERER_LIBS = [
386 'OpenGL32',
387 'glew32',
388 'cg',
389 'cgGL',
390 ],
391 CPPDEFINES = [
392 'RENDERER_GL'
393 ]
394 )
395
396
397 def AddWindowsDebugSettings(env):
398 env.Append(
399 CCFLAGS = [
400 '/Od', # no optimizations at all
401 '/MTd', # multi-threaded, staticly linked crt, with debugging
402 '/RTCsu', # complain about using un-inited (u),
403 # do more stack checks (s)
404 ],
405 CPPDEFINES = [
406 '_DEBUG', # we are in debug mode
407 ],
408 LINKFLAGS = [
409 '/FIXED:no' # Put in .reloc sections, to make Purify happy.
410 ],
411 )
412 env.Replace(
413 DEBUG = True,
414 NACL_VARIANT = 'dbg-win',
415 )
416
417
418 def AddWindowsOptimizedSettings(env):
419 env.Append(
420 CCFLAGS = [
421 '/O1', # optimize for size
422 '/MT', # multi-threaded, staticly linked crt, release
423 ],
424 CPPDEFINES = [
425 'NDEBUG', # we are in release mode
426 'ANTLR3_NODEBUGGER', # turn off remote ANTLR debugging
427 ],
428 )
429 env.Replace(
430 DEBUG = False,
431 NACL_VARIANT = 'opt-win',
432 )
433
434
435 windows_d3d_debug_env = windows_d3d_env.Clone(
436 BUILD_TYPE = 'dbg-d3d',
437 BUILD_TYPE_DESCRIPTION = 'Windows DirectX debug build',
438 )
439 windows_d3d_debug_env.Append(BUILD_GROUPS = ['default', 'most'])
440 windows_d3d_debug_env.Append(CPPDEFINES = ['D3D_DEBUG_INFO'])
441 AddWindowsDebugSettings(windows_d3d_debug_env)
442 environment_list.append(windows_d3d_debug_env)
443
444
445 windows_d3d_optimized_env = windows_d3d_env.Clone(
446 BUILD_TYPE = 'opt-d3d',
447 BUILD_TYPE_DESCRIPTION = 'Windows DirectX optimized build',
448 )
449 windows_d3d_optimized_env.Append(BUILD_GROUPS = ['most'])
450 AddWindowsOptimizedSettings(windows_d3d_optimized_env)
451 environment_list.append(windows_d3d_optimized_env)
452
453 windows_d3d_test_debug_env = windows_d3d_env.Clone(
454 BUILD_TYPE = 'test-dbg-d3d',
455 BUILD_TYPE_DESCRIPTION = 'Windows DirectX debug build for testing',
456 )
457 AddWindowsDebugSettings(windows_d3d_test_debug_env)
458 AddTestingFlags(windows_d3d_test_debug_env)
459 environment_list.append(windows_d3d_test_debug_env)
460
461 windows_d3d_test_optimized_env = windows_d3d_env.Clone(
462 BUILD_TYPE = 'test-opt-d3d',
463 BUILD_TYPE_DESCRIPTION = 'Windows DirectX optimized build for testing',
464 )
465 AddWindowsOptimizedSettings(windows_d3d_test_optimized_env)
466 AddTestingFlags(windows_d3d_test_optimized_env)
467 environment_list.append(windows_d3d_test_optimized_env)
468
469 windows_gl_debug_env = windows_gl_env.Clone(
470 BUILD_TYPE = 'dbg-gl',
471 BUILD_TYPE_DESCRIPTION = 'Windows OpenGL debug build',
472 )
473 windows_gl_debug_env.Append(BUILD_GROUPS = ['most'])
474 AddWindowsDebugSettings(windows_gl_debug_env)
475 environment_list.append(windows_gl_debug_env)
476
477 windows_gl_optimized_env = windows_gl_env.Clone(
478 BUILD_TYPE = 'opt-gl',
479 BUILD_TYPE_DESCRIPTION = 'Windows OpenGL optimized build',
480 )
481 windows_gl_optimized_env.Append(BUILD_GROUPS = ['most'])
482 AddWindowsOptimizedSettings(windows_gl_optimized_env)
483 environment_list.append(windows_gl_optimized_env)
484
485 # MacOS ------------------------------------------------------------------
486
487 mac_env = binaries_env.Clone(
488 tools = ['target_platform_mac'],
489 FIREFOX_PLUGIN_DIR = '/Library/Internet Plug-Ins',
490 GL_DIR = '/System/Library/Frameworks/OpenGL.framework/Versions/A',
491 CG_DIR = '$CG_BASE_DIR/mac',
492 CCFLAGS = [
493 '-Wstrict-aliasing',
494 '-gstabs+',
495 '-fno-eliminate-unused-debug-symbols',
496 ],
497 )
498 mac_env.FilterOut(CPPDEFINES = ['OS_MACOSX=OS_MACOSX'])
499
500 mac_env.Append(CPPDEFINES = ['RENDERER_GL',
501 'GTEST_NOT_MAC_FRAMEWORK_MODE',
502 ['NACL_OSX', '1'],
503 ['MAC_OS_X_VERSION_MIN_REQUIRED',
504 'MAC_OS_X_VERSION_10_4'],
505 'SK_BUILD_FOR_MAC'
506 ],
507 RENDERER_INCLUDE_PATH = [
508 '$CG_DIR/include',
509 '$GLEW_DIR/include',
510 ],
511 RENDERER_LIB_PATH = [
512 '$GLEW_DIR/lib',
513 ],
514 RENDERER_LIBS = [
515 'MacStaticGLEW',
516 ],
517 CXXFLAGS = [
518 '-Wno-deprecated',
519 ],
520 CCFLAGS = [
521 '-mmacosx-version-min=10.4'
522 ],
523 BUILD_COMPONENTS = [
524 'event',
525 'statsreport',
526 'statsreport/common',
527 ],
528 )
529
530 def AddMacDebugSettings(env):
531 env.Append(
532 CCFLAGS = ['-g'],
533 CPPDEFINES = ['_DEBUG']
534 )
535 env.Replace(
536 DEBUG = True,
537 NACL_VARIANT = 'dbg-mac',
538 )
539
540 def AddMacOptimizedSettings(env):
541 env.Append(
542 BUILD_GROUPS = ['most'],
543 CCFLAGS = ['-O3'],
544 CPPDEFINES = ['NDEBUG', 'ANTLR3_NO_DEBUGGER']
545 )
546 env.Replace(
547 DEBUG = False,
548 NACL_VARIANT = 'opt-mac',
549 )
550
551
552 mac_debug_env = mac_env.Clone(
553 BUILD_TYPE = 'dbg-mac',
554 BUILD_TYPE_DESCRIPTION = 'MacOS debug build',
555 DEBUG = True,
556 NACL_VARIANT = 'dbg-mac',
557 )
558
559 AddMacDebugSettings(mac_debug_env)
560 environment_list.append(mac_debug_env)
561
562 mac_optimized_env = mac_env.Clone(
563 BUILD_TYPE = 'opt-mac',
564 BUILD_TYPE_DESCRIPTION = 'MacOS optimized build',
565 )
566
567 AddMacOptimizedSettings(mac_optimized_env)
568 environment_list.append(mac_optimized_env)
569
570 mac_test_optimized_env = mac_optimized_env.Clone(
571 BUILD_TYPE = 'test-opt-mac',
572 BUILD_TYPE_DESCRIPTION = 'MacOS optimized build for testing',
573 )
574 AddTestingFlags(mac_test_optimized_env)
575 environment_list.append(mac_test_optimized_env)
576
577 mac_debug_env.Append(
578 BUILD_GROUPS = ['default', 'most'],
579 )
580
581
582 # Linux ------------------------------------------------------------------
583
584 linux_env = binaries_env.Clone(
585 tools = ['target_platform_linux'],
586 FIREFOX_PLUGIN_DIR = '/home/$USER/.mozilla/plugins',
587 CG_DIR = '$CG_BASE_DIR/linux',
588 )
589 linux_env.FilterOut(CPPDEFINES = ['OS_LINUX=OS_LINUX'])
590 if base_env.Bit('host_linux'):
591 linux_env.ParseConfig('pkg-config --cflags --libs gtk+-2.0')
592
593 linux_env.Append(
594 RENDERER_INCLUDE_PATH = [
595 '$GLEW_DIR/include',
596 '$CG_DIR/include',
597 ],
598 RENDERER_LIB_PATH = [
599 '$CG_DIR/lib',
600 '$GLEW_DIR/lib',
601 ],
602 RENDERER_LIBS = [
603 'GL',
604 'GLEW',
605 'Cg',
606 'CgGL',
607 ],
608 CPPDEFINES = [
609 'RENDERER_GL',
610 'LINUX',
611 ['NACL_LINUX', '1'],
612 'SK_BUILD_FOR_UNIX'
613 ],
614 CCFLAGS = ['-Wstrict-aliasing', '-fvisibility=hidden', '-m32'],
615 LINKFLAGS = ['-m32'],
616 LIBS = ['pthread', 'rt', 'dl'],
617 NACL_HTP_LIBS = ['ssl', 'crypto'],
618 BUILD_COMPONENTS = [
619 'installer/linux',
620 'event',
621 ],
622 )
623
624 linux_cg_dir = ARGUMENTS.get('linux-cg-dir', 'hermetic')
625 if linux_cg_dir != 'hermetic':
626 linux_cg_dir = linux_cg_dir or '/usr'
627 linux_env['CG_DIR'] = linux_cg_dir
628 linux_glew_dir = ARGUMENTS.get('linux-glew-dir', 'hermetic')
629 if linux_glew_dir != 'hermetic':
630 linux_glew_dir = linux_glew_dir or '/usr'
631 linux_env['GLEW_DIR'] = linux_glew_dir
632
633
634 linux_debug_env = linux_env.Clone(
635 BUILD_TYPE = 'dbg-linux',
636 BUILD_TYPE_DESCRIPTION = 'Linux debug build',
637 DEBUG = True,
638 NACL_VARIANT = 'dbg-linux',
639 )
640 linux_debug_env.Append(
641 CCFLAGS = ['-g'],
642 BUILD_GROUPS = ['default']
643 )
644 environment_list.append(linux_debug_env)
645
646
647 linux_optimized_env = linux_env.Clone(
648 BUILD_TYPE = 'opt-linux',
649 BUILD_TYPE_DESCRIPTION = 'Linux optimized build',
650 DEBUG = False,
651 NACL_VARIANT = 'opt-linux',
652 )
653 linux_optimized_env.Append(
654 CCFLAGS = ['-O3'],
655 CPPDEFINES = ['-DNDEBUG', '-DANTLR3_NO_DEBUGGER'],
656 )
657 environment_list.append(linux_optimized_env)
658
659 # Documentation -------------------------------------------------------------
660
661 docs_env = base_env.Clone(
662 BUILD_TYPE = 'docs',
663 BUILD_TYPE_DESCRIPTION = 'Documentation for all platforms',
664 HOST_PLATFORMS = ['WINDOWS', 'LINUX', 'MAC'],
665 BUILD_COMPONENTS = ['documentation'],
666 )
667 docs_env.Append(BUILD_GROUPS = ['default', 'most'])
668 environment_list.append(docs_env)
669
670 # Code Coverage -------------------------------------------------------------
671
672 windows_d3d_coverage_env = windows_d3d_debug_env.Clone(
673 BUILD_TYPE = 'coverage-d3d',
674 BUILD_TYPE_DESCRIPTION = 'Windows DirectX code coverage build',
675 tools = ['code_coverage'],
676 )
677 windows_d3d_coverage_env.FilterOut(BUILD_GROUPS = ['default', 'most'])
678 environment_list.append(windows_d3d_coverage_env)
679
680 windows_gl_coverage_env = windows_gl_debug_env.Clone(
681 BUILD_TYPE = 'coverage-gl',
682 BUILD_TYPE_DESCRIPTION = 'Windows OpenGL code coverage build',
683 tools = ['code_coverage'],
684 )
685 windows_gl_coverage_env.FilterOut(BUILD_GROUPS = ['default', 'most'])
686 environment_list.append(windows_gl_coverage_env)
687
688 linux_coverage_env = linux_debug_env.Clone(
689 BUILD_TYPE = 'coverage-linux',
690 BUILD_TYPE_DESCRIPTION = 'Linux code coverage build',
691 tools = ['code_coverage'],
692 )
693 linux_coverage_env.FilterOut(BUILD_GROUPS = ['default', 'most'])
694 environment_list.append(linux_coverage_env)
695
696 mac_coverage_env = mac_debug_env.Clone(
697 BUILD_TYPE = 'coverage-mac',
698 BUILD_TYPE_DESCRIPTION = 'Mac code coverage build',
699 tools = ['code_coverage'],
700 )
701 mac_coverage_env.FilterOut(BUILD_GROUPS = ['default', 'most'])
702 environment_list.append(mac_coverage_env)
703
704
705 # Build the world.
706 BuildComponents(environment_list)
707
708
709 # Generate a solution, defer to the end.
710 solution_env = base_env.Clone(tools = ['visual_studio_solution'])
711 solution = solution_env.Solution(
712 'o3d', environment_list,
713 exclude_pattern = '.*third_party.*',
714 extra_build_targets = {
715 'Firefox': 'c:/Program Files/Mozilla FireFox/firefox.exe',
716 'unit_tests': '$ARTIFACTS_DIR/unit_tests.exe',
717 'system_tests': '$ARTIFACTS_DIR/system_tests.exe',
718 'converter': '$ARTIFACTS_DIR/o3dConverter.exe',
719 },
720 )
721 solution_env.Alias('solution', solution)
OLDNEW
« no previous file with comments | « ipc/build.scons ('k') | nbguidgen/build.scons » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698