# Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

Import('env', 'env')

env = env.Clone()

env.SConscript([
    '$BASE_DIR/using_base.scons',
    '$BASE_DIR/gfx/using_base_gfx.scons',  # needed for logging
    '$CHROME_SRC_DIR/build/using_googleurl.scons',  # needed for logging
    '$BREAKPAD_DIR/using_breakpad.scons',
    '$CHROME_DIR/third_party/wtl/using_wtl.scons',
    '$GTEST_DIR/../using_gtest.scons',
    '$ICU38_DIR/using_icu38.scons',
    '$LIBJPEG_DIR/using_libjpeg.scons',
    '$LIBPNG_DIR/using_libpng.scons',
    '$LIBXML_DIR/using_libxml.scons',
    '$NET_DIR/using_net.scons',  # needed for logging
    '$NPAPI_DIR/using_npapi.scons',
    '$SKIA_DIR/using_skia.scons',
    '$ZLIB_DIR/using_zlib.scons',
], {'env':env})

# needed for logging
env.Append(
  LIBS = [
    'glue',
    'WTF',
  ],
)

if env.Bit('posix'):
  env.SConscript([
      '$LIBEVENT_DIR/using_libevent.scons',
      '$CHROME_SRC_DIR/build/using_v8.scons', # needed for shared link deps
      '$LIBXSLT_DIR/using_libxslt.scons', # needed for shared link deps
  ], {'env':env})
  # needed for shared link deps
  env.Append(
      LIBS = [
        'JavaScriptCore_pcre',
        'V8Bindings',
        'WebCore',
        'browser',
        'port',
        'renderer',
        'sqlite',
      ]
  )

# TODO(sgk):  convert into a using_*.scons pattern when we update WebKit.
env.Append(
    CPPPATH = [
        '$WEBKIT_DIR/build/localized_strings',
    ],
)

env.Prepend(
    CPPPATH = [
        '$CHROME_DIR/app/resources',
        '$CHROME_DIR/app',
        '$CHROME_SRC_DIR',
    ],
    LIBS = [
        'common',
    ]
)

if env.Bit('windows'):
  env.Prepend(
      CPPPATH = [
          '$CHROME_DIR/tools/build/win',
      ],
  )

if env.Bit('windows'):
  env.Append(
      LINKFLAGS = [
          '/INCREMENTAL',

          '/safeseh',
          '/dynamicbase',
          '/ignore:4199',
          '/nxcompat',

          '/DELAYLOAD:"dwmapi.dll"',
          '/DELAYLOAD:"uxtheme.dll"',

          '/DEBUG',
          '/MACHINE:X86',
          '/FIXED:No',
      ],
      LIBS = [
          'rpcrt4',
          'shlwapi',
          'winmm',
      ],
  )

input_files = ChromeFileList([
    'ipc_fuzzing_tests.cc',
    'ipc_send_fds_test.cc',
    'ipc_tests.cc',
    'ipc_tests.h',
    '$BASE_DIR/perftimer$OBJSUFFIX',
])

ipc_tests = env.ChromeTestProgram('ipc_tests', input_files)
i = env.Install('$TARGET_ROOT', ipc_tests)
Alias('chrome', i)

p = env.ChromeMSVSProject('ipc_tests.vcproj',
                          dest='$CHROME_SRC_DIR/chrome/common/ipc_tests.vcproj',
                          guid='{B92AE829-E1CD-4781-824A-DCB1603A1672}',
                          keyword='Win32Proj',
                          dependencies = [
                              '$BASE_DIR/build/base.vcproj',
                              '$CHROME_DIR/common/common.vcproj',
                              '$ICU38_DIR/build/icu.vcproj',
                              '$TESTING_DIR/gtest.vcproj',
                          ],
                          # TODO(sgk):  when we can intuit the hierarchy
                          # from the built targets.
                          #buildtargets=TODO,
                          files=input_files,
                          local_directory_prefix='./',
                          tools=[
                              'VCPreBuildEventTool',
                              'VCCustomBuildTool',
                              'VCXMLDataGeneratorTool',
                              'VCWebServiceProxyGeneratorTool',
                              'VCMIDLTool',
                              'VCCLCompilerTool',
                              'VCManagedResourceCompilerTool',
                              'VCResourceCompilerTool',
                              'VCPreLinkEventTool',
                              MSVSTool('VCLinkerTool',
                                       AdditionalDependencies=[
                                           'shlwapi.lib',
                                           'rpcrt4.lib',
                                           'winmm.lib'
                                       ],
                                       SubSystem='1'),
                              'VCALinkTool',
                              'VCManifestTool',
                              'VCXDCMakeTool',
                              'VCBscMakeTool',
                              'VCFxCopTool',
                              'VCAppVerifierTool',
                              'VCWebDeploymentTool',
                              'VCPostBuildEventTool',
                          ],
                          ConfigurationType='1')


p.AddConfig('Debug|Win32',
            InheritedPropertySheets=[
                '$(SolutionDir)../build/common.vsprops',
                '$(SolutionDir)../build/debug.vsprops',
                '$(SolutionDir)../skia/using_skia.vsprops',
                '$(SolutionDir)../testing/using_gtest.vsprops',
            ])

p.AddConfig('Release|Win32',
            InheritedPropertySheets=[
                '$(SolutionDir)../build/common.vsprops',
                '$(SolutionDir)../build/release.vsprops',
                '$(SolutionDir)../skia/using_skia.vsprops',
                '$(SolutionDir)../testing/using_gtest.vsprops',
            ])