| # 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 |
| |
| Import('env') |
| env.Replace( |
| GOOGLECLIENT = '$SCONSTRUCT_DIR', |
| THIRD_PARTY = '$GOOGLECLIENT/third_party', |
| |
| # A whole bunch of third-party and internal dependencies |
| ANTLRLIBC_DIR = '$THIRD_PARTY/antlr3/runtime/C', |
| ANTLR_DIR = '$THIRD_PARTY/antlr3/lib', |
| BREAKPAD_DIR = '$THIRD_PARTY/breakpad/files/src', |
| CG_BASE_DIR = '$THIRD_PARTY/cg/files', |
| # TODO: pull from Chrome's SVN with gclient ? |
| CHROME_SRC_DIR = '$THIRD_PARTY/chrome/files', |
| COLLADA_DIR = '$THIRD_PARTY/fcollada/files', |
| DOXYGEN_DIR = '$THIRD_PARTY/doxygen', |
| GFLAGS_DIR = '$THIRD_PARTY/gflags', |
| GLEW_DIR = '$THIRD_PARTY/glew/files', |
| GMOCK_DIR = '$THIRD_PARTY/gmock/files', |
| GTEST_DIR = '$THIRD_PARTY/gtest/files', |
| # TODO: pull from Chrome's SVN with gclient ? |
| ICU38_DIR = '$THIRD_PARTY/icu38/files', |
| INTERNAL_DIR = '$SCONSTRUCT_DIR/../o3d-internal', |
| JPEG_DIR = '$THIRD_PARTY/jpeg/src', |
| JSDOCTOOLKIT_DIR = '$THIRD_PARTY/jsdoctoolkit/files', |
| # To run selenium tests you will need a tgz'ed copy of firefox. |
| # Specify the path to it below. |
| # See tests/build.scons |
| MAC_HERMETIC_FIREFOX_DIR = ( |
| '$INTERNAL_DIR/third_party/firefox'), |
| # If we have directx redistributables present, |
| # then build o3dextras. |
| DIRECTX_REDIST_DIR=( |
| '$INTERNAL_DIR/third_party/dx_nov_2007_redist'), |
| # NACL has to be in this weird directory because it looks for |
| # googleclient two levels above it. |
| NACL_DIR = '$THIRD_PARTY/native_client/googleclient/native_client', |
| NIXYSA_DIR = '$THIRD_PARTY/nixysa/files', |
| NPAPI_DIR = '$THIRD_PARTY/npapi/files', |
| PDIFF_DIR = '$THIRD_PARTY/pdiff/files', |
| PLY_DIR = '$THIRD_PARTY/ply/files', |
| PNG_DIR = '$THIRD_PARTY/png/src', |
| SCONS_DIR = '$THIRD_PARTY/scons', |
| SELENIUM_JAVA_DIR = '$THIRD_PARTY/java/selenium/rev2478_mod', |
| SELENIUM_PYTHON_DIR = '$THIRD_PARTY/py/selenium', |
| # TODO: pull from SVN with gclient ? |
| SKIA_DIR = '$THIRD_PARTY/skia', |
| SWIFTSHADER_DIR = '$INTERNAL_DIR/third_party/swiftshader/files', |
| # TODO: pull from SVN with gclient ? |
| V8_SRC_DIR = '$THIRD_PARTY/v8', |
| WIX_DIR = '$THIRD_PARTY/wix_2_0_4221/files', |
| ZIP_UTILS_DIR = '$THIRD_PARTY/zip_utils/files', |
| ZLIB_DIR = '$THIRD_PARTY/zlib/files', |
| # Big stuff that we don't want to be part of the chrome tree. |
| SAMPLE_ASSETS = '$GOOGLECLIENT/o3d_assets/samples', |
| TEST_REFERENCE_IMAGES = '$GOOGLECLIENT/o3d_assets/tests/screenshots', |
| ) |
| if env.Bit('host_windows'): |
| import _winreg |
| try: |
| dxsdk_dir = os.environ['DXSDK_DIR'] |
| except KeyError: |
| print 'The DirectX SDK needs to be installed, and the DXSDK_DIR environment' |
| print 'variable must point to the installation directory.' |
| sys.exit(1) |
| try: |
| winsdk_key = _winreg.OpenKey( |
| _winreg.HKEY_LOCAL_MACHINE, |
| 'SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.0\\WinSDKBuild') |
| except WindowsError: |
| try: |
| winsdk_key = _winreg.OpenKey( |
| _winreg.HKEY_LOCAL_MACHINE, |
| 'SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.1\\WinSDKBuild') |
| except WindowsError: |
| print 'The Windows SDK version 6.0 or later needs to be installed' |
| sys.exit(1) |
| try: |
| winsdk_dir, value_type = _winreg.QueryValueEx(winsdk_key, |
| 'InstallationFolder') |
| except WindowsError: |
| print 'The Windows SDK version 6.0 or later needs to be installed' |
| sys.exit(1) |
| _winreg.CloseKey(winsdk_key) |
| # Strip off trailing slashes |
| winsdk_dir = winsdk_dir.rstrip('\\/') |
| dxsdk_dir = dxsdk_dir.rstrip('\\/') |
| env.Replace(JAVA_EXE = '%SystemRoot%\\system32\\java.exe', |
| PLATFORM_SDK_VISTA_6_0_DIR = winsdk_dir, |
| DIRECTX9_18_944_0_PARTIAL_DIR = dxsdk_dir, |
| DOXYGEN = '$DOXYGEN_DIR/win/doxygen.exe') |
| try: |
| env['ENV']['PATH'] = "%s%s%s" % (env['ENV']['PATH'], os.pathsep, |
| os.path.join(winsdk_dir, 'Bin')) |
| except KeyError: |
| env['ENV']['PATH'] = os.path.join(winsdk_dir, 'Bin') |
| else: |
| env.Replace(JAVA_EXE = 'java') |
| if env.Bit('host_linux'): |
| env.Replace(DOXYGEN = '$DOXYGEN_DIR/linux/doxygen') |
| else: |
| env.Replace(DOXYGEN = '$DOXYGEN_DIR/osx/doxygen') |