Index: main.scons |
=================================================================== |
--- main.scons (revision 30708) |
+++ main.scons (working copy) |
@@ -1,721 +0,0 @@ |
-# Copyright 2009, Google Inc. |
-# All rights reserved. |
-# |
-# Redistribution and use in source and binary forms, with or without |
-# modification, are permitted provided that the following conditions are |
-# met: |
-# |
-# * Redistributions of source code must retain the above copyright |
-# notice, this list of conditions and the following disclaimer. |
-# * Redistributions in binary form must reproduce the above |
-# copyright notice, this list of conditions and the following disclaimer |
-# in the documentation and/or other materials provided with the |
-# distribution. |
-# * Neither the name of Google Inc. nor the names of its |
-# contributors may be used to endorse or promote products derived from |
-# this software without specific prior written permission. |
-# |
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- |
- |
- |
-import os |
-import sys |
- |
- |
-# Underlay everything from the o3d directory. |
-Dir('tests').addRepository(Dir('#/')) |
- |
-def GetDotVersion(version): |
- return '%d.%d.%d.%d' % version |
- |
-def GetCommaVersion(version): |
- return '%d,%d,%d,%d' % version |
- |
-# This name is used by Javascript to find the plugin therefore it must |
-# not change. If you change this you must change the name in |
-# samples/o3djs/util.js but be aware, changing the name |
-# will break all apps that use o3d on the web. |
-plugin_name = 'O3D Plugin' |
- |
-# Get version string from o3d_version.py |
-o3d_version_vars = {} |
-if int(ARGUMENTS.get('MAC_KILLSWITCH', 0)): |
- execfile(str(File('installer/win/o3d_kill_version.py')), o3d_version_vars) |
-else: |
- execfile(str(File('installer/win/o3d_version.py')), o3d_version_vars) |
-plugin_version = o3d_version_vars['plugin_version'] |
-sdk_version = o3d_version_vars['sdk_version'] |
- |
-# -------------------------------------------------------------------- |
- |
- |
-# List of environment leaves |
-environment_list = [] |
- |
-base_env = Environment( |
- tools = ['component_setup'], |
- O3D_PLUGIN_NAME = plugin_name, |
- O3D_PLUGIN_VERSION = GetDotVersion(plugin_version), |
- O3D_PLUGIN_VERSION_COMMAS = GetCommaVersion(plugin_version), |
- O3D_SDK_VERSION = GetDotVersion(sdk_version), |
- O3D_SDK_VERSION_COMMAS = GetCommaVersion(sdk_version), |
- |
- # TODO: this will be the default, but is set for now |
- COMPONENT_STATIC = True, |
- |
- COVERAGE_TARGETS = ['unit_tests', 'system_tests'], |
- MSVS_USE_MFC_DIRS=1, |
-) |
-base_env.ApplySConscript(['svn_paths.scons']) |
- |
-base_env.Append( |
- # Some derived paths |
- NACL_NRD_XFER_SOURCE_DIR = '$NACL_DIR/src/trusted/desc', |
- NACL_PLUGIN_SOURCE_DIR = '$NACL_DIR/npapi_plugin', |
- DOCS_DIR = '$DESTINATION_ROOT/docs', |
- |
- CPPPATH = [ |
- # The internal dir is first so that headers in internal can replace |
- |
- # those in external. |
- |
- '$INTERNAL_DIR', |
- '$SCONSTRUCT_DIR/..', |
- '$SCONSTRUCT_DIR', |
- '$CHROME_SRC_DIR', |
- '$GTEST_DIR/include', |
- '$EXPERIMENTAL_O3D_DIR', |
- '$NACL_DIR/..', |
- ], |
- LIBPATH = '$LIBS_DIR', |
- RENDERER_INCLUDE_PATH = [ |
- '$ZLIB_DIR', |
- '$JPEG_DIR', |
- '$PNG_DIR', |
- ], |
- RENDERER_LIB_PATH = [ |
- ], |
- RENDERER_LIBS = [ |
- 'libjpeg', |
- 'libpng', |
- 'zlib', |
- ], |
- |
- CPPDEFINES = [ |
- ['O3D_VERSION_NUMBER', '$O3D_PLUGIN_VERSION'], |
- 'UNICODE', |
- ], |
- ICU_LIBS = ['icu'], |
-) |
- |
- |
-# If you change this argument, you'll need to clean the whole project before |
-# rebuilding. |
-if ARGUMENTS.get('PROFILE_GLUE', ''): |
- base_env.Append( |
- CPPDEFINES = [ |
- 'PROFILE_GLUE', |
- 'PROFILE_CLIENT', |
- ]) |
- |
-# Define O3D_ENABLE_BREAKPAD if Pulse passes in: |
-# O3D_ENABLE_BREAKPAD=1 |
-if int(ARGUMENTS.get('O3D_ENABLE_BREAKPAD', 0)): |
- base_env.Append(CPPDEFINES = 'O3D_ENABLE_BREAKPAD') |
- |
-# Returns a list of objects built from a third-party directory. |
-def MakeObjects(env, stems, dir, extension): |
- return [env.ComponentObject(stem, '%s/%s.%s' % (dir, stem, extension)) |
- for stem in stems] |
-base_env.AddMethod(MakeObjects) |
- |
-def Python(env, args): |
- """Returns an action that executes python with the given args, specifying |
- PYTHONPATH from the scons environment""" |
- sep = ':' |
- if env.Bit('host_windows'): |
- sep = ';' |
- # Add PYTHONPATH from the scons environment to the OS environment. |
- # NOTE: Ideally that would be delay-evaluated, but I can't figure out |
- # how to do that in scons. |
- env['ENV']['PYTHONPATH'] = env.subst(sep.join(env['PYTHONPATH'])) |
- return Action(' '.join(['$PYTHON'] + args)) |
- |
-base_env.AddMethod(Python) |
- |
-# The base NaCl IMC lib. |
-nacl_imc_lib = 'google_nacl_imc' |
- |
-# All the libs required for IMC layer on the host. |
-nacl_imc_all_libs = [ |
- nacl_imc_lib, |
- 'google_nacl_imc_c', |
- ] |
- |
-# All the libs required for HTP layer on the host. |
-nacl_htp_all_libs = [ |
- nacl_imc_lib, |
- 'google_nacl_imc_c', |
- 'nrd_xfer', |
- 'gio', |
- 'naclthread', |
- ] |
- |
-binaries_env = base_env.Clone() |
-binaries_env.Append( |
- BUILD_COMPONENTS = [ |
- 'base', |
- 'bitmap', |
- 'compiler/antlr', |
- 'compiler/technique', |
- 'converter', |
-# 'converter_edge', |
- 'core', |
- 'import', |
- 'ipc', |
- 'plugin', |
- 'samples', |
- 'serializer', |
- 'skia', |
- 'tests', |
- 'tests/common', |
- 'utils', |
- 'v8', |
- ], |
- # TODO: this is ugly, should all be rolling into builder. |
- NACL_OBJ_ROOT = '$NACL_DIR/scons-out/$NACL_VARIANT/obj', |
- NACL_LIB_DIR = '$NACL_DIR/scons-out/$NACL_VARIANT/lib', |
- NACL_HTP_LIBS = nacl_htp_all_libs, |
-) |
- |
-# This function adds a path to a windows environment variable like PATH, |
-# INCLUDE, or LIB. |
-def AddPathToWindowsEnv(env_dict, var, path): |
- try: |
- src = env_dict[var] |
- except KeyError: |
- src = '' |
- if not src: |
- env_dict[var] = path |
- else: |
- env_dict[var] = '%s;%s' % (src, path) |
- |
-# This function builds the native client IMC or HTP libraries by |
-# calling scons to do a NaCl build. It should handle dependencies |
-# correctly and will not rebuild unless necessary. |
-def AddNaclBuildCommand(env, variant, platforms): |
- if sys.platform not in platforms: return |
- |
- nacl_os_env = dict(os.environ) |
- if sys.platform in ['win32', 'cygwin']: |
- script_suffix = '.bat' |
- # We want native client to use the same Platform SDK as ours. Pass it |
- # through INCLUDE and LIB. |
- AddPathToWindowsEnv(nacl_os_env, 'INCLUDE', |
- env.subst('$PLATFORM_SDK_VISTA_6_0_DIR/Include')) |
- AddPathToWindowsEnv(nacl_os_env, 'LIB', |
- env.subst('$PLATFORM_SDK_VISTA_6_0_DIR/Lib')) |
- else: |
- script_suffix = '.sh' |
- |
- build_libs = nacl_htp_all_libs |
- |
- targets = ['$NACL_LIB_DIR/${LIBPREFIX}' + f + '${LIBSUFFIX}' |
- for f in build_libs] |
- nacl_build_tool = '$PYTHON $SCONS_DIR/scons.py' |
- env.Command(targets, |
- ['$NACL_NRD_XFER_SOURCE_DIR', '$NACL_PLUGIN_SOURCE_DIR'], |
- nacl_build_tool + ' ' |
- 'MODE=$NACL_VARIANT ' |
- 'naclsdk_validate=0 ' |
- 'sdl=none ' |
- '--verbose ' |
- '--file=SConstruct ' |
- '$DEBUG_OPTS ' |
- '-C $NACL_DIR ' |
- '$NACL_TARGETS', |
- source_scanner = DirScanner, |
- ENV = nacl_os_env, |
- # TODO: figure out why these can't be absolute paths |
- # when run on some flavors of linux. For now we can pass in the |
- # library name, which at least works everywhere. |
- NACL_TARGETS = build_libs, |
- NACL_VARIANT = variant, |
- DEBUG_OPTS = ['--debug=%s' % item for item in GetOption('debug')], |
- ) |
- |
-# TODO: This is really not the ideal way to do this -- for |
-# instance, the output goes into the NaCl scons-out directory instead |
-# of ours. |
- |
-# Add in the two variants of NACL. |
-win_platforms = ['win32', 'cygwin'] |
-mac_platforms = ['darwin'] |
-linux_platforms = ['linux', 'linux2'] |
-all_platforms = win_platforms + mac_platforms + linux_platforms |
-AddNaclBuildCommand(binaries_env, 'dbg-win', win_platforms) |
-AddNaclBuildCommand(binaries_env, 'opt-win', win_platforms) |
-AddNaclBuildCommand(binaries_env, 'dbg-mac', mac_platforms) |
-AddNaclBuildCommand(binaries_env, 'opt-mac', mac_platforms) |
-AddNaclBuildCommand(binaries_env, 'dbg-linux', linux_platforms) |
-AddNaclBuildCommand(binaries_env, 'opt-linux', linux_platforms) |
-AddNaclBuildCommand(binaries_env, 'nacl', all_platforms) |
- |
-def AddTestingFlags(env): |
- env.Append( |
- CPPDEFINES = ['TESTING'], |
- SELENIUM_EXTRA_FLAGS = [ |
- '--screenshots'] |
- ) |
- |
-# Windows ------------------------------------------------------------------ |
- |
-app_data_dir = "" |
-try: |
- app_data_dir = os.environ["APPDATA"] |
-except KeyError: |
- pass # This fails messily on mac + linux, so just ignore it. |
- |
-windows_env = binaries_env.Clone( |
- tools = [ |
- 'target_platform_windows', |
- 'directx_9_18_944_0_partial', |
- 'atlmfc_vc80', |
- 'midl', |
- ], |
- CG_DIR = '$CG_BASE_DIR/win', |
- FIREFOX_PLUGIN_DIR = os.path.join( |
- app_data_dir, 'Mozilla', 'plugins'), |
- IE_PLUGIN_DIR = os.path.join( |
- app_data_dir, 'Google', 'O3D'), |
- |
- # Turn off manifest generation, since we don't use that. |
- MANIFEST_FILE=False, |
- |
- # Use MIDL compiler from the platform sdk, since |
- # we're including headers from there. |
- MIDL = '"$PLATFORM_SDK_VISTA_6_0_DIR/Bin/Midl.exe"', |
- MIDLFLAGS=['"/I$PLATFORM_SDK_VISTA_6_0_DIR/Include"'], |
-) |
- |
-windows_env.Append( |
- CPPPATH = [ |
- '$PLATFORM_SDK_VISTA_6_0_DIR/Include', |
- '$SWIFTSHADER_DIR', |
- ], |
- LIBPATH = [ |
- '$PLATFORM_SDK_VISTA_6_0_DIR/Lib', |
- ], |
- CPPDEFINES = [ |
- '_UNICODE', # turn on unicode |
- 'WIN32', |
- '_WINDOWS', |
- 'WIN32_LEAN_AND_MEAN', |
- 'NOMINMAX', |
- '_WIN32_WINNT=0x0600', |
- '_CRT_SECURE_NO_WARNINGS', |
- 'NACL_WINDOWS=1', |
- 'SK_BUILD_FOR_WIN32', |
- ], |
- CCFLAGS = [ |
- '/Z7', # put debug info in obj files |
- '/EHsc', |
- '/wd4018', # comparison between signed and unsigned |
- '/wd4355', # using this in a constructor |
- '/wd4305', # truncating double to float |
- ], |
- LINKFLAGS = [ |
- '/DEBUG' # Always generate PDBs. |
- ], |
- LIBS = [ |
- 'user32', |
- 'gdi32', |
- 'shell32', |
- 'ws2_32', |
- 'rpcrt4', |
- 'kernel32', |
- 'advapi32', |
- 'psapi', |
- 'winmm', # For V8 |
- 'ws2_32', # For V8 |
- 'Dbghelp', # For Chrome base |
- ], |
- BUILD_COMPONENTS = [ |
- 'breakpad', |
- 'installer/win', |
- 'google_update', |
- 'plugin/npapi_host_control', |
- 'statsreport', |
- 'statsreport/common', |
- 'nbguidgen', |
- ], |
- COVERAGE_TARGETS = ['selenium'], |
-) |
-windows_env.FilterOut(CPPDEFINES=['OS_WINDOWS=OS_WINDOWS']) |
- |
-windows_d3d_env = windows_env.Clone() |
-windows_d3d_env.Append( |
- CPPDEFINES = ['RENDERER_D3D9'], |
- RENDERER_INCLUDE_PATH = [], |
- RENDERER_LIB_PATH = [], |
- RENDERER_LIBS = ['d3d9', 'dxerr'], |
-) |
- |
-windows_gl_env = windows_env.Clone() |
-windows_gl_env.Append( |
- RENDERER_INCLUDE_PATH = [ |
- '$GLEW_DIR/include', |
- '$CG_DIR/include', |
- ], |
- RENDERER_LIB_PATH = [ |
- '$CG_DIR/lib', |
- '$GLEW_DIR/lib', |
- ], |
- RENDERER_LIBS = [ |
- 'OpenGL32', |
- 'glew32', |
- 'cg', |
- 'cgGL', |
- ], |
- CPPDEFINES = [ |
- 'RENDERER_GL' |
- ] |
-) |
- |
- |
-def AddWindowsDebugSettings(env): |
- env.Append( |
- CCFLAGS = [ |
- '/Od', # no optimizations at all |
- '/MTd', # multi-threaded, staticly linked crt, with debugging |
- '/RTCsu', # complain about using un-inited (u), |
- # do more stack checks (s) |
- ], |
- CPPDEFINES = [ |
- '_DEBUG', # we are in debug mode |
- ], |
- LINKFLAGS = [ |
- '/FIXED:no' # Put in .reloc sections, to make Purify happy. |
- ], |
- ) |
- env.Replace( |
- DEBUG = True, |
- NACL_VARIANT = 'dbg-win', |
- ) |
- |
- |
-def AddWindowsOptimizedSettings(env): |
- env.Append( |
- CCFLAGS = [ |
- '/O1', # optimize for size |
- '/MT', # multi-threaded, staticly linked crt, release |
- ], |
- CPPDEFINES = [ |
- 'NDEBUG', # we are in release mode |
- 'ANTLR3_NODEBUGGER', # turn off remote ANTLR debugging |
- ], |
- ) |
- env.Replace( |
- DEBUG = False, |
- NACL_VARIANT = 'opt-win', |
- ) |
- |
- |
-windows_d3d_debug_env = windows_d3d_env.Clone( |
- BUILD_TYPE = 'dbg-d3d', |
- BUILD_TYPE_DESCRIPTION = 'Windows DirectX debug build', |
-) |
-windows_d3d_debug_env.Append(BUILD_GROUPS = ['default', 'most']) |
-windows_d3d_debug_env.Append(CPPDEFINES = ['D3D_DEBUG_INFO']) |
-AddWindowsDebugSettings(windows_d3d_debug_env) |
-environment_list.append(windows_d3d_debug_env) |
- |
- |
-windows_d3d_optimized_env = windows_d3d_env.Clone( |
- BUILD_TYPE = 'opt-d3d', |
- BUILD_TYPE_DESCRIPTION = 'Windows DirectX optimized build', |
-) |
-windows_d3d_optimized_env.Append(BUILD_GROUPS = ['most']) |
-AddWindowsOptimizedSettings(windows_d3d_optimized_env) |
-environment_list.append(windows_d3d_optimized_env) |
- |
-windows_d3d_test_debug_env = windows_d3d_env.Clone( |
- BUILD_TYPE = 'test-dbg-d3d', |
- BUILD_TYPE_DESCRIPTION = 'Windows DirectX debug build for testing', |
-) |
-AddWindowsDebugSettings(windows_d3d_test_debug_env) |
-AddTestingFlags(windows_d3d_test_debug_env) |
-environment_list.append(windows_d3d_test_debug_env) |
- |
-windows_d3d_test_optimized_env = windows_d3d_env.Clone( |
- BUILD_TYPE = 'test-opt-d3d', |
- BUILD_TYPE_DESCRIPTION = 'Windows DirectX optimized build for testing', |
-) |
-AddWindowsOptimizedSettings(windows_d3d_test_optimized_env) |
-AddTestingFlags(windows_d3d_test_optimized_env) |
-environment_list.append(windows_d3d_test_optimized_env) |
- |
-windows_gl_debug_env = windows_gl_env.Clone( |
- BUILD_TYPE = 'dbg-gl', |
- BUILD_TYPE_DESCRIPTION = 'Windows OpenGL debug build', |
-) |
-windows_gl_debug_env.Append(BUILD_GROUPS = ['most']) |
-AddWindowsDebugSettings(windows_gl_debug_env) |
-environment_list.append(windows_gl_debug_env) |
- |
-windows_gl_optimized_env = windows_gl_env.Clone( |
- BUILD_TYPE = 'opt-gl', |
- BUILD_TYPE_DESCRIPTION = 'Windows OpenGL optimized build', |
-) |
-windows_gl_optimized_env.Append(BUILD_GROUPS = ['most']) |
-AddWindowsOptimizedSettings(windows_gl_optimized_env) |
-environment_list.append(windows_gl_optimized_env) |
- |
-# MacOS ------------------------------------------------------------------ |
- |
-mac_env = binaries_env.Clone( |
- tools = ['target_platform_mac'], |
- FIREFOX_PLUGIN_DIR = '/Library/Internet Plug-Ins', |
- GL_DIR = '/System/Library/Frameworks/OpenGL.framework/Versions/A', |
- CG_DIR = '$CG_BASE_DIR/mac', |
- CCFLAGS = [ |
- '-Wstrict-aliasing', |
- '-gstabs+', |
- '-fno-eliminate-unused-debug-symbols', |
- ], |
-) |
-mac_env.FilterOut(CPPDEFINES = ['OS_MACOSX=OS_MACOSX']) |
- |
-mac_env.Append(CPPDEFINES = ['RENDERER_GL', |
- 'GTEST_NOT_MAC_FRAMEWORK_MODE', |
- ['NACL_OSX', '1'], |
- ['MAC_OS_X_VERSION_MIN_REQUIRED', |
- 'MAC_OS_X_VERSION_10_4'], |
- 'SK_BUILD_FOR_MAC' |
- ], |
- RENDERER_INCLUDE_PATH = [ |
- '$CG_DIR/include', |
- '$GLEW_DIR/include', |
- ], |
- RENDERER_LIB_PATH = [ |
- '$GLEW_DIR/lib', |
- ], |
- RENDERER_LIBS = [ |
- 'MacStaticGLEW', |
- ], |
- CXXFLAGS = [ |
- '-Wno-deprecated', |
- ], |
- CCFLAGS = [ |
- '-mmacosx-version-min=10.4' |
- ], |
- BUILD_COMPONENTS = [ |
- 'event', |
- 'statsreport', |
- 'statsreport/common', |
- ], |
-) |
- |
-def AddMacDebugSettings(env): |
- env.Append( |
- CCFLAGS = ['-g'], |
- CPPDEFINES = ['_DEBUG'] |
- ) |
- env.Replace( |
- DEBUG = True, |
- NACL_VARIANT = 'dbg-mac', |
- ) |
- |
-def AddMacOptimizedSettings(env): |
- env.Append( |
- BUILD_GROUPS = ['most'], |
- CCFLAGS = ['-O3'], |
- CPPDEFINES = ['NDEBUG', 'ANTLR3_NO_DEBUGGER'] |
- ) |
- env.Replace( |
- DEBUG = False, |
- NACL_VARIANT = 'opt-mac', |
- ) |
- |
- |
-mac_debug_env = mac_env.Clone( |
- BUILD_TYPE = 'dbg-mac', |
- BUILD_TYPE_DESCRIPTION = 'MacOS debug build', |
- DEBUG = True, |
- NACL_VARIANT = 'dbg-mac', |
-) |
- |
-AddMacDebugSettings(mac_debug_env) |
-environment_list.append(mac_debug_env) |
- |
-mac_optimized_env = mac_env.Clone( |
- BUILD_TYPE = 'opt-mac', |
- BUILD_TYPE_DESCRIPTION = 'MacOS optimized build', |
-) |
- |
-AddMacOptimizedSettings(mac_optimized_env) |
-environment_list.append(mac_optimized_env) |
- |
-mac_test_optimized_env = mac_optimized_env.Clone( |
- BUILD_TYPE = 'test-opt-mac', |
- BUILD_TYPE_DESCRIPTION = 'MacOS optimized build for testing', |
-) |
-AddTestingFlags(mac_test_optimized_env) |
-environment_list.append(mac_test_optimized_env) |
- |
-mac_debug_env.Append( |
- BUILD_GROUPS = ['default', 'most'], |
-) |
- |
- |
-# Linux ------------------------------------------------------------------ |
- |
-linux_env = binaries_env.Clone( |
- tools = ['target_platform_linux'], |
- FIREFOX_PLUGIN_DIR = '/home/$USER/.mozilla/plugins', |
- CG_DIR = '$CG_BASE_DIR/linux', |
-) |
-linux_env.FilterOut(CPPDEFINES = ['OS_LINUX=OS_LINUX']) |
-if base_env.Bit('host_linux'): |
- linux_env.ParseConfig('pkg-config --cflags --libs gtk+-2.0') |
- |
-linux_env.Append( |
- RENDERER_INCLUDE_PATH = [ |
- '$GLEW_DIR/include', |
- '$CG_DIR/include', |
- ], |
- RENDERER_LIB_PATH = [ |
- '$CG_DIR/lib', |
- '$GLEW_DIR/lib', |
- ], |
- RENDERER_LIBS = [ |
- 'GL', |
- 'GLEW', |
- 'Cg', |
- 'CgGL', |
- ], |
- CPPDEFINES = [ |
- 'RENDERER_GL', |
- 'LINUX', |
- ['NACL_LINUX', '1'], |
- 'SK_BUILD_FOR_UNIX' |
- ], |
- CCFLAGS = ['-Wstrict-aliasing', '-fvisibility=hidden', '-m32'], |
- LINKFLAGS = ['-m32'], |
- LIBS = ['pthread', 'rt', 'dl'], |
- NACL_HTP_LIBS = ['ssl', 'crypto'], |
- BUILD_COMPONENTS = [ |
- 'installer/linux', |
- 'event', |
- ], |
-) |
- |
-linux_cg_dir = ARGUMENTS.get('linux-cg-dir', 'hermetic') |
-if linux_cg_dir != 'hermetic': |
- linux_cg_dir = linux_cg_dir or '/usr' |
- linux_env['CG_DIR'] = linux_cg_dir |
-linux_glew_dir = ARGUMENTS.get('linux-glew-dir', 'hermetic') |
-if linux_glew_dir != 'hermetic': |
- linux_glew_dir = linux_glew_dir or '/usr' |
- linux_env['GLEW_DIR'] = linux_glew_dir |
- |
- |
-linux_debug_env = linux_env.Clone( |
- BUILD_TYPE = 'dbg-linux', |
- BUILD_TYPE_DESCRIPTION = 'Linux debug build', |
- DEBUG = True, |
- NACL_VARIANT = 'dbg-linux', |
-) |
-linux_debug_env.Append( |
- CCFLAGS = ['-g'], |
- BUILD_GROUPS = ['default'] |
-) |
-environment_list.append(linux_debug_env) |
- |
- |
-linux_optimized_env = linux_env.Clone( |
- BUILD_TYPE = 'opt-linux', |
- BUILD_TYPE_DESCRIPTION = 'Linux optimized build', |
- DEBUG = False, |
- NACL_VARIANT = 'opt-linux', |
-) |
-linux_optimized_env.Append( |
- CCFLAGS = ['-O3'], |
- CPPDEFINES = ['-DNDEBUG', '-DANTLR3_NO_DEBUGGER'], |
-) |
-environment_list.append(linux_optimized_env) |
- |
-# Documentation ------------------------------------------------------------- |
- |
-docs_env = base_env.Clone( |
- BUILD_TYPE = 'docs', |
- BUILD_TYPE_DESCRIPTION = 'Documentation for all platforms', |
- HOST_PLATFORMS = ['WINDOWS', 'LINUX', 'MAC'], |
- BUILD_COMPONENTS = ['documentation'], |
-) |
-docs_env.Append(BUILD_GROUPS = ['default', 'most']) |
-environment_list.append(docs_env) |
- |
-# Code Coverage ------------------------------------------------------------- |
- |
-windows_d3d_coverage_env = windows_d3d_debug_env.Clone( |
- BUILD_TYPE = 'coverage-d3d', |
- BUILD_TYPE_DESCRIPTION = 'Windows DirectX code coverage build', |
- tools = ['code_coverage'], |
-) |
-windows_d3d_coverage_env.FilterOut(BUILD_GROUPS = ['default', 'most']) |
-environment_list.append(windows_d3d_coverage_env) |
- |
-windows_gl_coverage_env = windows_gl_debug_env.Clone( |
- BUILD_TYPE = 'coverage-gl', |
- BUILD_TYPE_DESCRIPTION = 'Windows OpenGL code coverage build', |
- tools = ['code_coverage'], |
-) |
-windows_gl_coverage_env.FilterOut(BUILD_GROUPS = ['default', 'most']) |
-environment_list.append(windows_gl_coverage_env) |
- |
-linux_coverage_env = linux_debug_env.Clone( |
- BUILD_TYPE = 'coverage-linux', |
- BUILD_TYPE_DESCRIPTION = 'Linux code coverage build', |
- tools = ['code_coverage'], |
-) |
-linux_coverage_env.FilterOut(BUILD_GROUPS = ['default', 'most']) |
-environment_list.append(linux_coverage_env) |
- |
-mac_coverage_env = mac_debug_env.Clone( |
- BUILD_TYPE = 'coverage-mac', |
- BUILD_TYPE_DESCRIPTION = 'Mac code coverage build', |
- tools = ['code_coverage'], |
-) |
-mac_coverage_env.FilterOut(BUILD_GROUPS = ['default', 'most']) |
-environment_list.append(mac_coverage_env) |
- |
- |
-# Build the world. |
-BuildComponents(environment_list) |
- |
- |
-# Generate a solution, defer to the end. |
-solution_env = base_env.Clone(tools = ['visual_studio_solution']) |
-solution = solution_env.Solution( |
- 'o3d', environment_list, |
- exclude_pattern = '.*third_party.*', |
- extra_build_targets = { |
- 'Firefox': 'c:/Program Files/Mozilla FireFox/firefox.exe', |
- 'unit_tests': '$ARTIFACTS_DIR/unit_tests.exe', |
- 'system_tests': '$ARTIFACTS_DIR/system_tests.exe', |
- 'converter': '$ARTIFACTS_DIR/o3dConverter.exe', |
- }, |
-) |
-solution_env.Alias('solution', solution) |